
1. 문제 정보
- 문제 번호 : old -06
- 문제 점수 : 10점
2. 문제 분석

문제를 클릭하면 위 사진과 같은 화면이 뜨게 된다. view-sourece를 눌러보면 소스 코드가 나오는데 아래와 같이 val_id와 val_pw로 설정하고 이걸 쿠키로 작성한다. 특수문자는 숫자로 치환되는 코드도 있다.
$val_id="guest";
$val_pw="123qwe";
for($i=0;$i<20;$i++){
$val_id=base64_encode($val_id);
$val_pw=base64_encode($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>");
문제에서 base64로 20번 디코드한 값이 id는 admin, pw는 nimda일 경우 해결되므로 admin과 nimda를 20번 인코딩해주면 된다.
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);
}
3. 풀이
파이썬 코드로 nimda와 admin각각 base64 20번한 값을 계산하고 burf suite로 쿠키값을 넣어주면 문제가 풀린다.


4. 요약
- 서버는 쿠키 값을 특수문자→숫자 치환 후 Base64 20번 디코딩하여 admin/nimda인지 검증한다.
- 이를 역이용해 admin/nimda를 Base64 20번 인코딩 하고 숫자→특수문자 치환 하는 파이썬 스크립트를 짰다.
- 생성된 값을 Burp Suite를 통해 쿠키에 주입하여 해결했다.
'워게임 > webhacking.kr' 카테고리의 다른 글
| [webhacking.kr] old-32 문제 (0) | 2026.01.20 |
|---|---|
| [webhacking.kr] old-14 문제 (0) | 2026.01.20 |
| [webhacking.kr] old-17 문제 (0) | 2026.01.20 |
| [webhacking.kr] old-15문제 (0) | 2026.01.20 |
| [webhacking.kr] old-20문제 (0) | 2026.01.20 |