write-up(web)/webhacking.kr

[Webhacking.kr] old-26

chanchand 2024. 7. 8. 23:12
반응형

문제풀이


<?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