学习笔记(web安全-文件上传)

本人事先声明,这些知识只是为一些想从事网络安全工程师的小伙伴,提供体系化的学习思路。

如果学习者学习后,进行非法行为,与本人无关。

告诫:对于一些兴趣学习者,低调学习,别瞎搞,容易喜提免费住宿大礼包。

如果有错误的地方欢迎指正,作者在收到信息后会及时修正,欢迎与作者共同学习进步。

补充内容请看:

网络安全学习笔记(web-文件上传)-CSDN博客

总:利用思路:常规类、cms类、编译器类、其他类/cve

找中间件的目的就是去找解析漏洞,找文件上传点(可以使用网站字典扫描工具,扫描出文件上传点,还有一些常见的文件上传点,例:会员中心等。)

常规类:

扫描获取上传、会员中心上传、后台系统上传、各种途径上传

CMS类:

已知CMS源码

编译器类:

Ckeditor

Fckeditor

Kindeditor

xxxeditor

其他类/CVE:

代码审计

平台/第三方应用等

1、基础知识

什么是文件上传漏洞?

文件上传漏洞有那些危害?

文件上传漏洞如何查找及判断?

文件上传漏洞有哪些需要注意的地方?

关于文件上传漏洞在实际应用中的说明?

笔记:

在文件上传的地方可能会有文件上传漏洞

上传后门文件->获取网站权限(提权)(高危漏洞)

文件上传漏洞判断(黑盒查找:目录、敏感文件扫描;网站给的信息:会员中心;文件后台:webshow;白盒查找:代码审计)

对文件上传的类型进行区分(对症下药)

常见定位类型网站的命令:site、curl

不同格式文件上传:文件上传后缀(php代码->jpg格式下无法执行)

常见的漏洞练习靶场:vulhub

常见的php代码:<?php phpinfo();?>(回显出php所有相关信息)

解析漏洞:让图片解析成脚本(就是上传一个jpg,执行时被当作php格式执行)->(搭建平台产生解析漏洞)(下面笔记有常见的解析漏洞)

文件上传:一般不支持上传脚本格式的文件(存在文件格式验证)

2、验证/绕过

前端——js类防护

后端——黑名单、白名单、内容及其他

笔记:

js过滤(前端验证:用户可以抓包(网站源码)禁用对应功能)

有些网站抓不到数据包的原因是:该网站在本地的运行,不向服务器发送数据包

在上传文件操作的时候,抓包修改文件名后缀,显示文件上传失败,有可能已经上传成功了,只是不会回显文件路径。

注意观察网站所显示的页面,上面会有思路。(cms有关网站)

时间戳(自己查询相关网络安全知识)

黑名单:

特殊解析后缀

.htaccess解析

大小写绕过

点绕过

空格绕过

::$$DATA绕过

配合解析绕过

双后缀名绕过

笔记:

 文件常见验证:后缀名(黑名单、白名单)、文件类型(MIME信息)、文件头(内容头信息)

黑名单(常见的脚本格式:asp、php、jsp、aspx、cgi、war

):明确不让上传的格式后缀

MIME:检测文件类型

php可以是使用php3、php5(特殊解析后缀)等方法绕过(这个需要网站支持这个功能、需要在后台文件里取消有关php的注释)

.htaccess解析(如果网站未限制这个后缀文件的上传,可以利用这个漏洞进行两次文件上传,获取资产)

把后缀名进行大小写改动,实现绕过

在后缀名后面加上空格或点,实现绕过(在上传到对方网站服务器中会把空格强制去除)

::$$DATA绕过:在文件前面加上::$$DATA,网站服务器会把它后面的文件当作文件流执行->保留原文件的后缀名格式->进行执行文件

有些网站在编写过滤代码的时候,未考虑全面,只进行了一次过滤(未递归过滤),这样我们就可以利用这个漏洞,进行文件名后缀叠加

白名单:

MINE绕过

%00截断

0x00截断

0x0a截断

笔记:

