소스 코드를 보면 아래와 같은 js 코드가 있습니다.
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, {}))
먼가 난독화 느낌이 나는데
p가 무었인지 학인하기 위해 console.log를 찍어보면 다음과 같습니다.
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]);console.log(p);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,{}))
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)}
PASS라는 함수가 나옴을 알 수 있습니다.
주석에서 힌트가 다음과 같은 숫자라고 했으니 PASS 함수의 인자로 넣어줍니다.
<!--Hint : 12342046413275659 -->
PASS(12342046413275659)
9c43c20c
이 값을 넣어주면 플래그가 나옵니다.
'write-up(web) > suninatas' 카테고리의 다른 글
[suninatas] challenges 6 write-up (0) | 2023.08.18 |
---|---|
[suninatas] challenges 4 write-up (0) | 2023.08.18 |
[suninatas] challenges 3 write-up (0) | 2023.08.18 |
[suninatas] challenges 2 write-up (2) | 2023.08.11 |
[suninatas] challenges 1 write-up (0) | 2023.02.20 |