역시나 달랑 페이지 소스를 볼수잇는 링크와 아이디 비밀번호가 적혀있다.(불친절이 기본이다 당연한건가...)
<?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 guest와 pw 123qwe를 인코딩해서 변환후 쿠키에 담은모습이고
밑에부분은 쿠키를 변환한후 디코드를 통해 admin과 nimba라는 아이디와 페스워드가 나오는지 확인하는 부부인거 같다.
파이썬을 통해 admin nimba를 인코딩한후 변환해보자
import base64
id=b"admin"
pw=b"nimda"
for i in range(20):
id=base64.b64encode(id)
pw=base64.b64encode(pw)
id.replace(b"1",b"!")
id.replace(b"2",b"@")
id.replace(b"3",b"$")
id.replace(b"4",b"^")
id.replace(b"5",b"&")
id.replace(b"6",b"*")
id.replace(b"7",b"(")
id.replace(b"8",b")")
pw.replace(b"1",b"!")
pw.replace(b"2",b"@")
pw.replace(b"3",b"$")
pw.replace(b"4",b"^")
pw.replace(b"5",b"&")
pw.replace(b"6",b"*")
pw.replace(b"7",b"(")
pw.replace(b"8",b")")
print(str(id)+"\n")
print(str(pw)+"\n")
코드를 실행하면 b'해쉬코드'두개가 나온다. 쿠키에 user와 password에 각 넣어주면 클리어!
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-08 (0) | 2019.11.23 |
---|---|
webhacking.kr old-07 (0) | 2019.11.23 |
webhacking.kr old-05 (0) | 2019.11.22 |
webhacking.kr old-04 (0) | 2019.11.22 |
webhaking.kr old-03 (0) | 2019.11.22 |
최근댓글