webhacking.kr challenge 2
잘 꾸며진 화면만 나오길래 이것 저것 눌러 보다가 소스 페이지 확인을 했다.
링크로 admin페이지가 있는데 열어보니까 압호를 입력해야 한다. 일단 여기의 암호를 알아내는 게 문제인것 같고. 또 아래로 내려가다 보니까 시간이 주석처리 되어서 써있다.
현재 시간이 나오는데 쿠키를 확인했다. 쿠키에는 time 이라는 이름을 가진 쿠키가 있었다.
이 쿠키를 조금씩 변형하면서 시간을 확인했다.
먼저 쿠키값이 거짓일 경우에는 다음과 같이 정각으로 표시된다.
쿠키값을 참으로 변경하니 1초라는 시간으로 바뀐다.
그렇다면 이 쿠키를 통해 입력한 문자에 대해 거짓이면 정각, 참이면 1초의 시간이 나온다는 것을 알 수 있다. 이처럼 시간을 통해 알아내려는 암호에 대해 이것 저것 추측을 해보면 될 것 같다.
일단 처음 페이지는 이정도로 하고 다른 페이지에 또 뭐가 있나 찾아보니 게시글에 ㅎㅇ라는 글이 올라와 있다.
무슨 힌트라도 있는 건가 해서 클릭해보닉 또 새로운 패스워드를 입력해야 하는 곳이 있다. 결국 찾아야 할 암호는 2개로 늘어났다.
그럼 쿠키를 통해 암호의 값을 하나씩 알아보자.
먼저 게시판에 올린 글을 보기 위해서 테이블 이름과 컬럼을 추측해야 하는데 게시물 이름이 FreeB0aRd인 것을 보아 테이블 이름으로 썼고 패스워드를 입력하라 했으니 password 를 컬럼 이름으로 사용해서 sql injection을 시도했다.
먼저 문자열의 길이를 시도했다. 10보다 큰지에 대해서 쿠키값에 넣어 확인했더니 시간이 정각. 즉, 거짓이 나왔다.
10보다 작다고 시도한 결과 1초가 나왔다. 참. 이런 방식으로 게시판 문자열의 길이를 알아냈더니 최종적으로 9글자가 나왔다.
이제 admin페이지의 비밀번호를 알아보자. 아까와 마찬가지로 테이블 이름과 컬럼을 추측해야 한다. 페이지의 이름이 admin이어서 테이블이름을 admin, 패스워드를 입력하라 했으니 컬럼을 password로 추측해 아까와 같은 방식으로 몇 글자인지 확인했다. 10글자가 나왔다.
글자수를 알아냈으니 으제 어떤 문자인지 알아내야 한다. 이 또한 위와 같은 방식으로 하나씩 입력 해 볼순 있으나 너무 귀찮고 경우의 수가 많아서 포기. 파이썬을 이용하기로 했다. 이용한 파이썬 코드는 구글링의 도움을 받았다. (http://latifundium.blogspot.com/2016/08/webhackingkr-2-blind-sql-injection.html)
여기에 올려진 파이썬 코드를 이용해 게시글 암호와 admin페이지 암호를 알아냈다.
먼저 게시글에 암호를 입력하니 다음과 같은 링크가 나오면서 파일을 다운받았다.
압축 파일을 해제하려구 하는데 암호가 또 걸려있다. 암호지옥.
admin 페이지로 이동해서 알아낸 패스워드를 입력하니 압축 파일의 암호가 나왔다. 붙여넣기 하고 압축 해제
새로운 페이지가 열리면서 패스워드를 알려준다. 이 패스워드를 auth에 입력하면
성공!!!
참고:
http://lureout.tistory.com/486
http://latifundium.blogspot.com/2016/08/webhackingkr-2-blind-sql-injection.html
http://cdor1.tistory.com/137
http://chldnals.tistory.com/10
댓글
댓글 쓰기