본문 바로가기

웹해킹/webhacking.kr

webhacking.kr old 39번 문제풀이(Writeup)

반응형

webhacking.kr old 39번 문제풀이(Writeup)

 

old 39번 문제풀이 1

문제를 들어가면 위와 같이 출력된다.  코드를 확인해보자.

 

 

 

old 39번 문제풀이 2

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         '

 

 

 

old 39번 문제풀이 3

예상한 대로 성공 메시지가 출력되었다.

 


이번 문제도 창의력 문제인 것 같다. 싱글 쿼터 우회 방법으로 \ 와 "(더블쿼터) 방법을 생각했지만 뜻대로 되지 않았다. 그래서 str_replace() 함수를 계속 보니까 해결 방법이 떠올랐다.

728x90