old-51 풀이
2024. 2. 28. 15:15ㆍwebhacking.kr
728x90
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
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 |