webhacking/client

Enigma Group basic/javascript 9

qkqhxla1 2014. 11. 1. 14:30

난이도가 조금 올라감.


폼에 입력한 비밀번호가 함수 내에서 쓰이기 때문에 단순히 끝에 alert같은걸로 pass를 출력하는게


되지 않는다; 


<script language=JavaScript>

function checkPass()

{

var p1 = "bewareoftheenigmagroupunderground";

var p2 = "betterofftohacktherealownersboxes";

var p3 = "wassaidbyadudepseudodpsychomarine";


var confirmPass = document.login.password.value;


var chk0 = 0;

var pass = "";

var base = "";



for ( a = 0; a < p1.length; ++a ) //p1의 길이만큼 반복문을 돌면서

{

var blah = confirmPass.substring ( chk0, chk0 + 1 ); //내가 입력한 비밀번호에서 한글자씩 가져온다.

var chk1 = p1.substring ( a, a + 1 ); //위의 각각의 변수들에서도 하나씩 비밀번호를 가져옴.

var chk2 = p2.substring ( a, a + 1 );

var chk3 = p3.substring ( a, a + 1 );


  if ( chk1 == chk3 ) { if ( chk1 == blah) { base = base + chk1; } else { break; } chk0++; } 

if ( chk2 == chk1 ) { if ( chk2 == blah) { base = base + chk2; } else { break; } chk0++; }

if ( chk3 == chk2 ) { if ( chk3 == blah) { base = base + chk3; } else { break; } chk0++; } //위에 적힌 변수의 세개중에 두개의 같은 인덱스의 값이 같으면 그걸 내 비밀번호와 비교하는데 또 그게 같으면 base와 더함.

( p1.length == a + 1 ) ? pass = base : false; //그걸 변수의 길이보다 작게 돌림.

}


( confirmPass != '' && confirmPass == pass ) ? window.location.href=pass+".php" : alert( "Wrong! Please try again." );


}

</script>


예를 들어보면


var a="abcde";

var b="abedf";

var c="abefd";

라 하면 첫번째 인덱스에서 셋다 a이므로 이자리는 그냥 넘어간다.


그렇지만 

var a="abcde";

var b="abedf";

var c="gbefd";


이렇게 첫번째 인덱스의 두개가 a이면(var a,b가 'a'인데 다른변수 두개가 'a'여도 된다.)


그걸 비밀번호의 인덱스와 비교한다.


예로 비밀번호가 "abcd"라고 하면 첫번째 자리는 a가 맞는거. 비밀번호의 인덱스는 변수의 인덱스와


따로 증가한다.(비밀번호는 변수 길이보다 짧음.)


이런식으로 비교해보면 된다.


파이썬.


import sys
a = "bewareoftheenigmagroupunderground";
b = "betterofftohacktherealownersboxes";
c = "wassaidbyadudepseudodpsychomarine";

for i in range(0,len(a)):
    if(a[i]==b[i] and a[i]!=c[i]):
        sys.stdout.write(a[i])
    elif(a[i]==c[i] and a[i]!=b[i]):
        sys.stdout.write(a[i])
    elif(b[i]==c[i] and b[i]!=a[i]):
        sys.stdout.write(b[i])
print ''





'webhacking > client' 카테고리의 다른 글

Enigma Group basic/javascript 11  (0) 2014.11.01
Enigma Group basic/javascript 10  (0) 2014.11.01
Enigma Group basic/javascript 1~8  (0) 2014.11.01
suninatas level 7  (0) 2014.10.30
suninatas level 5  (0) 2014.10.30