WEB hacking/LORD OF SQL INJECTION

[Lord of SQL Injection] goblin 문제 풀이

Roronoa 2023. 4. 2. 17:42
반응형

문제 정보

문제 이름 : goblin

문제 설명

[그림 1] goblin 문제 접속

필터링이 싱글 쿼터, 더블쿼터, 백 쿼터까지 되어있다.

문제를 해결하기 위해서는 id가 admin이 되면 된다.

 

mysql where절에서 '문자열' 대신 문자열을 hex값으로 표기해도 인식이된다.

w3school 사이트에서 실습을 진행하였다.

https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_where 

[그림 2] w3school mysql where절 연습

그림 2는 Customers 테이블에서 Country='Mexico'인 모든 칼럼들을 출력하는 sql문이다.

하지만 'Mexico'대신 hex로 변환한 0x4D657869636F값을 넣어도 성립을 한다.

 

[그림 3] 문자열 대신 hex로 변환한 값을 넣어도 sql문이 성립

위의 예시처럼 이 문제도 admin을 hex로 변환하여 입력을하면 mysql문을 처리를 할때 문자열 admin으로 인식을 하여 우회를 할 수 있다.

 

따라서 id='guest' and no = 0 으로 앞에 조건이 거짓이 되게 한 다음

거짓 or id = hex(admin)값을 넣으면 거짓 or 참이 되므로 id 가 admin인 참을 반환하여 문제를 해결할 수 있다.

[그림 4] 문제 해결

admin 문자열을 hex로 변환을 하면 61646D696E가 나오는데 16진수 문자열로 인식시키기 위해서는 0x라는 표시를 해주어야한다.

따라서 payload는 아래와 같다.

 

?no=0 or id=0x61646D696E

 

반응형