DOM 기반 XSS 방어 관련 질문입니다.
https://okky.kr/article/872734?note=2239980
상기 링크의 질문에서 이어서 한 번 더 질문드리고자 합니다.
현재 관리 중인 페이지가 보안 검사 결과 URL 전반에서 DOM 기반 XSS 공격에 취약판정을 받았습니다.
공격받은 내용의 예시는 아래와 같습니다.
URL : https://127.0.0.1/cgi-bin/pglogin.cgi#jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
Method : GET
공격받은 URL (https://127.0.0.1/cgi-bin/pglogin.cgi ) 은 페이지 접속을 담당하는 CGI 전반이며
예시에 해당하는 URL로 접속하면 아래의 정적 HTML 문서를 전달합니다.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="/css/style.css"/>
<link type="text/css" rel="stylesheet" href="/css/jquery-ui.min.css"/>
<link type="text/css" rel="stylesheet" href="/css/jquery.highlighttextarea.min.css"/>
<!--
<link type="text/css" rel="stylesheet" href="/css/offline-theme-default.css"/>
<link type="text/css" rel="stylesheet" href="/css/offline-language-english.css"/>
-->
<script type="text/javascript" src="/js/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery.highlighttextarea.min.js"></script>
<script type="text/javascript" src="/js/util.js"></script>
<script type="text/javascript" src="/js/loginaction.js"></script>
<!--
<script type="text/javascript" src="/js/offline.min.js"></script>
-->
<title>Monitoring Tool Demo</title>
</head>
<body onload="initAntiCsrf()">
<div align="center" halign="center">
<div id="header">
<table class="ttl_table">
<tr>
<td class="ttl_title"><font size="5">Monitoring Tool Demo</font></td>
</tr>
<tr>
<td class="ttl_name">
</td>
</tr>
</table>
</div>
<!-- vim:set ts=8 sts=2 sw=2: -->
<table>
<h2>Log In</h2>
<tr>
<td>Name</td>
<td><input type='name' style='width:150px;' name='nm' maxlength='25' size='16' id="nm_input" required></input></td>
</tr>
<tr>
<td>Password</td>
<td><input type='password' style='width:150px;' name='ps' onKeyDown='EnterLogin(event);' maxlength='16' size='16' id="pw_input" required></input></td>
</tr>
</table>
<div id="warning" style="color:red; font-weight:bolder;"></div>
<p>
<input type='button' value='Log In' style='width:100px;' name='action' onClick='BtLogin();' >
<input type='reset' value='Cancel' style='width:100px;'>
</p>
</div>
</body>
</html>
Input에 대한 검증 등은 전적으로 서버가 수행중이기에 이 부분도 고쳐야할 것 같습니다만...
제가 지식이 없어서인지 단순 페이지를 불러오는 URL에서 위와 같은 #을 활용한 공격법으로 취약판정이 나오는건 여전히 어째서인지를 모르겠습니다...
혹시 짐작가시는게 있다면 도와주시면 정말 감사하겠습니다.
'웹' 카테고리의 다른 글
SSRF (펌) (0) | 2022.06.14 |
---|---|
HTTP Request Smuggling (펌) (0) | 2022.06.14 |
XSS 버그바운티 (펌) (0) | 2022.05.11 |
Wordpress file uplad exploit 확인 (0) | 2022.05.02 |
wordpress 대표적인 취약점 정리 (0) | 2022.04.29 |