1 <?php
2 include "../../config.php";
3 if($_GET['view_source']) view_source();
4 if(!$_COOKIE['user']){
5 $val_id="guest";
6 $val_pw="123qwe";
7 for($i=0;$i<20;$i++){ // id와 pw를 base64 인코딩을 20번 반복한다
8 $val_id=base64_encode($val_id);
9 $val_pw=base64_encode($val_pw);
10 }
11 $val_id=str_replace("1","!",$val_id); // str_replace(변경대상, 변경문자, 바꾸자 하는 문자열)
12 $val_id=str_replace("2","@",$val_id);
13 $val_id=str_replace("3","$",$val_id);
14 $val_id=str_replace("4","^",$val_id);
15 $val_id=str_replace("5","&",$val_id);
16 $val_id=str_replace("6","*",$val_id);
17 $val_id=str_replace("7","(",$val_id);
18 $val_id=str_replace("8",")",$val_id);
19
20 $val_pw=str_replace("1","!",$val_pw);
21 $val_pw=str_replace("2","@",$val_pw);
22 $val_pw=str_replace("3","$",$val_pw);
23 $val_pw=str_replace("4","^",$val_pw);
24 $val_pw=str_replace("5","&",$val_pw);
25 $val_pw=str_replace("6","*",$val_pw);
26 $val_pw=str_replace("7","(",$val_pw);
27 $val_pw=str_replace("8",")",$val_pw);
28
29 }
30 ?>
32 if($decode_id=="admin" && $decode_pw=="nimda"){
33 solve(6);
43 }
코드를 친절히 설명했다 ^^
그래도 모르시겠다면 구글에....
우리의 목표는 쿠키를 확인해 decode_id 가 admin decode_pw 가 nimda 가 나와야 풀린다
밑에 또 다른 php 코드가 decode하는 코드이므로
우리는 admin 과 nimda를 encode 해야한다
파이썬의 도움을 받아서 encode 해보자
import base64
def change(e):
result = e.replace("1","!")
result = e.replace("2","@")
result = e.replace("3","$")
result = e.replace("4","^")
result = e.replace("5","&")
result = e.replace("6","*")
result = e.replace("7","(")
result = e.replace("8",")")
return result
id = 'admin'
pw = 'nimda'
for i in range(0, 20):
id = base64.urlsafe_b64encode(bytes(id, 'UTF-8')).decode("UTF-8")
pw = base64.urlsafe_b64encode(bytes(pw, 'UTF-8')).decode("UTF-8")
print('id 최종 결과 : ' + change(id))
print('pw 최종 결과 : ' + change(pw))
나온 값을 쿠기에 붙여넣어주면 풀린다