反射型xss(get)
首先输入 >'''<> 并提交,发现可以正常输出
查看源码
发现我们的输入全部输出到了p标签中
之后我们输入payload:
<script>alert("xss")</script>
发现输入框中容不下这么长的数据
之后我们F12,去改maxlength的值
改完后我们的payload执行成功
查看源码,JS代码被浏览器执行
像这种GET型的XSS漏洞,一般可将含XSS的URL伪装后发给攻击目标即可
伪装方式:网上搜索短链接,复制要伪装的URL,之后会生成短链接和二维码
反射型xss(post)
admin/123456 登录
测试
输入payload <script>alert('xss')</script>
以POST形式提交,URL中不会显示参数内容,所以我们不能把恶意代码嵌入URL中
我们先通过抓包
右键->Engagement Tools->Generate CSRF Poc
复制这段代码到记事本,命名为xss.html
当我们点开这个网址,点击按钮
测验成功!
我们可以将form表单作为payload插在网站中
将存放POST表单的链接发送给受害者,让受害者点击
这个POST表单会自动向漏洞服务器提交一个POST请求,实现受害者帮我们提交POST请求目的。
存储型xss
在存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害
我们先留言,查看它的过滤机制
发现可以永久存储并输出我们的留言
之后插入payload: <script>alert('xss')</script>
成功弹窗
DOM型
我们先随便输入一些字符串,显示“what do you see”
之后看源码
DOM型XSS属于纯前端的漏洞,在我们输入后会得到一个字符串,然后通过字符串拼接方式拼接到 a href中。输入点我们可以从<a>标签构造一个闭包函数。
之后构造一个闭包函数到输入文本框中
# ' οnclick="alert(123)">
点击>what do you see
弹窗成功。