안녕하세요??
자운대 고라니입니다.
오늘은 wargame.kr old-20문제를 풀어보겠습니다.
문제에 들어가 보면 첫 화면에 mission : login as admin이라고 적혀있었다.
그리고 Column Name : id, pw라고 적혀있는데 오타인듯하다.
Column Name : uuid, pw이다. 혹시라도 브루트 포스가 안 되는 사람이면 Column Name을 확인해보길 바란다.
어쨌든 나는 join을 통해서 admin 계정을 생성해보려 했다.
결과는 이미 있는 아이디라고 나온다.
그렇다면 id:testtest pw:1234로 join을 한 후 로그인을 시도해보았다.
hi! [uuid]
your password hash : 324f7e.......
라고 나와있다.
32자리 인 것을 보아 아마도 md5 hash암호화를 사용한 것으로 추측된다.
그래서 일단 해당 해쉬값을 md5 복호화 사이트를 통해서 확인해봤다.
www.md5online.org/md5-decrypt.html
위의 사이트를 사용하였다.
해당 md5 해쉬값이 1234apple을 md5로 암호화할 때의 값이라고 한다. 여기서 추측할 수 있는 것은,
password 뒤에 apple이라는 문자열을 붙여서 md5암호화 후 테이블에 저장한 것임을 알 수 있다.
나는 admin의 pw값을 BLIND SQL INJECTION을 통해서 알아보자고 생각했다.
일단 username에 admin' or 1#' 라는 값을 넣고, password에는 아무 값을 넣어봤다. 그 후 login을 누르면
아래의 그림처럼 Wrong password! 라고 나온다. 이를 통해서 BLIND SQL INJECTION이 가능하다는 것을 확신했다.
일단 pw의 length는 모두 md5로 암호화된 값일 테니까 32자리라는 것을 추측할 수 있다.
그래도 혹시 모르니 admin' length(pw)=32#' 라는 쿼리문을 넣었다. pw는 아무 값이나 넣어도 된다.
그 후 login을 했더니
Wrong password!라는 값이 나왔다.
그 후 브루트 포스 코드를 python을 활용해서 만들고, 결과값을 받았다.
해당 값을 md5 복호화 사이트를 통해서 본문을 알아냈다.
wowapple 이란 값인데, 위에 설명했듯이 md5(pw+apple)의 값을 테이블에 저장하는 구조이므로,
pw = "wow"라는 것을 알 수 있다.
uuid : admin, pw : wow를 넣고 로그인을 시도해보았다.
미리 풀어놔서 already solved라고 나왔는데, 처음 푸는 사람이라면 score가 오를 것이다.
솔직히 푸는데 꽤 오랜 시간이 걸렸었다.
나만 어려웠나?ㅠㅠ;;
'category > 웹해킹(webhacking.kr)' 카테고리의 다른 글
웹해킹(webhacking.kr) - 45번 (0) | 2020.11.20 |
---|---|
웹해킹(webhacking.kr) - 48번 (0) | 2020.11.20 |
웹해킹(webhacking.kr) - 44번 (0) | 2020.11.20 |
웹해킹(webhacking.kr) - 36번 (0) | 2020.11.18 |
웹해킹(webhacking.kr) - 49번 (0) | 2020.11.17 |
웹해킹(webhacking.kr) - 20번 (0) | 2020.11.17 |
웹해킹(webhacking.kr) - 19번 (0) | 2020.11.17 |
웹해킹(webhacking.kr) - 14번 (0) | 2020.11.16 |
댓글