0


Pikachu之XSS

Ps:火狐浏览器、phpstudy、pikachu、burpsuite

我们先来了解一下什么是XSS叭,见下图:

接下来,就正式开始我们的实验叭~

一、反射型XSS(get)

反射型XSS通俗的来讲就是当攻击者插入构造好的恶意语句后,用户点击之后回出现弹窗,但这个弹窗是一次性的,刷新之后就没有了,没有存在服务器中

Get呢就是它是以url的方式来提交数据的

了解了这些之后,我们就开始这次的实验叭

先看一下界面,就是一个简单的登录框

输入一些特殊字符看看

从上图我们可以发现特殊字符没有被过滤,那我们就可以利用它没有被过滤的字符来构造payload

输入一半之后写不进去了,想到前端对输入的字符数量做了限制,好说,我们通过F12对其输入长度进行修改

我们在尝试构造payload进行输入

点击提交后出现弹窗,切换页面后弹窗失效,不会在有弹窗,此次实验结束

二、反射型XSS(post)

同上,post是以表单的方式在请求体里提交数据,登录账号密码在提示中已经给出,可自行实验

三、存储型XSS

存储型XSS形成原因也是因为特殊符号过滤不严导致的,但不同的是存储型XSS会将攻击者构造的恶意代码上传后存储在服务器中

同样,先来看一下界面,是一个留言板

还是按之前的思路,输入特殊字符看有没有被过滤,我们发现没有被过滤

构造payload提交后,我们发现语句被执行,出现弹窗

切换页面后弹窗依旧在,充分证实语句被存储,该实验到此结束

四、DOM型XSS

我们还是按之前的思路,输入一串字符,提交后显示what do you see?

我们点击what do you see?试试,404

那我们可以考虑是标签,查看页面源码,我们发现它会将输入的字符串被拼接到了标签中

我们需要构造标签闭合语句,并嵌入弹窗,此次实验到此结束

五、DOM型XSS-X

依旧是先输入字符串看一下,显示“有些费尽心机想要忘记的事情,后来真的就忘掉了”

但我们可以看到,在url上有显示我们输入的字符串

我们可以看出,它的输入其实是从url上获取的,依旧是构造标签的闭合并嵌入弹窗

输入:'οnclick="alert('xiaoyang!!!')">

六、XSS之盲打

在XSS盲打中,我们输入的内容不会在前端输出,会存在后台,也就是说,只有管理员在后台才能看到用户在前端输入的内容

了解了盲打的原理,那就开始我们此次实验叭

先构造弹窗语句进行输入

提交后,我们登录后台看看,后台地址以及管理员账号密码在提示中有给出,可自行查看

登录后出现弹窗,直接X到了后台

在攻击中,我们可以利用其漏洞获取管理员cookie来进行伪造

七、XSS之过滤

输入<script>alert('xiaoyang!!!')</script>提交后显示“别说这些'>'的话,不要怕,就是干!”

我们考虑可能是对<script>标签进行了限制,我们试试大小写绕过

输入:<scRIPt>alert('xiaoyang!!!')</ScriPT>

成功绕过,出现弹窗

八、XSS之htmlspecialchars

Htmlspecialchars()函数把一些预定义的字符转换为html实体

当我们输入构造好的弹窗语句后,显示我们的输入已经被记录

我们查看源码发现将<>进行了编码

我们输入特殊字符提交后在查看源码,发现只有单引号没有进行编码

我们可以利用单引号进行闭合,参考dom型来构造payload

输入: 'οnclick='alert(111)'

成功绕过,出现弹窗

九、XSS之href输出

还是按之前的思路,输入<script>alert('xiaoyang!!!')</script>看看,没有弹窗

看一下页面源码,我们发现特殊符号均被编码,这种情况下,闭合和绕过就都行不通了

但是,标签的href属性用于指定超链接目标的url

以下摘自HTML标签的href属性

href属性的值可以是任何有效文档的相对或绝对url,包括片段标识符和js代码段.如果用户选择了标签中的内容,那么浏览器会尝试检索并显示href属性指定的url所表示的文档,或者执行js表达式、方法和函数的列表.

从以上描述可见,我们可以利用JavaScript协议,输入payload:javascript:alert(‘xiaoyang!!!’)

出现弹窗

十、XSS之js输出

还是按我们最初的思路,输入<script>alert(xiaoyang!!!)</script>,发现没有弹窗

查看页内源码

我们发现它将我们插入的payload写入了原有的<script>标签中

我们可以通过在里面写入js语句构造payload

方法一:

使用’将其闭合,再用;使其结束,然后写入弹窗语句,使用//将后面语句注释掉

输入: ';alert('xiaoyang!!!');//

方法二:

使用’将其闭合,然后使用</script>将原有的<script>结束,在插入payload

输入: '</script><script>alert('xiaoyang')</script>

出现弹窗

好啦,到实验尾声啦

Pikachu靶场中XSS所有实验我们就都完成啦~

那我们就到这里啦~

下一篇我们再见

大家要加油呦✌


本文转载自: https://blog.csdn.net/weixin_48621644/article/details/127320714
版权归原作者 小羊学安全 所有, 如有侵权,请联系我们删除。

“Pikachu之XSS”的评论:

还没有评论