소스보기
<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");
?>
?get=hehe일때 다음으로 넘어가는 href가 나오는거 같다.
https://webhacking.kr/challenge/bonus-6/?get=hehe 로 넘어가보자
밑에 next가 있다.눌러보면
https://webhacking.kr/challenge/bonus-6/lv2.php로 넘어갈수 있다.
넘어가보면 다시소스를 볼수있다.
<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=hehe&post2=hehe2 의 값을 넘길때 다음으로 넘어갈수 잇는거같다.
(다음은 lv3.php가 아닐까라는 생각으로 넘어가봤지만 아니었다)
처음엔 burp suit로 request를 잡고 POST형식으로 만들어서 해봤지만 완벽히 만들지 않아서 실패했다.
그렇다면 그냥 html을 바꾸어 post와 post2를 넘겨주는 form을 만들어서 넘겨주자
<form method="post" action="lv2.php">
POST<input type="text" name="post">
POST2<input type="text" name="post2">
<input type="submit" value="submit">
</form>
이런식의 html을 크롬개발자도구(f12->edit html)을 통해 삽입하고 hehe와 hehe2를 각각 넣어주면 next로 넘어가는 링크를 볼수있다.
https://webhacking.kr/challenge/bonus-6/33.php
이링크로 넘어가니 또 소스보기가 보인다.
<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";
?>
<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을 해쉬한 값일때 넘어갈수 있는거같다.
시간은 매시간 바뀐다. 새로고침을 해본결과 1씩 늘어난다.
내가 순발력이좋다면 10 안좋다면 20정도 높여서 해쉬값을 미리구해놓고 url에 붙여서 시간을 맞춰 넘어가면 성공할것이다.(저는 여러번 시도했습니다....)
https://www.md5online.org/ 여기서 md5인코딩을 실행했다.
next를 눌리면 이곳으로 이동하게된다
https://webhacking.kr/challenge/bonus-6/md555.php
소스보기를 해보자
get post를 동시에 보내면서 cookie도 있어야 되는거같다.
먼저 editthiscookie 앱을 통해 cookie를 생성한다. imcookie라는 쿠키를 생성후
위에서 했듯이 html을 수정해준다
post방식으로 보내는 form을 하나만들고 action에 ?imget=love를 추가해 get형식의 데이터도 넣어준다.
이제 대충 내용을 채워놓고 보내면 다음으로 넘어갈수 있다.
<hr>
<form method="post" action="md555.php?imget=love">
POST<input type="text" name="impost">
<input type="submit" value="submit">
</form>
next로 넘어가면
https://webhacking.kr/challenge/bonus-6/gpcc.php
페이지로 넘어가며 역시 소스보기가 보인다.
<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']}";
?>
https://webhacking.kr/challenge/bonus-6/ipt.php로 접근할수 있다.
소스를 보자
<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";
?>
get의 인자를 변수로 지정하고 있고 addr이 없으면 ip주소를 변수로 지정한다.
그냥 ?addr=127.0.0.1 get인자를 이런식으로 넘겨주면 된다.
next 로 이동하면
https://webhacking.kr/challenge/bonus-6/nextt.txt로 이동하는데
역시나 소스보기가 나온다
<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";
?>
php .=연산자는 대부분 언어에서의 +=연산자와 같다
즉 ans는 97부터 2씩 더해 ascii코드 값붙이고 있다.
소문자 a~z까지 한칸씩 건너뛰며 추가하면된다
ace... 최종적으로 acegikmoqsuwy 나온다
?ans=acegikmoqsuwy로 이동하면 next가 나온다.
벌써열번째
https://webhacking.kr/challenge/bonus-6/forfor.php로 이동한다.
역시나 소스보기
<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);
?>
이런식으로 넣어 확인해보았다.
(10이상 부터는 봐도 잘모르겟다 ㅠㅠ)
어쨋든 결과로 나온 answer과 ip값을 확인후
https://webhacking.kr/challenge/bonus-6/answerip/{answer}_{ip}.php로 접근하면 성공!
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-35 (0) | 2019.12.01 |
---|---|
webhacking.kr old-34 (0) | 2019.12.01 |
webhacking.kr old-32 (0) | 2019.12.01 |
webhacking.kr old-28 (0) | 2019.12.01 |
webhacking.kr old-27 (0) | 2019.11.28 |
최근댓글