반응형
webhacking.kr old 39번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다. 코드를 확인해보자.
Blind SQL Injection일 것으로 보인다. SQL Injection에 대해 잘 모르는 분들은 아래 링크에서 공부하고 오길 바란다.
2022.09.06 - [웹해킹/드림핵] - 드림핵 웹해킹 baby - sqlite 워게임 문제 풀이 및 SQL Injection 설명
코드를 확인해보니 POST 메소드를 사용하는 SQL Injection 문제이다. query문이 이미 나와있고,
\\ -> ""으로, ' -> ''로 필터링된다. 그리고 입력된 id값은 substr() 함수로 인해 0~15자리만 잘려서 저장된다.
query문을 보면 length(id)<14 and id='____ 가 참이어야한다. 따라서 이 안에 어떤 걸 넣는가에 따라 문제가 해결된다.
보면 id=' 가 있지만 닫는 '(싱글쿼터)가 없다. 따라서 id=admin이고 '(싱글쿼터)를 넣어줘야 한다.
하지만 ' -> ''로 필터링된다. 따라서
admin(5) + 공백 9개(9) + '싱글쿼터(2)를 넣으면 16자가 나온다. 하지만 substr로 15개까지 잘리기 때문에 '(싱글쿼터)가 필터링돼도 괜찮다.
admin ' |
예상한 대로 성공 메시지가 출력되었다.
이번 문제도 창의력 문제인 것 같다. 싱글 쿼터 우회 방법으로 \ 와 "(더블쿼터) 방법을 생각했지만 뜻대로 되지 않았다. 그래서 str_replace() 함수를 계속 보니까 해결 방법이 떠올랐다.
728x90
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 47번 문제풀이(Writeup) SMTP 메일서버 취약점 (0) | 2022.09.25 |
---|---|
webhacking.kr old 19번 문제풀이(Writeup) (0) | 2022.09.25 |
webhacking.kr old 54번 문제풀이(Writeup) (1) | 2022.09.23 |
webhacking.kr old 38번 문제풀이(Writeup) 및 Log Injection 설명 (0) | 2022.09.22 |
webhacking.kr old 41번 문제풀이(Writeup) (2) | 2022.09.21 |