LOS(The Lord of the SQLI) 18 - NIGHTMARE

2021. 2. 19. 02:05정보보안/웹 해킹

18번 문제 NIGHTMARE

 

18번 문제인 NIGHTMARE 이다.

 

이 문제는 pw 파라미터에 대해서만 입력을 받으며 

if($result['id']) 가 참일경우 문제가 해결되는 것으로 보아

where절이 참이면 된다.

 

strlen 함수를 통해 입력되는 파라미터의 길이를 5자리까지로 제한하고 있고,

preg_match를 통한 필터링식이 존재한다.

 

 

이 문제에서 가장 고민을 많이했던 부분은

필터링 때문에 주석문자 #과 --를 쓸 수 없다는 부분이었는데

이 부분은 ;%00 으로 해결하였다 .

(출처 : websec.ca/kb/sql_injection)

 

 

주석부분은 해결했지만 이 문제를 풀기위해서는 pw 파라미터 부분을 참으로 만들어 주어야 하는데,

pw=1=1를 만들어 줄 경우, 1=1는 참이기 때문에 pw=참이 된다.

 

문자열을 숫자랑 비교하게 되는 경우 0이 반환 되므로

pw=0=0주석을 만들어 줄 경우 where절이 참이 된다.

 

즉, ?pw=')=0;%00

 

 

 

 

18번 문제 NIGHTMARE Clear!