워게임/webhacking.kr

webhacking.kr 2번 (blind sql injection)

안녕하세요? LnullVE 입니다.


오늘은 드디어! 2번을 풀었습니다. 2번이라고 쉽다고 생각하실 수 도 있을텐데, 500점이라서 그런지 어려워요....


우선 이문제 사이트들어가보겠습니다.




홍길동이 명상을 하고있네요... 


우선 소스코드를 봅시다.


소스코드를 보던중 우리는 관리자의 실수로 인하여 admin페이지가 노출된것을 확인할 수 있습니다.



그렇다면 admin 페이지에 들어가봐야겠죠




딸랑 이것만 있네요....?


혹시모르니 소스코드를 더 봐봅시다. 다시 홍길동으로 돌아와서, 확인을해보면



이런식으로 알수없는 시간 주석이 생긴걸 볼수 있습니다.


흠... 이번에는 페이지를 둘러봅시다.


board 메뉴에서도 알 수 없는 비밀글을 확인하였습니다.





이게뭘까요......? 우선 이것도 풀어야겠죠


그리고 쿠키값을 확인해보시면,




이런식으로 time 쿠키값이 생긴것을 확인할 수 있습니다. (Time stamp....?)


근데 아까 있던 시간주석과 이게 굉장이 연관있는것 같다는 생각이듭니다.


그래서 여기다가 시험삼아 인젝션을 날려보겠습니다.


우선 time 쿠키값 끝에다가 and 1=1 을 넣어봅시다. (true)





위와같은 주석값이 반환되는것을 확인할수 있습니다.


그러면 쿠키값 끝에다가 and 1=0을 넣어봅시다. (false)





이런식으로 주석이 바뀌는군요


인젝션이 참일때는 주석이 <!--2070-01-01 09:00:01--> 이고, 인젝션이 거짓일때는 주석이 <!--2070-01-01 09:00:00>입니다.


힌트로는, 옛날에는 힌트에 테이블명이 나와있다고 하네요, 


게시판  : FreeB0aRd

admin  : admin


입니다.


그러면, 우선 간단하게 쿠키값에서 바로 인젝션을 해봅시다.




이런식으로 하면, FreeB0aRd  테이블의 비번 길이를 알 수 있겠죠?


그러면 주석값을 확인해봅시다.



이런식으로 된걸봐서 테이블 비번이 8자리는 아닌가 봅니다. 그러면 끝에부분에서 = 8을 = 9로 바꿔봅시다.




오 주석이 이런식으로 바뀌었습니다. 그러면 FreeB0aRd 테이블의 비번길이는 9자리인가 봅니다.


이렇게 해도되지만, 저는 파이썬으로 스크립트 짜는게 더 좋아서 파이썬으로 짜 보았습니다.


정리는,


1. 시간주석을 이용하여 파이썬을 짠다.


2. 파이썬을 이용하여 FreeB0aRd sql의 비번을 찾는다.


3. admin sql의 비번을 찾는다.


4. profit?





사용한 모듈을 urllib, urllib2, re 모듈들 입니다. (첨부해놓겠습니다.)



webhacking.kr_2.zip


zip파일이에욥


소스코드 올릴려 했는데 스압이 될것같아서 그냥 이렇게 올립니다.


혹시모르니 코드들 스샷도 올려볼게요





얘는 admin sql 패스워드 길이 구하는것입니다.




얘는 freeboard sql 패스워드 길이 구하는것입니다.




얘는 freeboard sql 패스워드 구하는것입니다. (길이를 구해서 한계치를 구해야 더 수월합니다.)




얘는 admin sql 패스워드 구하는 것입니다. 






자 이렇게 다 패스워드들을 구하셨다면 써먹어야겠죠




이런식으로 admin manual파일을 다운로드 받아주시면 됩니다.




이런식으로 manual.html파일의 비번을 요구하는것을 확인할 수 있습니다.


그러면, 이제 그 admin을 들어가봅시다.



이런식으로 메뉴얼패스워드를 알려주는것을 확인할 수 있습니다. (어쩌죠 이미 유출됬는데...)





이제 이걸갖다가 auth란에다가 인증시켜주면 됩니다....




끝! 오늘건 어렵네요...


우선 개인적으로 이문제를 풀면서 저의 파이썬 실력을 체크해보고, 새로운 경험을 하였습니다.


그리고 이문제는 ascii 를 이용한 blind sql injection 입니다. 


이문제는 우선 좀 어려웠네요 ㅎㅎ


쓰느라 시간이 많이걸렸습니다. 로그인 안해도 공감누를수 있어욥




'워게임 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 6번  (0) 2017.01.17
webhacking.kr 5번  (2) 2016.03.04
webhacking.kr 4번  (0) 2016.02.04
webhacking.kr 3번  (0) 2016.02.01
webhacking.kr 1번  (0) 2016.01.31