1.反射型XSS(get)
首先,我们先区分get和post的区别。GET是以url方式提交数据;POST是以表单方式在请求体里面提交。通过get提交的数据是可以直接在url中看到的,所以GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用URL方式进行攻击。
先尝试我们的普通一击 <script>alert("xss")</script>看看效果
我们发现后边的内容被截断了,判断可能有字符数量限制,F12找一下看看,找到字符限制20
直接前端修改字符数到2000再尝试,成功弹窗。 并且写入的js语句是在url中直接显示的。
2.反射型XSS(post)
提示先要登陆账号,登录账号后开始行动!
输入123456可以看到输入内容会显示在前端,但是请求方法变成了post,url不会显示出输入的内容。
直接输入payload,<script>alert("xss")</script>,弹窗成功!
总结一下,反射型xss,这种攻击的特点是非持久化。
3.存储型xss
这是一个留言板,我们随便留言一些内容。
可以看到,我们输入的内容,都在前端中显示了出来,那么我们如果留言一段xss的payload呢?
<script>alert("xss")</script>
留言以后出现了弹窗,当我们退出这个页面,重新进入留言板时 ,依然会弹窗。
依此,我们可总结区分出反射型xss和存储型xss的一个区别,就是反射型xss攻击是非持久型的,而存储型xss攻击是持久型的。
4.Dom型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?发生弹窗。
5.Dom型xss -x
请说出你的伤心往事,点一下,会发现出现一个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,同时text=空
查看源代码
点一下这个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,text=#
会出现“让往事都随风,都随风吧”
点一下都随风,会发现回到了上一级,text为空的状态,F12定位一下链接位置 ,原来a标签中,href的值是空。
重新开始,尝试在input输入框输入
'onclick="alert(666)">
再依次点击链接,发生弹窗。
查看源代码,原来是'οnclick="alert(666)">闭合掉了a标签,οnclick="alert(666)"被执行。
6.XSS之-盲打
XSS盲打指的是一种攻击场景,在数据提交界面提交数据后,前端不管是url还是源代码都看不到输入的内容和效果,这种数据只有后端管理员可以看见,当管理员触发盲打被X到的话,危害是非常大的,很可能造成管理员的cookie泄露,使攻击者可以通过管理员权限登录网站后台。
我们尝试输入一段xss的payload 提交上去,按照提示前往管理员后台。
<script>alert('你被X了')</script>
一登陆,发现被弹窗,进入后看到了留言者的信息。
7.XSS之过滤
人生苦短嘛?输入一些内容看看会不会过滤,输入<>,.<script>/?;:'"[{]}\|alert,发现被过滤。
再输入,.<>/?;:'"[{]}\|这些符号,发现符号可以通过
判断可能过滤了<script>标签,尝试大小写混写看看能否绕过。
<scRIPt>alert(666)</ScrIpt>
输入后发生弹窗,观察发现大小写混写的<script>标签未被过滤。
因为判断可能是过滤<script>标签,我们尝试用<img>注入试试,发现也可以弹窗。
<img src=x onerror="alert(666)">
8.xss之htmlspecialchars
首先,我们按提示得学习了解一下什么是htmlspecialchars。
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
&(和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
我们在输入框输入 其预定义的字符 &'><" 查看一下
我们发现一件事情,唯独' (单引号)没有转换成html实体并且单引号闭合了href的赋值。
我们可以写入 XXX' οnclick='alert(666)' ,XXX后的单引号用于闭合href的赋值
XXX' onclick='alert(666)'
输入后值被记录,且给a标签熟悉添加了 οnclick='alert(666)'
点击 XXX' οnclick='alert(666)' 的链接,发生弹窗。
9.xss之href输出和xss之js输入
这两个,我放在一起,先打开xss之href输出,input框中输入
javascript:alert("123")
我们发现 javascript:alert("123")赋值给了href,点击阁下自己的url,alert被执行,发生弹窗。
打开xss之js输入,在输入框输入tmac,发现输入内容赋值给$mc,由单引号闭合
尝试构造payload, x'</script><script>alert('xss')</script> 使用单引号闭合$mc,再由</script>闭合script标签,而后构造script标签,写入alert弹窗,成功弹出。
x'</script><script>alert('xss')</script>
后记
在pikachu-master\pkxss下,有rkeypress、xcookie、xfish文件夹,对应pikachuXss后台的键盘记录、cookie收集、和钓鱼结果,可以通过以上的xss漏洞进行类似实战的测试,获取被害人的一些敏感信息。
文章来源:https://www.toymoban.com/news/detail-754447.html
具体操作参考pikachu靶场通关_yyysec的博客-CSDN博客_pikachu靶场通关中的内容。文章来源地址https://www.toymoban.com/news/detail-754447.html
到了这里,关于Pikachu靶场通关笔记--Cross-Site Scripting (XSS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!