Challenge 8
Http Header 중 User-Agent에 대한 문제입니다.
User-Agent란 현재 요청을 전송하는 브라우저를 말합니다.
문제 화면입니다. 새로고침할 때마다 카운트가 1씩 증가합니다.
소스를 보기위해 index.phps로 접속합니다.
8번 문제의 소스입니다.
User-Agent 헤더 값을 받아오는데 현재 이 소스에서는 2개로 나눠져 있다고 보시면 됩니다.
$agent에 저장된 값과 $_SERVER[HTTP_USER_AGENT]의 값으로 나눠져 있기 때문에 이를 잘 보시고 문제를 푸셔야 합니다.
agent값으로 데이터베이스를 조회하여 id값 'admin'을 불러와야합니다.
아래 Insert문을 보면 agent값과 현재IP주소와 'guest'를 Insert하고 있습니다. 이 부분에 SQL Injection 하여 원하는 값 즉, 'admin'을 삽입하여야 합니다.
Insert문의 구조 상 한번에 여러 개의 데이터를 입력할 수 있습니다.
Insert into lv0 (agent,ip,id) values('$agent', '$ip', 'guest')에서 저희가 변경할 수 있는 부분은 agent 변수이기 때문에 이 부분에 쿼리문을 추가합니다.
[11','아이피주소','admin'),('123]
위와 같이 입력할 경우
Insert into lv0 (agent,ip,id) values('11','아이피주소','admin'),('123','$ip",'guest');
이렇게 쿼리문이 실행되기 때문에 한번에 두번에 데이터를 입력할 수 있습니다.
저는 문제를 풀기위해 버프스위트를 이용하여 헤더 값을 변경하였습니다.
위의 그림처럼 User-Agent의 값을 변경하여 문제를 푸셔야합니다.
위에서 SQL Injection 쿼리를 입력합니다.
현재 재대로 데이터가 입력되었는지 확인하기 위해 11로 변경합니다.
agent 값에 11과 'admin'이 함께 입력되어 있기 때문에 위와 같이 admin을 출력합니다.
'Wargame | CTF > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 10 (0) | 2016.11.13 |
---|---|
[Webhacking.kr] Challenge 9 (0) | 2016.11.13 |
[Webhacking.kr] Challenge 7 (0) | 2016.11.09 |
[Webhacking.kr] Challege 6 (0) | 2016.11.07 |
Webhacking.kr Challenge 5 (0) | 2016.11.06 |