이런게 가장 먼저 나온다.
“키값을 확인해라” 이런 뜻인것 같당.
일단 아무거나 쳐봤다.
흠 뭐 별게 안나온다.
소스를 보자.
이릏게 힌트가 나와있다!
이런 함수도 같이 나와있담.
그리고 이런 엄청 길고 복잡해 보이는 코드도 눈에 띈다.
<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> |
약간 요런 느낌이다....
이 코드는 조건문을 통해서 replace를 해 주는 역할을 하고 있는 것 같다!
소스에 나와있는 함수나 조건문 등에 아까 주어진 힌트를 넣어서 출력되는 값을 입력해주면 될 것 같다….
프록시툴을 사용해서 해결해보려구 했는데 뜻대로 잘 되지 않아서….;0;
이것 저것 찾아보다가 저기 소스에 있는 코드가 자바 난독화의 꽤 유명한 예제 중 하나라는 것을 알게 되었다.
Javascript Packer 분석 [언패킹]
eval(function(p,a,c,k,e,r){ e=function(c){ return c.toString(a) } ; if(!''.replace(/^/,String)){ wh...
blog.naver.com
이 사이트를 참고해서 공부했다.
그리고 언패킹 사이트를 알게 되었고
js 난독화
패킹 혹은 난독화라고 해야 하려나? 패킹은 단순하게 base62로 인코딩 한 것을 eval을 통해서 실행하는 구조인 거라 난독화라 하긴 애매한 녀석이고 짧은 녀석을 패킹하니 오히려 더 데이터가 많아
minimonk.net
이렇게 넣어주니, 뭔가 깔끔하게 떨어지는 출력값을 얻었다!
(약간 편법으로 푼 듯한 너낌이 없잖아 있어서…..ㅎㅎ….다음에 프록시 툴을 좀 더 공부하고 프록시 툴로 이 문제를 다시 풀어보려 한다)
일단 이런 코드를 얻었다.
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)
}
자바를 써야하나 처음에는 생각했는데...
자바에 또 막상 넣어보니 돌아가지를 않아서 개발자 도구를 켜서 위에서 얻은 값을 사용했다.
언패킹한 코드를 넣어주고
밑에
alert(PASS(12342046413275659));
이 명령을 추가해줬고, 이를 통해 값을 얻어냈다.
키를 얻었다!
'웹 > SuNiNaTaS' 카테고리의 다른 글
# SuNiNaTaS 8 (0) | 2021.02.16 |
---|---|
# SuNiNaTaS 7 (0) | 2021.02.10 |
# SuNiNaTaS 1 (0) | 2021.02.10 |
CTF_WEEK3_# SuNiNaTaS 6 (0) | 2021.02.05 |
CTF_WEEK3_# SuNiNaTaS 2 (0) | 2021.02.05 |