반응형
문제풀이
<?php
if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); }
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] == "admin"){
solve(26);
}
?>
php에서 admin으로 보내는 것과 %61%64%6D%69%6E으로 보내는 것은 같다.
admin = %61%64%6D%69%6E
브라우저는 url encoding을 수행하기 때문에 admin은 %61%64%6D%69%6E로 변환된다. 두번째는 인코딩된 형태로, 동일하게 처리한다.
서버는 url을 디코딩하여 $_GET 변수에 저장한다.
'admin', %61%64%6d%69%6E는 preg_match 함수에 의해 필터링된다.
%61%64%6d%69%6E를 urlencode 수행하여 urldecode 시, admin 문자열이 되게 할 수 있다.
- GET /challenge/web-11/?id=%2561%2564%256D%2569%256E
<script>alert('already solved');</script>
반응형
'write-up(web) > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-23 (0) | 2024.07.09 |
---|---|
[Webhacking.kr] old-16 (0) | 2024.07.08 |
[Webhakcing.kr] old-15 (0) | 2024.07.08 |
[Webhacking.kr] Memo Service (0) | 2023.11.05 |
[Webhacking.kr] 🍊 (0) | 2023.11.03 |