써니나타스 5번 문제풀이 Write Up 입니다.
문제에 접속하면 Check Key Value라는 문장과 함께 텍스트박스가 하나 있습니다.
아무 문자를 입력하고 Check 버튼을 눌러도 별 반응이 없습니다.
F12를 눌러 개발자도구를 열어보면, 다음과 같은 힌트가 있습니다.
해당 힌트를 입력해도 별 차이는 없습니다.
페이지 소스코드를 더 뜯어보면, 다음과 같은 script를 발견할 수 있습니다.
다만 해당 script는 난독화가 되어 있어 읽기 어렵습니다. 따라서 난독화를 풀어주는 툴을 이용해 보도록 하겠습니다.
난독화를 해제하는 사이트는 여러 가지가 있는데, 이 글에서는 http://dean.edwards.name/unpacker/ 사이트에서 난독화를 해제했습니다.
코드가 좀 더러운데, 정리하면 다음과 같습니다.
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)
}
이렇게 나오는데, 이 함수의 매개변수에 힌트를 넣어서 함수를 호출해 보겠습니다.
Console에 PASS()를 호출하면 바로 값이 나옵니다.
해당 값을 텍스트박스에 넣고 Check 버튼을 누르면 flag가 나옵니다.
'CTF > SuNiNaTaS' 카테고리의 다른 글
[CTF] SuNiNaTaS(써니나타스) 7번 Write-Up | Web (0) | 2022.10.05 |
---|---|
[CTF] SuNiNaTaS(써니나타스) 6번 Write-Up | Web (0) | 2022.10.05 |
[CTF] SuNiNaTaS(써니나타스) 4번 Write-Up | Web (0) | 2022.10.02 |
[CTF] SuNiNaTaS(써니나타스) 3번 Write-Up | Web (0) | 2022.10.02 |
[CTF] SuNiNaTaS(써니나타스) 2번 Write-Up | Web (0) | 2022.10.02 |
댓글