白名单(jpg | png | zip | rar | gif):明确可以上传的格式后缀

在加绕过代码的时候,出错的原因可能是url编码问题、版本问题

建立在地址信息上

%00进行url编码(get会自动解码,post不会自动解码)

内容及其他:

文件头检测

二次渲染

条件竞争

突破getmagesize

突破exif_imagetype

笔记:

图片马->图片和恶意代码结合的产物,(手工、命令)合成

利用文件包含漏洞,执行后门代码

检测函数,网站通过检测上传文件的代码信息,(文件头信息)

二次渲染(未验证之前,就把文件上传到指定的路径,在进行验证):将文件上传到服务器,服务器进行(保存、删除)图像的放大、缩小,会又逻辑安全(文件其实已经在服务器上:先上传、后验证)可以配合资源占用->千次访问。

(文件名、文件夹名)修改、

使用数组进行绕过,函数检查文件名的end(a.php/.jpg)检测的jpg,实际是php

3、漏洞/修复——解析漏洞、cms漏洞、其他漏洞(编译器漏洞、CVE等漏洞、安全修复)

笔记:

(文件 上传漏洞)搭建平台漏洞,在收集信息的时候发现对方的搭建平台有CVE漏洞,就可以进行利用

利用nmap -Vs url 扫描对方端口,可能会扫到对方网站的搭建平台

Iis6.0 文件夹:image/qq.jpg | image.asp/qq.jpg qq.jpg就会被当作asp解析

文件 image.jpg | image.asp;.jpg 或 xxx.asp;xxx.jpg此文件就会被当作asp执行

也可以或为php格式执行

解析漏洞:

Iis6/7.x

Apache

Nginx

笔记:

存在解析漏洞,可以实现反逆转

apache解析漏洞:低版本漏洞,配置安全漏洞(鸡肋漏洞)

1.php.xxx 会被当作1.php文件执行(产生原因:apache在解析文件的时候是先解析文件的最后后缀,如果不识别的话,它就会向前解析,知道解析成功)

操作:docker -compose ifconfig->用于查看靶场的端口

可以去尝试一下vulhub中apache的换行解析漏洞

Nginx的解析漏洞和iis7的解析漏洞是一样的

CMS漏洞:

某cms上传1

某cms上传2

某cms上传3

笔记:

通达oa的使用案例

如果识别出网站使用的程序(cms名称)之后,就可以到网上搜索相关漏洞进行对比、利用。

编译器漏洞:

Fackeditor

Ewebeditor

Ckeditor

Kindedit

ueditor(漏洞利用)

笔记:

不是重点,利用一些工具进行测试,寻找网站是否使用编译器,根据版本和网上现有的漏洞,就可以进行攻击。

CVE等漏洞:

CVE-2015-5254

CVE-2017-12615

CVE-2019-2618

笔记:

中间件漏洞

上面的cve漏洞是比较典型的漏洞,可以进行复现,学习。

安全修复:

方案:添加补丁、升级中间件的版本等

4WAF绕过

WAF绕过:

Safedog

bt(宝塔)

xxx云盾

笔记:

文件上传WAF绕过

Content-Disposition:一般可修改

Name:表单参数值,不可修改

Filename:文件名,可修改

Content-Type:文件MINE,视情况修改

安全防护软件(文件上传)常见的绕过方法:

防匹配-数据溢出(xxx…;)、符号变异-(’ ‘’ ;)、数据截断(%00 ; 换行)、重复数据(参数多次)

数据溢出:可以在Content-Disposition、Name:表单参数值、Filename:文件名,中间加入垃圾数据,让数据溢出;达到waf绕过。

waf防护软件在匹配的时候,可能匹配的时“”|‘’中的字符串,如果“”| '' 不完整的话,可以它就不会检测。

符号变异->常见的是 ;换行

对方在验证的时候使用的是一次验证,还是递归、循环

/****/ 可以一试

fuzz:利用burpsuite软件+字典进行测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习路上的bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值