[webhacking.kr] old-6 Write-Up

두비니

·

2022. 8. 30. 03:53

 

 

webhacking.kr old-6

Write-Up

 

 

01. 문제 분석

 

문제를 접속하면 간단하게 ID와 pw를 보여줍니다.

문제의 소스코드 중 중요한 부분은 다음과 같습니다.

 

<?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);
}
?>

 

코드의 과정은 총 4가지로 나눌 수 있습니다.

  1. Cookie에 있는 user와 password 부분을 받아옴
  2. 각각 !@#$%^&*()을 1234567890으로 바꿈
  3. decode_id와 decode_pw를 20번 base64 decoding을 수행함
  4. 최종 결과가 id: 'admin', pw: 'nimda'인지를 확인

 

02. Solution

 

그러면 간단하게 코드를 통해 base64 encoding을 해주면 된다. 2번 과정은 base64 encoding으로는 해당 글자들이 사용되지 않기 때문에 처리하지 않았다.

 

import base64

id = b"admin"
pw = b"nimda"

encode_id = id
encode_pw = pw
for i in range(20):
    encode_id = base64.b64encode(encode_id)
    encode_pw = base64.b64encode(encode_pw)

print(encode_id)
print(encode_pw)

 

 

그리고 각각의 값을 쿠키에 넣어주면..?

 

 

 

끝! 간단한 encoding문제였다.

'War Games > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-8 Write-Up  (0) 2022.08.31
[webhacking.kr] old-7 Write-Up  (0) 2022.08.30
[webhacking.kr] old-5 Write-Up  (0) 2022.08.29
[webhacking.kr] old-4 Write-Up  (0) 2022.08.28
[webhacking.kr] old-3 Write-Up  (4) 2022.08.26