Webhacking Writeup 51번 문제입니다.
사이트에 접속하면 admin page라고 친절하게 알려줍니다
캡쳐사진에는 없지만 우측아래에 소스코드를 링크를 제공해주니
접속해보면
id와 pw를 POST 형식으로 전달을 받고 있습니다.
일단 id에는 자주보는 add슬래시 함수가 싱글쿼터 더블쿼터 공백등을 막고있고
pw는 md5암호화 방식으로 되어있는데 추가로 뒤에 true? 이부분은 검색이 필요할 것같습니다.
다음 우리가 인젝션할 구문을 살펴보면
id를 입력하고 pw를 입력받고 있습니다.
다음 구문인 result 를 보면 다행이 id만 확인하므로
pw의 값을 정확히 찾아야 하는 블라인드 sql은 아닌것을 알 수 있습니다.
그러면 일단 admin page라고 하였으니
id=admin 으로 예상하고
pw=1' or '1 형태의 식으로 입력하면 문제가 풀릴 것으로 예상됩니다.
다만 pw부분을 md5해서 입력하는 것이 필요한데
md5(' ', true) 키워드로 검색을 해보니
아래 글을 찾을 수 있었습니다.
https://bbolmin.tistory.com/77
md5 raw hash를 이용한 sql injection
php에서 md5해쉬를 해주는 함수가 있다. 사용법 md5("문자열") -> 32자리의 16진수 값 반환 md5("문자열", true) -> 16자리의 바이너리 형식으로 반환 md5('admin') 이런식으로 하면 21232f297a57a5a743894a0e4a80..
bbolmin.tistory.com
기본적으로 md5("문자열") 형태는 32자리로 16진수 값을 반환하지만
추가로 true가 붙는 경우 암호화한 해쉬값을 바이너리 형식으로 반환한다고 하더라구요
우리가 필요한 True를 출력해줄
1' or '1 을 md5("1' or '1",true) 형태로 암호화 한다면
129581926211651571912466741651878684928
값이 되며
이 값을 문제사이트에 전달해주면
문제가 해결되었습니다!
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 50번 문제 (0) | 2022.09.01 |
---|---|
Webhacking Writeup 45번 문제 (0) | 2022.08.31 |
Webhacking Writeup 34번 문제 (0) | 2022.08.19 |
Webhacking Writeup 21번 문제 (0) | 2022.08.16 |
Webhacking Writeup 44번 문제 (0) | 2022.08.16 |