Webhacking.kr 22번 문제 풀이


22번 문제 클릭



아래와 같은 화면이 나온다


HINT를 보면 id가 admin이 되도록 하면 문제가 클리어되어있다는걸 알 수 있다



먼저 소스 보기를 해보면



POST 방식으로 전달된다는 사실을 알 수 있고


별 다른건 찾을 수 없었다


그래서 그냥 로그인 해보았다



Wrong! 이 뜬다



그래서 join을 해보기로 했다


join을 클릭하면 아래와 같은 화면으로 이동되고


test / 1234 로 join해 보았다



성공적으로 등록된거 같다



그래서 test / 1234로 로그인 해보았다



hi! ID 하고 user key라는게 나온다


아마 MD5 값으로 추측된다


또 복호화를 해야하나...


입력한 1234를 MD5 해시화 해봤지만 user key와 일치하지 않았다


그래서 user key를 decrypt 해보았다



decrypt가 되었다


1234에 특정 문자가 더 붙어서 MD5 된 값이 user key 값인가 보다


이걸 알아냈지만 이걸 가지고 딱히 할 수 있는게 없는거 같다



그래서 join에서 admin을 우회해서 가입할 수 있는지 이것저것 해봤지만


실패하였고


admin으로 로그인하려고 여러 시도를 해봤지만 역시 실패하였다




그래서 해본게 admin'or 1=1#



그랬더니 아래와 같이 나왔다



이 결과를 이용하여 Blind SQL Injection을 사용하였다


POST 방식으로 전달 하기 위하여 전과는 조금 다르게 파이썬 코드를 사용하였당



Wargame22.zip


admin의 password를 알아냈는데 이게 MD5로 되어있기 때문에


decrypt 를 해야한다



아까 test / 1234 와 마찬가지로 admin의 패스워드 뒤에 특정 문자가 붙어있으니


특정 문자를 뺀 값을 입력하면 22번 문제는 클리어 된다




Blind SQL Injection 문제가 많은거 같다 ㅎㅎ


하다보니 익숙해져서 그런지 쑥쑥 풀린당ㅋ