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 |