메인화면입니다.

소스보기 입니다.

소스를 분석해 본결과 다음과 같은 조건이 있습니다.

1. phone과 id의 파라미터가 존재해야함

2. phone은 '^', '=', 'select', '-', '#', ';' 금지

3. id의 길이는 5보다 크면 안됨

4. id가 'admin' 안됨

5. insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})

6. 'admin'의 IP와 나의 IP가 일치해야 해결됨

이를 토대로 mysql로 DB를 구성해보았습니다.

여기서 중요한 부분은 phone부분입니다.

mysqli_query($db,"insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})") or die("query error");

이 부분을 살펴보면 {$_GET['phone']}에 싱글쿼터가 없습니다.

이를 토대로 id가 admin인 계정을 만들어 보겠습니다.

insert문에서 values값을 위와 같이 설정하여 연속으로 값을 삽입할 수 있습니다.

이제 싱글쿼터를 우회 할 수 있는 쿼리를 만들어보겠습니다.

char()를 이용하여 싱글쿼터를 우회 했습니다.

이를 토대로 자신의 공인 IP를 위와같이 삽입해주면 됩니다.

[최종쿼리]

1),(char(97,100,109,105,110),char([10진수 공인IP]),1

챌린지 35 성공!

'WAR GAME > Webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level37 (old)  (328) 2020.04.28
[webhacking.kr] Level36 (old)  (320) 2020.04.28
[webhacking.kr] Level34 (old)  (325) 2020.04.28
[webhacking.kr] Level33 (old)  (335) 2020.04.28
[webhacking.kr] Level32 (old)  (314) 2020.04.28

+ Recent posts