网站空间管理面板google搜索引擎入口
1.简述xss漏洞原理和分类及依据
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击
分类:
反射型(一次性)
非持久型,常⻅的就是在URL中构造,将恶意链接发送给⽬标⽤户。当⽤户访问该链接时候,会向服务器发起⼀个GET请求来访问带有恶意代码的 链接 。造成反射型XSS主要是GET类型。就是钓鱼。从这里可以,反射型就是看重链接,谁拿到链接并且执行了,才会有问题。
<script>alert(1)</script>
发现<script>标签被过滤了,尝试使⽤⼤⼩写混淆或者双写绕过:
⼤⼩写混淆:<ScRipt>alert(/xss/)</script>
双写绕过:<sc<script>ript>alert(/xss/)</script>
其他标签:<img src=x OnerrOr=alert(/xss/)>使⽤其他标签:<img src=x OnerrOr=alert(/xss/)>
存储型(持续的)
持久型,常⻅的就是在博客留⾔板、反馈投诉、论坛评论等位置,将恶意代码和正⽂都存⼊服务端(数据库、内存、⽂件系统等),每次访问都会触发恶意代码。是放在服务器里面的。
Dom型
基于DOM的XSS是反射型的特例,其中JavaScript隐藏在URL中, 并在其呈现时由⻚⾯中的JavaScript取出,⽽不是在提供服务时嵌⼊到⻚⾯中 。这可以使其⽐其他攻击更隐蔽,并且监控⻚⾯正⽂的WAF或其他防护检测不出恶意内容。
2.安装BlueLotus和beef-xss平台对xss漏洞进行利用
BlueLotus
使用前提
前提:XSS平台必须确保网通。如果网不通,搭建在内网里面,想要攻击互联网的,cookie是传不进来的。如果使用小皮创建的话记得再域名后面添加admin.php。这玩意搞了一个下午终于找到方法了。不会再一次性的那样了。
打开公共模板,这里面可以帮你完成JS,都有简介无需担心看不懂功能。记得改地址。
beef-xss平台
apt-get install beef-xss
输入密码
在这里面你能看到cookie还有其他信息。
命今颜⾊(Color):
- 绿⾊对⽬标主机⽣效并且不可⻅(不会被发现)
- 橙⾊对⽬标主机⽣效但可能可⻅(可能被发现)
- 灰⾊对⽬标主机来未必⽣效(可验证下) 、
- 红⾊对⽬标主机不⽣效
3.复习文件上传漏洞之前端校验绕过服务器后端绕过技巧
文件上传漏洞
不同的网站要不同的webshell。我们使用是php开发的网站。
一服务器白名单绕过
服务端白名单(Whitelist)是⼀种安全机制,它只允许预定义的合法元素通过(只有有限的元素进入),其他所有内容默认被拒绝。相比黑名单,白名单通常更安全。但某些情况也会被绕过。
分为两种:
1.1MIME类型检测绕过
利用burp来整。可以修改Content-Type来发送php,把类型改为image就ok。
不过都是可以在发送图形时,掺一点php代码就。
1.2 00截断绕过
该类型漏洞比较老且条件苛刻,实战当中几乎不会出现,仅理解原理即可.
操作系统在识别字符串时,当读取到\0字符时,就认为读取到了⼀个字符串的结束符号。系统是C语⾔或汇编语⾔定义字符串时以\0作为字符串的结尾,电脑在读取到\0时认为到结尾了,因此,我们可以通过修改数据包,插⼊\0字符的方式,达到字符串截断的⽬的。
⽤户在前端输⼊的时候 是不能直接使⽤\0的,通常会使⽤%00或者0x00。
举例子
http://www.XXX.com/upload/aaa.php%00bbb.jpg
\0在ASCII码表中意味空字符,所以输入的时候 %00bbb.jpg 是省略的。
二服务器黑名单绕过
服务端⿊名单(Blacklist)是⼀种安全防护机制,它会明确禁⽌某些已知的危险元素,但这玩意太多了,所以相比于白名单较为容易绕过
1特殊可解析后缀
就是说除了代码中的禁止个后缀名的,我们可以写入许多 Web 服务器配置也会将以下扩展名识别为 PHP 脚本并执⾏其中的代码
phtml:传统上⽤于 "PHP + HTML" 混合⽂件,许多默认配置中已启⽤
.phps:本应⽤于显示 PHP 源代码(Source),但如果配置不当,可能会被执⾏⽽⾮显示
php5:⽤于 PHP 5 特定脚本,在⼀些服务器上显式⽀持
.pht:较少⻅但可被解析的扩展
其他变种:.php4 .php3 (旧版 PHP 3) .php7 .phar (PHP 归档⽂件)
2.htaccess⽂件绕过
Upload-labs(Pass-04)源码分析,又多了黑名单后缀,相中间件为Apache的情况下,⿊名单未校验 .htaccess ⽂件,导致可上传该⽂件,绕过⿊名单检测.
然后再把a.jpg发送进去,记住名字一定改为a.jpg
记住 filename要改为".htaccess "。.htaccess针对的是文件夹生效的。这样子就会把a.jpg当成php来解析。
3.user.ini⽂件绕过
.user.ini和.htaccess⼀样是⽬录的配置⽂件,.user.ini就是⽤户⾃定义的php.ini,可以利用这个⽂件来构造后⻔和隐藏后⻔。不过有一个前提是传输的服务器里 面必须有一个php文件,否则.user.ini无法生效 。
.user.ini使⽤范围很⼴,不仅限于 Apache 服务器,同样适⽤于 Nginx服务器,只要服务器启⽤了
fastcgi 模式 (通常⾮线程安全模式使⽤的就是 fastcgi 模式)。但是docker环境不是fastcgi模式,⽆法复现该漏洞。
4⼤⼩写绕过
通过Upload-labs(Pass-06)查看源代码,可以看到又禁了很多后缀名。但是没有后缀名大小写进进行统一。可以利⽤大小写进⾏绕过。PhP,Php
.5空格绕过
Upload-labs(Pass-07)通过代码分析没有去空格,在⽂件后缀加空格后上传.
不过上传成功了,但是我们无法访问成功。原理:在Windows系统中会⾃动去除⽂件名最后的空格,靶场是linux环境。
因此在Windows系统中可以使用此方法绕过。
6点绕过
Windows系统中会⾃动去除⽂件名最后的 . ,因此在Windows系统中可以使⽤此⽅法绕过;Linux系统虽然不会⾃动去除⽂件名最后的
7::$DATA绕过
在Windows中,如果⽂件名 + ::$DATA 会把 ::$DATA 之后的数据当成⽂件流处理,不会检测后缀名,且保持::$DATA之前的文件名。使⽤它的⽬的就是不检查后缀名。
Windows会⾃动去掉末尾的::$DATA变成 phpinfo.php
8配合解析绕过
.php. .(两个点之间有个空格)
.php. ::$DATA
以 .php. . 为例的验证过程:⾸先系统发现最后有⼀个点,这时会把它去掉,又发现有⼀个空格,也会把它去掉,这时还有⼀个点,也就是.php. 由于系统只验证⼀次,所以不会再去掉剩下的点,这时就可以上传成功
9.双写后缀名绕过
从源码中可以发现,源码中定义了黑名单列表,我们上传⽂件的后缀名凡是符合黑名单中任意一个后缀都会被替换为空,那么我们可以利⽤双写后缀名的方式进行绕过
服务端内容检查绕过
3.1文件头检查
Upload-labs( Pass-14) 根据下⾯描述, 需要使⽤图片进行上传, 然后使用文件包含漏洞进行利用获 取Webshell 。查看源码, 发现web后端代码检查了上传⽂件的前两个字节并且根据字节判定文件后缀,
只能上传后缀为图片的文件。从代码看,都可以看出类似白名单。
2突破getimagesize和exif_imagetype
⽤getimagesize函数来判断上传⽂件,作⽤是获取⽂件是不是图⽚格式
的。但都是可以上传⼀张真图然后抓包,在最后添加木马就行了。
3.二次渲染绕过
这一个比较综合了。这个的过程就是,先接收的时候检查一下文件的后缀名字和文件类型,然后再利用 ⽤ imagecreatefrom[jpeg|png|gif] 函数来判断是否为真的图片, 如果是图片的话 image[jpeg|png|gif] 函数对其进 行二次 渲染。
简单来说,它会把你发的图片检查一下确认是否为真的图片,如果确认为真的图片后再生成一张图片
这就需要工具 010editor: 010 Editor - Pro Text/Hex Editor | Edit 300+ Formats | Fast & Powerful | Reverse Engineering
4.条件竞争
利用burp记住要把插件关掉,否则会崩溃。
2访问php⽂件
再重发get请求,多试一试几次就成了。
5.安装Upload_Auto_Fuzz插件并熟练使用
在日常遇到文件上传时,如果一个个去测,会消耗很多时间,如果利用工具去跑的话就会节省很多时间,本Burp Suite插件专为文件上传漏洞检测设计,提供自动化Fuzz测试,共500+条payload。
地址: GitHub - T3nk0/Upload_Auto_Fuzz: 本Burp Suite插件专为文件上传漏洞检测设计,提供自动化Fuzz测试,共500+条payload。
主要功能
windwos特性
NTFS数据流(::$DATA)
保留设备名(CON, AUX)
长文件名截断
内容欺骗
魔术字节注⼊(GIF/PNG/PDF头)
SVG+XSS组合攻击
文件内容混淆(注释插⼊、编码变异)
安装⽅式
该插件是python开发,因此需要先安装jython。