<?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>
여기서는 preg_match함수와 urldecode함수가 쓰인다는 것을 볼 수 있는데 먼저 이 함수부터 알아볼까요??
preg_match()
https://www.php.net/manual/en/function.preg-match.php
preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
첫번째 인수 : 정규 표현식
두번째 인수 : 검색 대상 문자열
세번째 인수 : 배열 변수 반환(패턴 매치에서 매칭된 값을 배열로 저장)
반환값 : 매칭에 성공하면 1, 실패하면 0이 반환
urldecode()
url 인코드된 문자열을 디코드한다
그냥 id가 admin이면 문제가 해결되는 구조네요!
근데
id가 admin일땐 no가 출력됩니다!
이렇게 해보면 어떨까요?
네 자동으로 디코딩이 되는 모습을 볼 수 있습니다!
여기서 고민을 좀 해봤는데요...
이걸 한번 더 인코딩 해보면 어떨까라는 생각이 들었습니다!
그래서 이걸 입력해본 결과
짠! 풀렸습니다!
'Hacking' 카테고리의 다른 글
ctf-d.com 원래 의미가 없는 것들도... (0) | 2020.08.12 |
---|---|
xcz.kr - 35 (0) | 2020.08.11 |
SuNiNaTaS Forensics - 28 (0) | 2020.08.11 |
XCZ.KR - PROB1.[1000]SOLVER:1333START! (0) | 2020.07.28 |
PNG 파일구조 (0) | 2020.07.22 |