안녕하세요.
웹 해킹 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 |