Webhacking.kr

Prob40



웹케얄 40번 문제입니다. 500점짜리 문제라 고생을 많이 한 것 같습니다.

일단 문제에 접속하면 위와 같은 로그인 폼이 나옵니다. no, id, pw 값에 1, guest, guest가 자동으로 입력되어있습니다.



그대로 로그인을 해주면 "Success - guest" 라는 메시지를 출력해줍니다.



만약 이 값들 중 하나라도 틀리게 된다면



이와 같은 "Failure" 메시지를 뱉어냅니다.



계속된 삽질 가운데, no 부분이 integer로 값을 받는다는 것을 알아냈습니다. 그래서 &&을 이용하여 select문을 사용해봤더니



정상적으로 로그인이 됩니다.

이를 이용하여 admin이 담겨있는 row로 추정되는 no=2에 해당하는 값을 빼오기 위해 아래와 같이 입력해줍니다.



위 쿼리는 no가 2일때 1을, 아닐 때 0을 출력해주는데, no=2가 admin이라고 가정하고 사용한 쿼리입니다.



로그인을 하면 admin의 패스워드를 요구하는 웹페이지가 나타납니다.



이제 admin의 패스워드를 알아내야하는데, 간단하게 "pw like %"와 같은 쿼리를 이용하여 패스워드를 찾아내도록 합시다.



python으로 pw 값을 찾아내는 스크립트를 작성하였습니다.



찾아낸 admin의 pw 값은 LUCK_ADMIN입니다.



애초에 mysql에서 대/소문자 구분이 없기 때문에 대문자로만 찾아냈습니다. 하지만 LUCK_ADMIN을 입력했을 때 Wrong!을 뱉어내기에 소문자로 luck_admin을 입력해주었습니다.



짠!




References

- THX to Zairo!!(http://zairo.tistory.com)

'Wargame > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr old-02(500)  (0) 2019.09.22
Webhacking.kr old-01(200)  (0) 2019.09.22
Webhacking.kr Prob53  (0) 2016.05.11
Webhacking.kr Prob48  (0) 2016.05.11
Webhacking.kr Prob60  (0) 2016.05.11

+ Recent posts