본문 바로가기
category/웹해킹(webhacking.kr)

웹해킹(webhacking.kr) - 22번

by 자운대고라니 2020. 11. 18.
반응형

안녕하세요??

자운대 고라니입니다.

오늘은 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 Online | Free MD5 Decryption, MD5 Hash Decoder

 

www.md5online.org

위의 사이트를 사용하였다.

해당 md5 해쉬값이 1234apple을 md5로 암호화할 때의 값이라고 한다. 여기서 추측할 수 있는 것은,

password 뒤에 apple이라는 문자열을 붙여서 md5암호화 후 테이블에 저장한 것임을 알 수 있다.

 

나는 admin의 pw값을 BLIND SQL INJECTION을 통해서 알아보자고 생각했다.

일단 username에 admin' or 1#' 라는 값을 넣고, password에는 아무 값을 넣어봤다. 그 후 login을 누르면

아래의 그림처럼 Wrong password! 라고 나온다. 이를 통해서 BLIND SQL INJECTION이 가능하다는 것을 확신했다.

쿼리문이 거짓일 때 Login Fail!이란 문구가 나온다.
쿼리문이 참일때 Wrong password! 라는 문구가 나온다.

일단 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가 오를 것이다.


솔직히 푸는데 꽤 오랜 시간이 걸렸었다.

나만 어려웠나?ㅠㅠ;;

 

반응형

댓글