소스보기
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 26</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
a { color:lightgreen; }
</style>
</head>
<body>
<?php
if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); }
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] == "admin"){
solve(26);
}
?>
<br><br>
<a href=?view_source=1>view-source</a>
</body>
</html>
admin으로 바로 접근하면 no라는 메세지가 나오고 id값은 urldecode한 값이 admin이 나오도록 하면된다.
간단하게 admin을 encoding해서 id값에 넣어주자
url표 참조
https://overcode.tistory.com/entry/HTML-Encoding-ReferenceURL-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%84-%EC%95%84%EC%8A%A4%ED%82%A4-%EB%AC%B8%EC%9E%90%EB%A1%9C-%EB%B3%80%ED%99%98
%61%64%6D%69%6E 이다
복사해서 넣어주면 ?id=%61%64%6D%69%6E로 접속하지만 ?id=admin으로 바껴서 전송되는 모습을 볼수있다.
웹 서버와 브라우저 사이에서 데이터 교환 시 브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값을 PHP서버로 보내고 PHP는 받은 인코딩된 값을 자동으로 디코딩한다고 한다.
그렇다면 위 값을 한번더 인코딩 하면 아마 접속할수 있을거 같다.
https://www.url-encode-decode.com/로 들어가서 간편하게 변환해보자
%2561%2564%256D%2569%256E위 값을 넣고 돌리면 해당값을 얻을수 있다.
이제 이값으로 ?id=%2561%2564%256D%2569%256E로 접속하면 성공!
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-28 (0) | 2019.12.01 |
---|---|
webhacking.kr old-27 (0) | 2019.11.28 |
webhacking.kr old-25 (0) | 2019.11.28 |
webhacking.kr old-24 (0) | 2019.11.27 |
webhacking.kr old-23 (0) | 2019.11.27 |
최근댓글