Question 15. Simple Board
문제
Simple Union SQL injection Challenge.
(but you need script... maybe?)
풀이
문제 접근시 리스트 및 누른 횟수 등이 나오는 페이지가 제공된다, view source 를 통해 소스코드를 확인 할 수 있다.
TITLE 내 버튼을 클릭 시 idx= 값이 변경되며 4 이후의 값을 넣으면 빈 리스트가 제공된다.
read.php?idx=5 or 1=1
구문을 삽입 시 1번 리스트가 나오는걸로 Injection 공격이 가능한 것으로 확인된다 구문 삽입을 통해서 DB의 정보를 얻어보자.
계속해서 구문을 입력했으나 query error 을 계속 출력하는걸 확인할 수 있다, 최초 제공된 소스코드를 한번 확인해본다.
코드를 확인해 보면 error의 이유를 알 수 있다, read_chk($idx) 를 보면 쿠키값에 /$idx 을 통해 검증작업을 진행하고, 검증 되지 않으면 read$idx 를 통해 정상적으로 작동되지 않도록 되어있다.
Edit cookie 를 통해서 쿠키값에 /5 union select 1,2,3,4 구문을 쿠키에 미리 추가하고 다시한번 Injection 구문을 삽입해본다.
read.php=5 union select 1,2,3,4
구문이 정상작동하여 columns 수와 함깨 출력 위치들을 확인했다. 같은 방법으로 지속하여 다음 구문도 삽입해본다.
read.php=5 union select 1,2,3,table_name from information_schema.tables
README 라는 테이블이 확인된다.
read.php=5 union select 1,2,3,column from information_schema.columns
이번엔 flag 라는 column 을 확인했다, 두 값을 조합하여 flag 안의 내용을 확인해본다.
read.php=5 union select 1,2,3,flag from README
성공적으로 플래그가 출력되며 제출 시 통과할 수 있다.
'Hacking > wargame.kr' 카테고리의 다른 글
[wargame.kr] Question 17. lonely guys (0) | 2021.07.19 |
---|---|
[wargame.kr] Question 16. ip log table (0) | 2021.07.19 |
[wargame.kr] Question 14. pyc decompile (0) | 2021.07.19 |
[wargame.kr] Question 13. web chatting (0) | 2021.07.19 |
[wargame.kr] Question 12. Type confusion (0) | 2021.06.30 |