Webhacking Writeup old-14번 문제입니다.
check 만 있고 소스코드를 주지않는 문제입니다.
검사모드로 들어가 HTML을 보도록 하겠습니다.
<html>
<head>
<title>Challenge 14</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<br><br>
<form name=pw><input type=text name=input_pwd><input type=button value="check" onclick=ck()></form>
<script>
function ck(){
var ul=document.URL;
ul=ul.indexOf(".kr");
ul=ul*30;
if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
else { alert("Wrong"); }
}
</script>
</body>
</html>
ck라는 함수가 ul에 현재 url을 대입시키고 indexOf() 라는 함수로 .kr 관련된 무언가를 수행한뒤
ul*30 을하고 대입합니다. ul의 값이 pw.inpur_pwd.value와 비교해서 True 라면
?ul*pw.input_pwd.value 로 이동하면 해결되는 문제입니다.
일단 document.URL을 해석하면 https://webhacking.kr/challenge/js-1/ 이 문자열이
ul에 대입된다고 알 수 있습니다.
indexOf( ) 는 무슨 함수인지 구글링 해봅시다.
인수로 받은 값의 시작지점을 정수형으로 반환하는 함수이군요
저희가 받은 인수는 .kr 이니 h문자부터 시작하면 18입니다.
(값을 인덱스로 반환하는 함수이기에 시작이 1이 아닌 0부터 시작하기에 18이 됩니다.)
나머지 소스도 해석하면 18*30 = 540이 대입되고
if문이 참일경우 pw값과 ul 값이 같아 ?540*540.php 임을 알 수 있습니다.
최종적으로 ?291600 이라는 값이 나오는데 이걸 삽입해 보겠습니다.
깔끔하게 문제가 해결되었습니다!
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 18번 문제 (0) | 2022.07.07 |
---|---|
Webhacking Writeup 15번 문제 (0) | 2022.07.06 |
Webhacking Writeup 12번 문제 (0) | 2022.07.06 |
Webhacking Writeup 17번 문제 (0) | 2022.07.06 |
Webhacking Writeup 16번 문제 (0) | 2022.07.06 |