Pikachu靶机系列之XSS(Cross-Site Scripting)

我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。

本节目录:

前文:

Pikachu靶机系列之安装环境

Pikachu靶机系列之暴力破解(一)

Pikachu靶机系列之暴破(二):token防爆破


概述
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;

反射型xss(get)
随便输入带<>字符然后审看元素,没想到我们的输入被原封不动地输出到了 p 标签中

在这里插入图片描述
要构造完整的payload可是长度不够,只能修改一些maxlength长度了
构造的payload为

<script>alert("hack")</script>

在这里插入图片描述在这里插入图片描述


反射型xss(post)
看到登录框没有头绪,点击一下提示

在这里插入图片描述
登录后, 构造如下paylod,发现没有过滤
在这里插入图片描述


存储型xss
随便往输入框输入然后带上
 <script>alert("hack")</script>

在这里插入图片描述
留言内容会被存储到数据库,然后输出到页面上
在这里插入图片描述


Dom型xss
随便输入看看内容会被怎么样处理

在这里插入图片描述
输入后审看元素以发现我们在输入框输入的数据会被直接拼接在<a>
标签所以只有闭合上a标签就能随意插入代码弹框

#' οnmοuseοver="alert(/xss/)">

在这里插入图片描述
即可实现弹框


Dom型xss-s
初步观察,随便输入<>sdasd点击 按钮 后会出现 what do you see? 的链接按钮,其指向是 当前目录/you_input 审查元素时发现onclick后会执行函数 domxss() ,其作用是读取input的值并将其拼接到新创建的link节点中 ,如下图可见,我刚输入的值已经拼接进去了,所以只要闭合a标签,即可弹框

在这里插入图片描述
仔细一看源码,还给出了答案

在这里插入图片描述

unction domxss(){
                        var str = window.location.search;
                        var txss = decodeURIComponent(str.split("text=")[1]);
                        var xss = txss.replace(/\+/g,' ');
//                        alert(xss);

                        document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
                    }
                    //试试:'><img src="#" onmouseover="alert('xss')">
                    //试试:' οnclick="alert('xss')">,闭合掉就行

Xss之盲打

在这里插入图片描述
老pyload测试,提交完后怎么搞??才发现还有个提示,点击提示

登录后台,看会发生啥?后台登录地址是/xssblind/admin_login.php

在这里插入图片描述


Xss之过滤

<SCRIPT>alert(‘hack’)</sCRIpt>
用大小写绕过即可

在这里插入图片描述


Xss之htmlspecialchars

在这里插入图片描述

htmlspecialchars()函数默认是不对单引号进行转义的,要想连单引号一起转义,需要给函数传入参数ENT_QUOTES。

> ENT_COMPAT - 默认。仅编码双引号。 
> ENT_QUOTES - 编码双引号和单引号。 
> ENT_NOQUOTES - 不编码任何引号。

tmlspecialchars()函数把预定义的字符转换为 HTML实体。

预定义的字符是:

& 转为 &amp;
" 转为 &quot;
’ 转为 &#039;
< 转为 &lt;
> 转为 &gt;

输入payload,6666666有味道了,那就”<>’/script(

在这里插入图片描述

审查源代码发现 " ,>和<都经过了编码,剩下的字符没有,的确单引号依然可以使用,payload如下

' οnclick=alert(‘hack’) '

Xss之href输出
这题搞不懂,直接看看源码分析一下好了

在这里插入图片描述
构造payload如下

javascript:alert(hack)

提交后查看源码,我们的输入在 a 标签的 href属性中, 此时点击我们的标签就会出现弹窗


Xss之js
审查元素

在这里插入图片描述
那么,我们只需要考虑闭合,即可构造XSS,输入
Payload:'</script><script>alert(hack)</script>,成功弹窗。


最后无论如何不要放弃心中所爱..其实,我和这个pikachu漏洞平台的作者一样,一样喜欢篮球,最后附上一张麦迪的图吧

在这里插入图片描述

发布了17 篇原创文章 · 获赞 24 · 访问量 5103

猜你喜欢

转载自blog.csdn.net/weixin_41598660/article/details/103941674
今日推荐