본문 바로가기

https://07001lab.tistory.com/entry/webhackingkr-Challenge-%F0%9F%8D%8A

webhacking.kr Challenge 🍊

orange rfi 터트려야되는거같은데 저게 rfi가 터지는 코드인가? 리뉴얼 첫날부터 계속 쳐다봤는데 모르겠음 최신기술 공부 어디서함?

07001lab.tistory.com

발단

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
  if($_GET['view_source']){ highlight_file(__FILE__); exit; }
  if($_GET['view_version']){ echo phpversion(); exit; } // 7.3.8-1+ubuntu18.04.1+deb.sury.org+1
  if($_GET['ls']){ system("ls -a"); exit; } // to prove for about there is not hidden files in this directory. you dont have to run dirbuster!
  if(isset($_GET['url'])){
    $url = $_GET['url'].".txt";
    if(!filter_var($url, FILTER_VALIDATE_URL)) exit("invalid url");
    if(!preg_match("/http:\/\/webhacking.kr:10009\//",$url)) exit("invalid server");
    if(preg_match("/@|#|\(|\)|\\$|`|'|\"|_|{|}|\?/",$url)) exit("you are not orange");
    if((parse_url($url)['host'!== "webhacking.kr"|| (parse_url($url)['port'!== 10009)) exit("invalid host or port");
    if(parse_url($url)['user'|| parse_url($url)['pass']) exit("you are not orange");
    include $url;
  }
  echo "<hr><a href=./?url=http://webhacking.kr:10009/cat>cat</a> <a href=./?url=http://webhacking.kr:10009/dog>dog</a> <hr><a href=./?view_source=1>view-source</a> <a href=./?view_version=1>view-version</a> <a href=./?ls=1>ls</a>";
?>
cs

귀찮으니 반말
일단 코드를 보자

url을 get으로 받아서 잴 뒤에 .txt 를 단다음

정상적인 URL인지 체크
http://webhacking.kr:10009/ 문자열이 존재하는지 체크
@ # ( ) \$ ` ' " _ { } ? 가 존재하는지 체크
host가 webhacking.kr 이고 port가 10009 인지 체크
user pass가 없는지 체크

한 뒤 url을 가져온다.

cat 버튼을 누르면

이렇게 된다.

dog 버튼을 눌러도

이렇게 된다.

////////////////////////////////////////////////////////////////////////////////////////////////

 7
    if(!filter_var($url, FILTER_VALIDATE_URL)) exit("invalid url");
cs

7번줄
schema://user:pass@host:port/path?=query=foobar#fragment
이렇게 url스럽게 생겼는지 체크한다.

10
    if((parse_url($url)['host'!== "webhacking.kr"|| (parse_url($url)['port'!== 10009)) exit("invalid host or port");
cs

10번줄
host가 webhacking.kr이고 port가 10009인지 체크한다.
우회하는 방법이야 있지만

 9
    if(preg_match("/@|#|\(|\)|\\$|`|'|\"|_|{|}|\?/",$url)) exit("you are not orange");
cs

이 나쁜 9번줄이 방해하고 있으니 우회할 방법을 모르겠다.


////////////////////////////////////////////////////////////////////////////////////////////////

근데 궂이 http schema를 써야되나?

1트

data schema를 사용한다.

10번라인때문에 host랑 port를 넣어야 한다.
근데 놀랍게도 작동한다.

ㅖ.

근데 base64 인코딩해서 이상한거 막 집어넣을수 있다.
혹시?

 6
    $url = $_GET['url'].".txt";
cs

6번줄 : ㅋㅋ
뒤에 .txt가 달려서 base64 디코딩을 못한다.

최박사 시즌 172288596호 멸망

////////////////////////////////////////////////////////////////////////////////////////////////

다른 schema 없나?

2트

file://
이라는 친구가 있다.

https://stackoverflow.com/questions/12711584/how-to-specify-a-local-file-within-html-using-the-file-scheme

How to specify a local file within html using the file: scheme?

I'm loading a html file hosted on the OS X built in Apache server, within that file I am linking to another html file in the same directory as follows: <a href="2ndFile.html"><button type="

stackoverflow.com

읽어보자.
안된다.

최박사 시즌 2060630504호 멸망

////////////////////////////////////////////////////////////////////////////////////////////////

얘는 되겠지

3트

nfs://
라는 친구도 있다.

https://datatracker.ietf.org/doc/html/rfc2224

RFC 2224 - NFS URL Scheme

datatracker.ietf.org

귀찮으니 rfc 로 설명 대신하겠다.

?!

ctf 역사와 전통에 따라서 flag는 /flag 에 들어있을거다.

 6
    $url = $_GET['url'].".txt";
cs

6번줄 : ㅋㅋ

/flag 에 들어있댔지 /flag.txt 에 들어있다 하진 않았다 ㅋㅋ

자 그럼 저 라인은 어떻게 우회해야 하나.
몰?루

최박사 시즌 349946786호 멸망

////////////////////////////////////////////////////////////////////////////////////////////////

님들은 이런거 하지 마세요

https://07001lab.tistory.com/entry/%EB%98%91%EA%B0%99%EC%9D%80%EA%B1%B0-2%EB%85%84%EC%A7%B8-%EC%B3%90%EB%8B%A4%EB%B3%B4%EB%82%98

똑같은거 2년째 쳐다보나

https://07001lab.tistory.com/entry/webhackingkr-Challenge-%F0%9F%8D%8A-PHP-%EC%8B%A4%ED%8C%A8 webhacking.kr Challenge 🍊 / PHP / (실패) https://07001lab.tistory.com/entry/webhackingkr-Challenge-%F0%9F%8D%8A webhacking.kr Challenge 🍊 orange rfi 터

07001lab.tistory.com

'연구글 > ????' 카테고리의 다른 글

"정규식 마스터"  (0) 2022.01.03
RegexAmateur  (2) 2021.12.28
최박사가 설명하는 해킹 입문하는법  (0) 2021.12.27
코드 이렇게 짜지 마세요 - 2  (0) 2021.07.16
코드 이렇게 짜지 마세요 - 1  (0) 2020.11.17
댓글