old-51 풀이

2024. 2. 28. 15:15webhacking.kr

728x90

메인 페이지
view-source

POST 형식으로 id와 pw를 가져옵니다

id는 addslashes()로 이스케이핑을 해주고, pw는 md5()로 처리를 해줍니다

그런데, pw에서 md5 처리를 할 때, raw_output 부분이 true로 되어있습니다

이런 경우에는 md5 해시값이 16bytes의 바이너리 형태로 나오게 됩니다

바이너리 형태에 특수문자가 포함되는걸 이용해서, SQL Injection을 시도해 보면...? 될 것 같습니다

 

"select id from chall51 where id='{$input_id}' and pw='{$input_pw}'"

result 변수에 들어가는 MySQL 쿼리를 가져왔습니다

pw='{$input_pw}'  부분을 참으로 만들어줘야 하는데, 바이너리 값에 'or'이 포함되도록 하는 값을 찾아 넣어주면 됩니다

저는 아래 글을 참고해서 값을 가져왔습니다

https://cvk.posthaven.com/sql-injection-with-raw-md5-hashes

 

SQL injection with raw MD5 hashes (Leet More CTF 2010 injection 300)

The University of Florida Student Infosec Team competed in the Leet More CTF 2010 yesterday. It was a 24-hour challenge-based event sort of like DEFCON quals. Ian and I made the team some...

cvk.posthaven.com

 

pw에 값을 넣은 모습

PW에는 129581926211651571912466741651878684928, ID에는 아무 문자열이나 넣으면 문제가 해결됩니다

 

문제 풀이 성공

728x90

'webhacking.kr' 카테고리의 다른 글

old-22 풀이  (0) 2024.03.03
old-56 풀이  (0) 2024.03.02
old-07 풀이  (0) 2024.02.26
g00gle1 풀이  (0) 2024.02.26
old-35 풀이  (0) 2024.02.19