늘모자란, 개발 :: [SuNiNaTas.com] Challenge 5

늘모자란, 개발

Check key value라고 적혀있고 아무것도 없는 폼이 하나 맞이해준다.

                        <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,{}))        
                        </script>

<!--Hint : 12342046413275659 -->
<!-- M@de by 2theT0P -->


위와같이 난독화된 코드가 있는데 아무래도 핵심인듯 보인다.

deobfuscator 를 통해 스크립트를 살려내보자

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)
}


위에 힌트도 있겠다, 함수에 값을 넣어 돌려보자. 문자열이 하나 나오는데 넣으면 Auth key가 나온다.
2016/09/08 15:33 2016/09/08 15:33