접기
페이지 소스를 보면 Words라는 변수로 Unescape로 풀어주라고 써있다. 풀어주면 밑에와 같은 script 형태가 나온다. 그 안에 JScript.Encode처리되어있다. 이 부분은 JScript.Decode되는 페이지로 들어가서 Decode해 보면 substring으로 처리되어있다. 이 부분을 코드를 돌려주면 값이 두개가 나오는데, 주소형태로 전달하라고 써있으니 주소값으로 넣어주면 password가 존재한다. password를 challenge페이지에 넣어주면 문제는 풀린다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- unescape 처리한 부분 -->
<center >
<p >Well this won't be so hard, just enter the right password!</p >
<script language ="JScript.Encode" >#@~^lAIAAA = = @#@ & @ ! Z O@#@ & dJzCMeUYCDDP3U1WNMeC@#
@ & i@#@ & d6E mOkGU,Yn / DnDv#`@#@ & d\C.,wC / k~{P[Km ! : + YcWWM: wm / dA9R\msEi@#@ & 7 - lMP1D
zwO2m / dP{~JjfVKqN ! sC0CKVrI@#@ & 77lMPl9NM~ ',BdW^EOrKxRa4wQwlkdAN{Bp@#@&d-CMPsW1CYb
+~x,VW^CDkGxc4M+Wp@#@&d\mD,GEDPxPEBI@#@&d@#@&7\mDPaCd/yP{P^Dz2DwC/k /!4dOMkxLc8!
SPyMl_q*_1DXaYaC/kRdE(/O.bxov+ev _ybSP2_+#Qm.zaY2lkdRkE8dDDkULv&Q* qBP0*_1DXaYaC/kRdE(/O
.vG~8b_1DXaO2lk/c/;4dOM`~8bialdd{VW^CDknRk;(/OM`^WmmYbnRbx[+XrWcEgB*QF*il9[.' mN9D / ;8kY.k
L`Z~~C9ND r Nn6}WvB_E#3F#3B(sl(VC 'Ei@#@&i0WMck{!ib@!2lk/cSnxIr3_b @#@&dikWcal/d 1tCDzOvkb,'
{Pwm / k + R1tCDzYcr * # @#@ & didNK^;:xDRADrO`2lkdR1tC.zY`rb * i@#@ & i7)@#@ & i8@#@ & d^W1CYbWUP
{PC[9D_aC / ki@#@ & 7N@#@ & O @ * @#@ & ob4AAA = = ^#~@ </script >
<form name ="form" >
Password: <input type ="password" name ="passwd" > <input type ="button" value ="OK" onClick ="tester()" >
</form >
</center >
IT Security
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
< ! - - JScript.Decode 처리한 부분 - - >
//***Start Encode***
function tester(){
var pass = document .form.passwd.value;
var cryptpass = "VDkPWd0lakHPl" ;
var addr = 'solution.php?passwd=' ;
var locatie = location .href;
var out = '' ;
var pass2 = cryptpass.substring (10 , 2 * 5 + 1 )+ cryptpass.substring (2 * (2 + 2 ), 3 + 6 )+
cryptpass.substring (3 + 5 - 1 , 8 )+ cryptpass.substr (7 ,1 )+ cryptpass.substr (6 ,1 );pass=
locatie.substr (locatie.indexOf ('?' )+ 1 );addr= addr.substring (0 , addr.indexOf ('?' )+ 1 )+ 'blabla=' ;
for (i= 0 ;i< pass.Len;i+ + ){
if (pass.charAt (i) = = pass2.charAt (i)){
document .write(pass.charAt (i));
}
}
location = addr+ pass;
}
IT Security
var cryptpass = "VDkPWd0lakHPl" ;
var addr = 'solution.php?passwd=' ;
var locatie = location .href;
var pass2 = cryptpass.substring (10 , 11 )+ cryptpass.substring (8 , 9 )+ cryptpass.substring (7 , 8 )+ cryptpass.substr (7 ,1 )+ cryptpass.substr (6 ,1 );
var pass= locatie.substr (locatie.indexOf ('?' )+ 1 );addr= addr.substring (0 , addr.indexOf ('?' )+ 1 )+ 'blabla=' ;
// pass2 = "Hall0"
// pass = "soultion.php?blabla="
접기