0x0102
Old 6 본문
webhacking.kr old 6번 문제 풀이

들어가면 검은화면에 이렇게만 뜬다
<?php include "../../config.php"; if($_GET['view_source']) view_source(); if(!$_COOKIE['user']){ $val_id="guest"; $val_pw="123qwe"; for($i=0;$i<20;$i++){ $val_id=base64_encode($val_id); $val_pw=base64_encode($val_pw); } $val_id=str_replace("1","!",$val_id); $val_id=str_replace("2","@",$val_id); $val_id=str_replace("3","$",$val_id); $val_id=str_replace("4","^",$val_id); $val_id=str_replace("5","&",$val_id); $val_id=str_replace("6","*",$val_id); $val_id=str_replace("7","(",$val_id); $val_id=str_replace("8",")",$val_id); $val_pw=str_replace("1","!",$val_pw); $val_pw=str_replace("2","@",$val_pw); $val_pw=str_replace("3","$",$val_pw); $val_pw=str_replace("4","^",$val_pw); $val_pw=str_replace("5","&",$val_pw); $val_pw=str_replace("6","*",$val_pw); $val_pw=str_replace("7","(",$val_pw); $val_pw=str_replace("8",")",$val_pw); Setcookie("user",$val_id,time()+86400,"/challenge/web-06/"); Setcookie("password",$val_pw,time()+86400,"/challenge/web-06/"); echo("<meta http-equiv=refresh content=0>"); exit; } ?> <html> <head> <title>Challenge 6</title> <style type="text/css"> body { background:black; color:white; font-size:10pt; } </style> </head> <body> <?php $decode_id=$_COOKIE['user']; $decode_pw=$_COOKIE['password']; $decode_id=str_replace("!","1",$decode_id); $decode_id=str_replace("@","2",$decode_id); $decode_id=str_replace("$","3",$decode_id); $decode_id=str_replace("^","4",$decode_id); $decode_id=str_replace("&","5",$decode_id); $decode_id=str_replace("*","6",$decode_id); $decode_id=str_replace("(","7",$decode_id); $decode_id=str_replace(")","8",$decode_id); $decode_pw=str_replace("!","1",$decode_pw); $decode_pw=str_replace("@","2",$decode_pw); $decode_pw=str_replace("$","3",$decode_pw); $decode_pw=str_replace("^","4",$decode_pw); $decode_pw=str_replace("&","5",$decode_pw); $decode_pw=str_replace("*","6",$decode_pw); $decode_pw=str_replace("(","7",$decode_pw); $decode_pw=str_replace(")","8",$decode_pw); for($i=0;$i<20;$i++){ $decode_id=base64_decode($decode_id); $decode_pw=base64_decode($decode_pw); } echo("<hr><a href=./?view_source=1 style=color:yellow;>view-source</a><br><br>"); echo("ID : $decode_id<br>PW : $decode_pw<hr>"); if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6); } ?> </body> </html>
일단 소스코드부터 확인해보았다.
대충 읽으니까 id에 admin, password에 nimda가 들어가야 solve 되는것 같다.
그렇다고 바로 될거같진 않고 앞에 디코드 써져있는거보니까 인코딩 디코딩 써야하는건가보다.
일단 정답인 admin과 nimda의 쿠키값을 알아야 하므로 php online complier를 이용해 아래의 코드를 입력해 값을 구했다.
<?php $val_id="admin"; $val_pw="nimda"; for($i=0;$i<20;$i++){ $val_id=base64_encode($val_id); $val_pw=base64_encode($val_pw); } $val_id=str_replace("1","!",$val_id); $val_id=str_replace("2","@",$val_id); $val_id=str_replace("3","$",$val_id); $val_id=str_replace("4","^",$val_id); $val_id=str_replace("5","&",$val_id); $val_id=str_replace("6","*",$val_id); $val_id=str_replace("7","(",$val_id); $val_id=str_replace("8",")",$val_id); $val_pw=str_replace("1","!",$val_pw); $val_pw=str_replace("2","@",$val_pw); $val_pw=str_replace("3","$",$val_pw); $val_pw=str_replace("4","^",$val_pw); $val_pw=str_replace("5","&",$val_pw); $val_pw=str_replace("6","*",$val_pw); $val_pw=str_replace("7","(",$val_pw); $val_pw=str_replace("8",")",$val_pw); echo $val_id; echo "<br>"; echo $val_pw; ?> [

저 코드를 그대로 넣어주면 차례로 아이디와 패스워드가 나온다

그대로 복붙해서 콘솔 창에 document.cookie = ' ' 형식으로 쿠키 값을 수정해주었다.

해결 완료

'Write Up > Webhacking. kr' 카테고리의 다른 글
Old 16 (0) | 2022.04.10 |
---|---|
Old 14 (0) | 2022.04.02 |
[Dreamhack_Wargame] cookie (0) | 2022.03.25 |
[Dreamhack] Web Stage 3 (0) | 2022.03.25 |
[Dreamhack_Wargame] devetools-sources (0) | 2022.03.20 |