首先,我们先区分get和post的区别。GET是以url方式提交数据;POST是以表单方式在请求体里面提交。通过get提交的数据是可以直接在url中看到的,所以GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用URL方式进行攻击。
先尝试我们的普通一击 看看效果
我们发现后边的内容被截断了,判断可能有字符数量限制,F12找一下看看,找到字符限制20
直接前端修改字符数到2000再尝试,成功弹窗。 并且写入的js语句是在url中直接显示的。
提示先要登陆账号,登录账号后开始行动!
输入123456可以看到输入内容会显示在前端,但是请求方法变成了post,url不会显示出输入的内容。
直接输入payload,,弹窗成功!
这是一个留言板,我们随便留言一些内容。
可以看到,我们输入的内容,都在前端中显示了出来,那么我们如果留言一段xss的payload呢?
留言以后出现了弹窗,当我们退出这个页面,重新进入留言板时 ,依然会弹窗。
依此,我们可总结区分出反射型xss和存储型xss的一个区别,就是反射型xss攻击是非持久型的,而存储型xss攻击是持久型的。
DOM XSS的XSS代码并不需要服务器解析响应的直接参与,触发XSS靠的就是前端的DOM解析,可以认为完全前端的事情。用户输入的参数中如果包含js语句,输入内容就会被当做js执行,就有可能导致DOM XSS
输入123后,点击click me下面显示出来what do you see?,我们查看前端代码发现123直接赋值给了a标签的href,这就导致了xss漏洞产生。
payload使用: javascript:alert("123")
输入之后,点击what do you see?发生弹窗。
请说出你的伤心往事,点一下,会发现出现一个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,同时text=空
查看源代码
点一下这个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,text=#
会出现“让往事都随风,都随风吧”
点一下都随风,会发现回到了上一级,text为空的状态,F12定位一下链接位置 ,原来a标签中,href的值是空。
重新开始,尝试在input输入框输入
'onclick="alert(666)">
再依次点击链接,发生弹窗。
查看源代码,原来是'οnclick="alert(666)">闭合掉了a标签,οnclick="alert(666)"被执行。
XSS盲打指的是一种攻击场景,在数据提交界面提交数据后,前端不管是url还是源代码都看不到输入的内容和效果,这种数据只有后端管理员可以看见,当管理员触发盲打被X到的话,危害是非常大的,很可能造成管理员的cookie泄露,使攻击者可以通过管理员权限登录网站后台。
我们尝试输入一段xss的payload 提交上去,按照提示前往管理员后台。
一登陆,发现被弹窗,进入后看到了留言者的信息。
人生苦短嘛?输入一些内容看看会不会过滤,输入<>,.
输入后发生弹窗,观察发现大小写混写的 使用单引号闭合$mc,再由闭合script标签,而后构造script标签,写入alert弹窗,成功弹出。
x'
在pikachu-master\pkxss下,有rkeypress、xcookie、xfish文件夹,对应pikachuXss后台的键盘记录、cookie收集、和钓鱼结果,可以通过以上的xss漏洞进行类似实战的测试,获取被害人的一些敏感信息。
具体操作参考pikachu靶场通关_yyysec的博客-CSDN博客_pikachu靶场通关中的内容。