본문 바로가기

Hacking/- suninatas.com

[Web] Level 5

반응형

문제 링크 : http://suninatas.com/Part_one/web05/web05.asp


소스코드 보기를 하면 아래와 같은 자바스크립트가 있는 것을 확인할 수 있다.

eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\');p q(n){g h=\'\';g j=r;s(g i=t;i>0;){i-=4;g k=(n>>i)&u;v(!j||k!=0){j=w;h+=l[k]}}x(h==\'\'?\'0\':h)}',34,34,'||||||||||||||||var|result||start|digit|digitArray|new||Array|function|PASS|true|for|32|0xf|if|false|return'.split('|'),0,{}))

즉 자바스크립트가 packing이 되어 있기 때문에 이 packing을 풀어주어야 한다. 따라서 자바스크립트의 packing을 해제해주는 사이트에서 복호화를 하도록 한다. 아래는 unpacking을 해주는 사이트의 주소이다.

http://dean.edwards.name/unpacker/


그래서 복호화한 자바스크립트는 아래와 같다.

var digitArray=new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');function PASS(n){var result='';var start=true;for(var i=32;i>0;){i-=4;var digit=(n>>i)&undefined;0xf;if(!start||digit!=0){start=false;result+=digitArray[digit]}}return(result==''?'0':result)}

그래서 PASS() 라는 함수에 숫자를 넣어서 암호화를 하는 것을 알 수 있다.

또 소스코드에서 힌트로 <!--Hint : 12342046413275659 -->라고 했으므로 크롬에서 자바스크립트 콘솔창으로 PASS(12342046413275659)를 입력하면 9c43c20c라는 결과가 얻어진다.

따라서 9c43c20c를 input 박스에 넣고 check 버튼을 누르면 Auth key를 얻을 수 있다.


Auth key : Unp@cking j@vaScript


반응형

'Hacking > - suninatas.com' 카테고리의 다른 글

suninatas 공지사항 글쓰기 성공  (0) 2018.06.17
[Web] Level 6  (0) 2015.10.25
[Web] Level 4  (0) 2015.10.24
[Web] Level 3  (0) 2015.10.24
[Web] Level 2  (0) 2015.10.24