정보보안/웹 해킹

LOS(The Lord of the SQLI) 25 - GREEN DRAGON

MDIN1 2021. 2. 25. 16:24

 

25번 문제 Green Dragon

 

 

25번 문제인 Green Dragon 이다.

어느덧 los 문제 절반을 풀었는데 점점 난이도가 급상승하는 기분이다 ..

마지막 if 조건식을 보면 id를 admin으로 하고 wherre절을 참으로 만들어주면 문제를 해결할수있을거라 생각해

id=\&pw=or%201=1%20and%20id=char(97,100,109,105,110)%23

위와 같이 쿼리를 완성시켰지만 클리어를 하지 못했다.

 

WHY!!!??

 

 

 왜그럴까 곰곰히 생각해보니 추측이지만 db에 admin이 없는게 아닐까 ..? 라고 생각했다.

그래서 다른 방법으로 union 구문을 써보자고 생각했고 

위에 보이는 쿼리문은 select id,pw로 두개의 컬럼을 사용하니 union도 똑같이 두개의 컬럼을 사용해주어야 한다. 

 

union 구문 사용

 

union 구문을 사용하자 query2가 출력되고

첫번째 컬럼에 넣은 값이 id에, 두번째 컬럼에 넣은 값이 pw에 들어간다는 사실을 알 수 있었다.

 

하지만 이 첫번째 쿼리의 union 구문에

\문자와 union 구문을 그대로 넣는 경우 제대로 전달이 되지 않으므로 hex값으로 변환하여 전달하였다.

 

id='\' and pw=' union select 0x5c,0x756e696f6e2073656c65637420636861722839372c3130302c3130392c3130352c3131302923#'

 

 

25번 문제 GREEN DRAGON Clear!