Web - Client | Javascript - Obfuscation 3
2022. 5. 29. 14:56ㆍroot-me.org
728x90
처음으로 풀어보는 난이도 3짜리 문제...!
어떤 문제일지 기대되네요.
메인 페이지에 들어가자 역시나 alert 창이 뜹니다.
PW를 입력하라고 하네요.
<html>
<head>
<title>Obfuscation JS</title>
<script type="text/javascript">
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Entrez le mot de passe / Enter password');
alert( dechiffre(h) );
</script>
</head>
</html>
이번에는 다른 문제들보다 JS Code가 조금 복잡해 보입니다.
윗부분은 쭉 보니 딱히 중요한 부분이 없는 것 같습니다.
dechiffre() 함수 밖에 있는 String["fromCharCode"] 부분을 보면 dechiffre~~라고 써져있습니다.
여기서 괄호 안에 들어있는 16진수들을 10진수로 바꿔보겠습니다.
제대로 나온 것 같습니다.
아마도 아스키코드의 10진수인 것 같네요.
이제 이 문자열을 fromCharCode()에 넣은 뒤, Console에서 실행해보겠습니다.
난이도가 3이 되니 슬슬 풀 맛이 나네요 :>
728x90
'root-me.org' 카테고리의 다른 글
Web - Server | HTML - Source code (0) | 2022.06.02 |
---|---|
Web - Client | XSS - Stored 1 (0) | 2022.06.01 |
Web - Client | Javascript - Webpack (0) | 2022.05.28 |
Web - Client | Javascript - Native code (0) | 2022.05.27 |
Web - Client | Javascript - Obfuscation 2 (0) | 2022.05.26 |