-
[LOS] 12. darkknight 문제 풀이Wargame/LOS (Lord of SQL Injection) 2019. 7. 18. 21:19
이번에는 pw와 no 2개의 인자를 GET 방식으로 입력받는다.
pw는 싱글 쿼터(')를 필터링하고, no는 싱글 쿼터('), substr 함수, ascii 함수, 등호(=)를 필터링한다.
싱글 쿼터(')의 사용이 막힐 경우, 더블 쿼터(")로 대체하여 사용할 수 있다. 또한 등호(=)는 like로 대체하여 사용한다.
이를 이용하여 pw의 길이를 알아내자.
pw=1&no=1 or id like "admin" and length(pw) like 8
이제 실제 pw가 무엇인지 알아내자.
ascii 함수는 ord 함수로 대체해서 사용할 수 있다. substr 함수는 mid 함수로 대체하자. (바로 이전 문제인 golem과 달리 darkknight는 substr만 필터링하기 때문에 substring도 필터링 대상에 포함되므로 사용할 수 없다.)
pw=1&no=1 or id like "admin" and ord(mid(pw,1,1)) like 97
자동화 프로그램을 사용하여 pw를 찾아냈다. (자동화 프로그램: https://g-idler.tistory.com/42)
알아낸 pw는 0b70ea1f이므로 이를 인자로 주면 문제가 해결된다.
'Wargame > LOS (Lord of SQL Injection)' 카테고리의 다른 글
[LOS] 14. giant 문제 풀이 (0) 2019.07.19 [LOS] 13. bugbear 문제 풀이 (0) 2019.07.19 [LOS] 11. golem 문제 풀이 (0) 2019.07.18 [LOS] 10. skeleton 문제 풀이 (0) 2019.07.17 [LOS] 9. vampire 문제 풀이 (0) 2019.07.17