
아직 시작도 안했는데 Wrong ㅠ
<hr>
Challenge 33-1<br>
<a href=index.txt>view-source</a>
<hr>
<?php
if($_GET['get']=="hehe") echo "<a href=???>Next</a>";
else echo("Wrong");
?>
소스코드는 이게 전부다.
url은 /bonus-6/index.txt 이렇게 index.txt로 되어 있다.
첫번째 화면에는 딱히 별말 없음.
get이 hehe를 받으면 Next가 나오나봄.
umm

이렇게 get=hehe를 적어서 보냈다.

Next라는 버튼이 생겼다!
<hr>
Challenge 33-2<br>
<a href=lv2.txt>view-source</a>
<hr>
<?php
if($_POST['post']=="hehe" && $_POST['post2']=="hehe2") echo "<a href=???>Next</a>";
else echo "Wrong";
?>
새로운 소스코드는 post에 값을 보내라고 적혀있다.
burp suite을 실행해서

맨 위에 get으로 되어 있던걸 post로 바꿔주고

아래에 post, post2를 보내줬는데 해결이 안돼서;;

마우스 오른쪽 클릭 -> Change request method 해준 후에 post=hehe&post2=hehe2해줬다.

또 NEXT가 떴다.

33-3 ;;
<hr>
Challenge 33-3<br>
<a href=33.txt>view-source</a>
<hr>
<?php
if($_GET['myip'] == $_SERVER['REMOTE_ADDR']) echo "<a href=???>Next</a>";
else echo "Wrong";
?>
이번엔 myip 변수에 아이피 주소를 넣어야 하나보다.

REMOTE_ADDR은 내 IP 주소 입력하면 된다.

