5번 문제
아무거나 입력하고 Check 버튼을 눌렀더니, 그냥 Submit이 되고 아무 일도 일어나지 않는다.
개발자도구를 확인했더니 또 Hint가 있었다. 12342046413275659
좀 더 자세히 보기 위해서 Burp Suite을 사용했다.
<script> 안에 있는 코드를 좀 더 자세히 들여다보자.
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,{}))
엄청.. 복잡하다. 보니까 자바스크립트를 난독화시키는 경우도 있던데 혹시 그런건가 해서 unpacking 툴을 찾아보았다.
Javascript Unpacker Tool이라고 쳤더니 Strictl SW 사이트가 뜨길래 이 툴을 사용했다.
Javascript Unpacker Tool - Strictly Software
This Javascript unpacker tool has now been upgraded to allow it to unpack multiple eval statements. So if your packed code has itself been packed a few times it will loop through until it finds the original source code. If you want to test this multiple ev
www.strictly-software.com
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) & 0xf;
if (!start || digit != 0) {
start = false;
result += digitArray[digit]
}
}
return (result == '' ? '0': result)
}
언어를 해석해보면.. i가 32부터 시작하고, 그 i에서 4를 빼준 뒤, (n>>i)&0xf 한 값을 digit이라는 변수에 넣어준다. 그리고 start가 아닌 것 또는 digit이 0이 아니면 start는 거짓이 되고, result 값에 result+digitArray[digit]을 더해줄 수 있다. 결과는 result==" ? '0':result ..
대충 PASS 함수를 사용하라는거 같다.
아까 힌트에서 얻은 숟자를 PASS함수 매개변수에 넣어봤는데, '9c43c20c'라는 숫자가 나왔다.
그 값을 넣어줬더니 Authkey가 출력된다. 나는 PASS 함수를 아예 해석해야만 하는 줄 알았는데.. 그건 아니었나보다 ;;
그리고 아래 있는 init()에서 value 부분에 힌트 값을 넣어줘도 바로 Authkey 값이 나온다.
'CTF, 워게임 문제 풀이 > Suninatas' 카테고리의 다른 글
[Web] 써니나타스 Challenges 7번 문제 (0) | 2022.06.02 |
---|---|
[Web] 써니나타스 Challenges 6번 문제 (0) | 2022.06.01 |
[Web] 써니나타스 Challenges 4번 문제 (0) | 2022.05.30 |
[Web] 써니나타스 Challenges 3번 문제 (0) | 2022.05.29 |
[Web] 써니나타스 Challenges 2번 문제 (0) | 2022.05.28 |
댓글