LOS : https://los.rubiya.kr/
✔️ 문제
문제는 다음과 같다.
이전 문제에서 md5 함수가 추가되었다 !!
✔️ 풀이
우선 풀이를 할 수 있는 구문을 살펴보자.
if($result['id'] == 'admin') solve("cobolt");
이전 문제와 동일하게 id 컬럼을 불러오지만 해당 값이
admin이여야 풀리는 문제이다.
뒤에 elseif 구문도 나오는데, 그냥 id만 존재하게 되면
You are not admin이라는 문구가 나오게 된다.
아무 값이나 넣어서 없는 계정을 출력하면 다음과 같이 나오게 된다.
https://www.php.net/manual/en/function.md5.php
PHP: md5 - Manual
I've found multiple sites suggesting the code:md5(file_get_contents($filename));Until recently, I hadn't noticed any issues with this locally... but then I tried to hash a 700MB file, with a 2048MB memory limit and kept getting out of memory errors...There
www.php.net
md5 함수에 대한 설명은 여기에서 확인할 수 있다.
md5(string $string, bool $binary = false): string
이러한 형태로 인자를 받게 되는데, string으로 넣어준 패스워드가
md5($str) === '1f3870be274f6c49b3e31a0c6728957f' 이런식으로
해시값의 형태로 반환되게 된다.
1번 문제처럼 동일하게 참으로 만들어주게 되면,
rubiya라는 아이디가 노출되고, 어드민이 아니라는 글이 나오게 된다.
이는 elsif에 해당하는 구문으로 구문처리가 된 것이다.
앞서 처리된 구문과 별개로 admin 계정은 이미 문제에서 제시하고 있기 때문에
위와 같이 id가 admin인 계정의 pw가 참이 되면 문제가 풀리게 된다!
또는
다음과 같이 그냥 뒤에 구문 자체를 주석처리하면 풀리게 된다!
pw 자체가 의미가 없어지고 풀이 코드에 해당하기 때문이다.
화이팅 💪
'보안 > LOS' 카테고리의 다른 글
[LOS] darkelf (0) | 2022.12.20 |
---|---|
[LOS] wolfman (0) | 2022.12.20 |
[LOS] orc (0) | 2022.12.19 |
[LOS] goblin (0) | 2022.12.19 |
[LOS] gremlin (0) | 2022.12.19 |