Web Hacking/Webhacking.kr

[Webhacking.kr] old-26

hanbunny 2025. 3. 4. 18:58

view-source를 클릭하면 .php파일이 나오고 시작한다.

 

if(preg_match("/admin/" ,$_GET['id'])) {echo"no!"; exit(); }

 

id 에 문자열로 admin이 들어가있으면 no라고 뜨고 나가짐.

 

디코딩 후에 정확히 “admin” 과 일치해야 해결되는데,

그러려면 디코딩 전에 문자열은 “admin”아니지만 디코딩 후에는 “admin”이 출력돼야할 거 같음.

admin 글자사이에 특수문자를 넣거나 디코딩 시에 인식되지 않는 문자를 넣어야될듯.

혹은 디코딩을 우회하는 이중 인코딩방법도 있음.

*이중 인코딩(Double(URL) Encoding)이란: 동일한 인코딩 체계를 사용해 이중으로 인코딩한 것.

→ url인코딩 된 값을 필터링에 한번 적용시킨 경우 이중 인코딩을 통해 인층체계를 무력화 시킬 수 있음.

url인코딩표를 참고해 변환하면

admin

→ %61%64%6D%6C%6E

한번 더 하면

→ %2561%2564%256D%256C%256E

  • $_GET['id'] : URL 쿼리 문자열에서 id라는 파라미터 값을 가져옴.
  • preg_match("/admin/", $_GET['id'])는 $_GET['id'] 값에 "admin"이라는 문자열이 포함되어 있는지 확인.
  • urldecode()는 URL 인코딩된 문자열을 디코딩.

'Web Hacking > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-17  (0) 2025.03.04
[Webhacking.kr] old-39  (0) 2025.03.04
[Webhacking.kr] old-14  (0) 2025.03.04
[Webhacking.kr] old-16  (0) 2025.03.04
[Webhacking.kr] old-15  (0) 2025.03.04