아직 작성 중인 글 입니다...

[그림 1] 문제화면
[그림 2] 소스코드

trim()

:: 문자열 앞뒤로 공백을 없애주는 함수

 

getenv()
:: 함수의 인자로 오는 변수에 따라 해당되는 환경 변수값을 알려주는 함수.

- REMOTE_ADDR : 웹 사이트를 접속한 컴퓨터의 ip address
- HTTP_USER_AGENT : 웹 사이트를 접속한 컴퓨터의 웹 브라우저 정보

 

addslashes()

:: DB 작업을 위해 쿼리를 작성할 때, 따옴표를 escape 시켜주는 함수.

ex) addslashes(You're my sunshine) >>> You\'re my sunshine

 

htmlentities()

:: html 태그를 그대로 출력하는 함수.


PHP 부분부터 살펴보면,

$agent 변수에 HTTP_USER_AGENT(접속 웹 브라우저 정보)을 저장하고,

$ip에는 REMOTE_ADDR(접속 ip주소)을 넣어준다.

만약 $agent 변수에 from 또는 FROM이 들어가면 Access Denied! 를 한다.

 

$count_ck에는 'select count(id) from chall8'의 결과가 배열의 형태로 저장되어 있다.

$count_ck에는 70개 이상의 값이 들어가면 저절로 삭제되게 되어있다.

 

그리고 $agent 변수가 현재 접속한 유저의 HTTP_USER_AGENT와 같은지 비교하고,

그중에서도 $agent의 id가 admin이면 문제가 풀리는 구조이다.

 

만약 $agent 변수가 존재하지 않는다면 agent와 ip, id를 insert 해준다.

 

 

우리가 현재 건드릴 수 있는 값은 $agent이고

$agent 변수에 'admin' 문자열을 넣는 것을 목표로 해야한다.

데이터를 넣는 것은 Insert 쿼리가 있는 맨 마지막 조건문을 이용해야 한다.

 

(!$ck){
  $q=mysqli_query($db,"insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')") or die("query error");
  echo("<br><br>done!  ({$count_ck[0]}/70)");

}

 

$agent 에 test','1.1.1.1','admin')('test2 를 넣게 되면

쿼리문은 insert into chall8(agent, ip, id) values('test','1.1.1.1','admin')('test2',$ip값,'guest') 가 되는 것이다.

 

 

$agent를 변조시키기 위해서는 Burp Suite를 이용해야 한다고 한다.

(Burp Suite 도구를 사용해서 HTTPS 요청 패킷을 캡처할 수 있기 때문)

 

Burp Suite 사용법을 익힌 후 다시 작성하겠다,,^^

 

 

1단계, simple_sqli 문제풀이

처음 들어갔을 때 나온 화면

 

 

로그인 화면
guest 입력 화면

아이디, 비밀번호에 guest를 입력하면 

 

 

hello guest가 alert로 뜨는 것 확인할 수 있다.

 

 

쿼리 문장(select * from users where userid="{userid}" and userpassword="{userpassword}")이 항상 참이 되게 하는 값을 넣어보았다. 

 

userid에는 admin" or "1

password 에는 1을 입력할 시 

쿼리문이

select * from users where userid="admin" or "1" and userpassword="1"

가 되어 userid가 admin인 경우가 항상 참(1)이된다.

 

위의 것으로 로그인 한 후의 화면

uid가 admin인 경우가 참(Truid가 admin인 경우가 참(True)이 되도록 설정합니다.ue)이 되도록 설정합니다

flag 입력

 

 

simple_sqli 문제 해결!

'WEB > WEB Hacking' 카테고리의 다른 글

Client-side Attack  (0) 2021.01.25
Flask, HTTP 요청 방식  (0) 2021.01.24
Dreamhack | 워게임 | <xss-1> 문제  (0) 2021.01.23
웹 해킹 기초  (0) 2021.01.23
Dreamhack | 워게임 | <cookie>문제  (0) 2020.11.19

+ Recent posts