반응형

역시나 달랑 페이지 소스를 볼수잇는 링크와 아이디 비밀번호가 적혀있다.(불친절이 기본이다 당연한건가...)


<?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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기