33-4가 나왔다;;
hint는 1663051047
<hr>
Challenge 33-4<br>
<a href=l4.txt>view-source</a>
<hr>
<?php
if($_GET['password'] == md5(time())) echo "<a href=???>Next</a>";
else echo "hint : ".time();
?>
소스 코드는 다음과 같다. password 변수가 md5(time() 이면 Next를 보여준다.
보니까 hint에 있는 저 숫자는 time()을 알려주는듯하다!
시간을 맞춰서.. 제대로 보내는게 관건이다.

1초마다 1이 늘어나서 미리 15초 정도 뒤의 시간을 MD5 암호화해 놓은뒤 계속 새로고침해줬다.
<hr>
Challenge 33-5<br>
<a href=md555.txt>view-source</a>
<hr>
<?php
if($_GET['imget'] && $_POST['impost'] && $_COOKIE['imcookie']) echo "<a href=???>Next</a>";
else echo "Wrong";
?>
33-5..
imget을 get으로, impost는 post로, imcookie는 cookie로 보내야한다.
음.. 근데 값이 안써져 있어서 그냥 1로 보내봤다.
cookie 값은 원래 있던 쿠키 다음에 ; imcookie=1
<hr>
Challenge 33-6<br>
<a href=gpcc.txt>view-source</a>
<hr>
<?php
if($_COOKIE['test'] == md5($_SERVER['REMOTE_ADDR']) && $_POST['kk'] == md5($_SERVER['HTTP_USER_AGENT'])) echo "<a href=???>Next</a>";
else echo "hint : {$_SERVER['HTTP_USER_AGENT']}";
?>
33-6
test라는 쿠키값에 내 ip 주소를 md5 암호화한 값이 들어가야 하고, kk라는 post method에는 http_useragent의 md5 값이 들어가야 한단다;;
ip주소 암호화 및, hint에 적혀있는 http_useragent를 암호화해 post로 보내주었다.
<hr>
Challenge 33-7<br>
<a href=wtff.txt>view-source</a>
<hr>
<?php
$_SERVER['REMOTE_ADDR'] = str_replace(".","",$_SERVER['REMOTE_ADDR']);
if($_GET[$_SERVER['REMOTE_ADDR']] == $_SERVER['REMOTE_ADDR']) echo "<a href=???>Next</a>";
else echo "Wrong<br>".$_GET[$_SERVER['REMOTE_ADDR']];
?>
^^;; 왜 네버엔딩인건지
REMOTE_ADDR에 있는 .을 공백으로 대체하는 것으로 보인다.
그리고 GET 메소드로 REMOTE_ADDR이 .. 같으면? Next를 보여주는듯
근데 이건 문제가 좀 애매해서; 그냥 .만 빼고 1101121111=1101121111 이렇게 하면 된다.
<hr>
Challenge 33-8<br>
<a href=ipt.txt>view-source</a>
<hr>
<?php
extract($_GET);
if(!$_GET['addr']) $addr = $_SERVER['REMOTE_ADDR'];
if($addr == "127.0.0.1") echo "<a href=???>Next</a>";
else echo "Wrong";
?>
33-8
addr=ip주소일때..
이게 127.0.0.1이면 된다는..

<hr>
Challenge 33-9<br>
<a href=nextt.txt>view-source</a>
<hr>
<?php
for($i=97;$i<=122;$i=$i+2){
$answer.=chr($i);
}
if($_GET['ans'] == $answer) echo "<a href=???.php>Next</a>";
else echo "Wrong";
?>
33-9
for문 해석
i=97이고, i+2씩 더해서 122가 될때까지
$answer.=chr($i);
ans 변수가 $answer와 같이 같으면 Next
chr은 참고로 문자 리턴을 의미.
97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121
총 13개 문자다.
이걸 다 더해야하나보다.
참고로 chr(97)이 a다.
acegikmoqsuwy

요로코롬
<hr>
Challenge 33-10<br>
<a href=forfor.txt>view-source</a>
<hr>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
for($i=0;$i<=strlen($ip);$i++) $ip=str_replace($i,ord($i),$ip);
$ip=str_replace(".","",$ip);
$ip=substr($ip,0,10);
$answer = $ip*2;
$answer = $ip/2;
$answer = str_replace(".","",$answer);
$f=fopen("answerip/{$answer}_{$ip}.php","w");
fwrite($f,"<?php include \"../../../config.php\"; solve(33); unlink(__FILE__); ?>");
fclose($f);
?>
33-10 문제^^..
일단 ip 변수에 내 ip가 저장되어 있고,
i라는 변수가 0부터 strlen, 내 아이피 주소 길이만큼 될때까지, 총 14개문자인데, 0부터 시작하니까 15개가 되겠다.
ip에 ord(0), ord(1), ord(2)~ ord(14)까지 한값을 저장한다.
그리고 . 부분은 공백으로 만듦.
substr은 지정된 위치에서 특정 길이만큼 문자열을 자르는 건데, 0부터 10까지 잘라낸다는 뜻이다. (ip 주소)
그리고 answer=ip*2, answer=ip/2를 해주고,,
이때 또 .은 공백으로 치환해주고..
fopen에 answerip/{$answer}_{$ip}.php 값을 넣어주면...? 이때 w는 편집, 쓰기.. 이런말
일단 ord(0)은 48이다. 그리고 49, 50, 51, 52 1씩 더해진 값이 나올것이다.
내 ip주소에 ord()된 값을 모두 넣어주면 된다.
~이런식으로 계산해서 풀면되는데 이상하게 문제가 안 풀려서 결국 phptester를 사용했다.
PHPTESTER - Test PHP code online
This application is free so please don't break it! Contact :phptester.net@gmail.com Dear Hacker you don't need to hack this free website to prove that you are very good!!!! Updates: I'm trying a new approche, PHP 7.1 to 7.4 version added but still in test
phptester.net
forfor.php는 삭제하고 입력해줘야 함 ㅠ

아이고 어려워
'CTF, 워게임 문제 풀이 > webhacking.kr' 카테고리의 다른 글
| webhacking.kr 35번 문제 (0) | 2022.09.15 |
|---|---|
| webhacking.kr 34번 문제 (0) | 2022.09.15 |
| webhacking.kr 32번 문제 (0) | 2022.09.05 |
| webhacking.kr 29번 문제 풀이 (0) | 2022.08.30 |
| webhacking.kr 28번 문제 풀이 (0) | 2022.08.30 |
댓글