Search

WebHacking.kr Challenge old-06

목표 : 소스코드 독해
심플 그 자체
아이디와 비밀번호도 알려준다.
view-source 값
<?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>
PHP
복사
핵심은 다음 코드
if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6);
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); }
PHP
복사
쿠키 값에서 값을 받아오고, 각 특수문자를 숫자로 바꾼뒤 base64 decode를 20회 수행한 결과가 admin과 nimda이면 된다.
그럼 반대로 하면 된다.
base64_encode 20번하고 역으로 전환하면 끝
import base64 temp_id="admin" for i in range(0,20): temp_id = base64.b64encode(temp_id) temp_id.replace("1","!") temp_id.replace("2","@") temp_id.replace("3","$") temp_id.replace("4","^") temp_id.replace("5","&") temp_id.replace("6","*") temp_id.replace("7","(") temp_id.replace("8",")") print (temp_id)
Python
복사
코드도 간단하다.
에러가 발생해서 다음 아래로 코드를 수정했다.
import base64 temp_id="admin" temp_id = temp_id.encode('utf-8') for i in range(0,20): temp_id = base64.b64encode(temp_id) temp_id = temp_id.decode('utf-8') temp_id.replace("1","!") temp_id.replace("2","@") temp_id.replace("3","$") temp_id.replace("4","^") temp_id.replace("5","&") temp_id.replace("6","*") temp_id.replace("7","(") temp_id.replace("8",")") print (temp_id)
Python
복사
이렇게 나온 결과값을 각각 쿠키 에디터로 user와 pw 부분에 넣어주면 끝

✓ 다른 [워게임] 포스트

WebHacking.kr Challenge Write-Up (70/80)
In progress
WebHacking.kr Challenge Write-Up (70/80)
In progress
Load more
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. absolroot all rights reserved.