본문 바로가기

WarGame/webhacking.kr

[webhacking.kr] Challenge 39 :: SQL (싱글쿼터)


▼ Challenge 39는 다음과 같습니다. ( index.phps로 바로 들어겠습니다. )



"\\"는 ""으로 치환되고, 


싱클쿼터 (') 는 싱글쿼터 2개 ('') 로 치환 됩니다.


위의 query 문에서 where 절의 값이 True만 나오면 "good"이 출력 됨으로 


id 에 있을 법한 값을 입력하면 될 것 같습니다.



그러나, 자세히 보니 id=' 이런식으로 싱글쿼터가 하나만 붙어 있어서 


직접 문제를 풀어보신 분들은 쉽지 않음을 알 수 있습니다.



php 코드까지 만들어 이것저것 입력하면서 


치환되는 값을 직접 눈으로 확인하며 실습하였습니다.



 이것저것 해보다가 substr()이 눈에 들어왔고, 


마지막 싱글쿼터 2개를 하나만 출력하게 만들면 될 것 같다는 영감이 떠올랐습니다.





그러나 admin을 어떻게 15자리로 만들까 고민하다가 


 다음과 같이 문자열 끝에 공백이 있어도 해당 문자열로 인식한다는 것을 알아냈습니다.




 따라서 다음과 같이 [ admin          ' ] (띄어쓰기 9번) 이라고 입력하면 


마지막 싱글쿼터 중 1개는 제외됨으로 문제를 해결할 수 있습니다.