文件上传漏洞(二)iis6.0 CGI漏洞

后端校验的黑名单机制

黑名单比较危险

1、大小写绕过

2、点 空格绕过

3、NTFS文件流绕过 ::$DATA

4、.htaccess 配置文件绕过

5、双写绕过 phphp

6、别名绕过 phtml php4 php5

开发用白名单(jpg)

文件上传 白名单、黑名单

上传一个 1.abcooo

1、00截断[16进制00]

PHP的某些版本里面也代表着结束

零零截断原理 1.php终止符号.jpg => 白名单检测jpg

PHP某些版本存在00截断 PHP5.3

move_uploaded_file 移动文件

文件上传流程:

你点击上传--> 临时目录(随机)-->移动出来重命名

$ FILES['upload file']['name'] 你上传的文件名

strrpos($ FILES['upload file']['name'], 文件后缀名截取

if(in array(file ext,ext arr) 如果文件后缀名是组里的一个

img_path = GET['save_path']."/".rand(10,99).date("YmdHis").".".$file_ext

获取get传参 save_path 随机值10-99 当前的一个时间

此时如果传的是文件名是kk 会返回 kk/52202509271024.jpg 52是随机数 后续是时间

此时用burp抓包 在后面加入%00

经过上面的代码分析 会对123.php后端加上后缀

去掉后缀直接访问123.php发现 以当作代码执行(改成一句话木马...)

%00 => 16进制的00 (URL编码 16进制)

POST他是不会进行URL编码

00截断需要传16进制的00

GET传参因为会URL编码,所以%00 = 16进制的00

URL编码原理:把字符变成16进制,然后加上%

=> 核心是为了更好的传参

=> a.php?a=123%23asdad 锚点

' 27 %27

POST没有URL编码,所以不在%00,但是我们00截断要想办法得传入16进制00

在hex里改成零零截断 4444.phpa [a为61]

把61改为00

此时访问4444.php即可攻击成功

在后缀上面做文章

13、14、15 [他去检测图片]

图片马: 图片 + 木马 {黏到一起}

正常图片,传一个不正常图片他会容易产生问题

添加方法:直接复制代码放到末尾追加

在cmd里进行

copy 1.jpg/b + 1.txt 444.jpg

将文件后缀改成phtml 然后h将生成的文件上传 会发现 图片正常显示 也可进行传参

copy也可将压缩包和图片整合 将后缀改成zip 即可查看压缩包(ctf里的隐写术)

有的检测,检测头和尾巴

图 + 马 + 图

PHP可以混写(HTML+PHP )当看到PHP标识的时候才会执行phphp

<?php ?>

文件上传漏洞:能上传、能解析(解析漏洞)

图片马的方法可以藏文件,而且比NTFS文件流厉害的多

二次渲染[获得图片后,给你重新加载,然后重新保存] 上传图片马 一句话木马会消失

a.jpg 打开a.jpg 然后重新渲染图片,然后保存

gif图片去破,二次渲染,只会渲染画面部分

gif图片 (头部4行不会渲染)

直接在gif 的hex模式下 第3-4行填写一句话木马(图片崩溃就换一张 )

条件竞争

过滤有两种:

1、先检测,直接不允许上传

2、先上传,再去检测,删除

上传 -> 检测 -> 删除

检测需要时间,如果你上传的够快的,可以卡时间差,在删除之前访问到

2、马生马 => 访问一个木马,生成一个木马

检测的是上传的问题,但是如果你上传的文件,他写了一个木马,他是不会被检测的

file_put_contents(文件地址,文件内容)

file_put_contents('nf.php','<?php eval($_REQUEST[8])?>')

可以用burp 跑10000次 (no playload )会有删除不及时生成的 没有的话也可看作ddos攻击

1、00截断 (GET POST)

2、图片马(copy 1.jpg/b + 2.txt 3.jpg)

3、二次渲染(gif)

4、条件竞争

CC攻击 /DDOS 通过快速的访问网站来拖累服务器的性能

sql注入疯狂打盲注 sleep(10000)


1、文件上传是个功能,任意文件上传 (漏洞)

2、我教你们的文件上传,都是以拿shell为目的

提交漏洞(项目上 有危害)

文件上传可以上传HTML文件(存储型XSS)

密码明文传输(SRC 无影响忽略[移动 高危漏洞])

XSS漏洞 => 不能调用JS

3、前端校验、后端校验

4、黑名单 or 白名单

5、绕过 [检测的时候 和 真实的使用产生不同的时候]

and 1=1 / && 1=1

6、黑名单绕过:

别名(phtml)、点、空格、NTFS文件流(::$DATA)、.htaccess(化学反应)、构造绕过(白盒)、双写绕过(强行替换删除)、大小写绕过

7、白名单绕过:

00截断(某些动态语言版本的函数存在00截断)、条件竞争(先上车 先买票)

解析漏洞:(默认开启)

上传漏洞(想办法传上.php文件)

解析漏洞(让其他后缀当作php解析)

IIS6.0漏洞 => iis(web容器 windows) 6.0是他的版本

.nf 当作asp来执行

asp.dll => 任何的文件交给他,他就会当作asp执行

asa cer cdx 会当作asp来执行 他是IIS的默认设置

(黑名单)

上传图片马 抓包改后缀(fffadasd.jpg)

把后缀改成asp (连菜刀需要改脚本类型为asp)

IIS ASP/ASPX

PHP APAHCE / NGINX

一个网站可不可能混合(asp php )

x.com/a/ (asp + IIS)

x.com/b/ (php + IIS)

x.com/c/ (php + apche)

http://59.63.166.75:8002/a/upload_file.php

什么文件被解析 什么文件不被解析是由web容器决定(可通过修改配置文件解析不同后缀名文件)

IIS6.0解析漏洞2、3:

test.asp;.jpg 他将当做asp进行解析

test.asp/123.jpg 他将当做asp进行解析(文件夹后缀为asp的任意文件都可被执行)

iis6.0三大漏洞

1.配置错误

2.分号截断

3.文件夹名影响

CGI解析漏洞 (PHP特有)

iis7.0 iis7.5 nginx 可能存在

直接在原本的访问地址后面加 /.php

PHP在连接IIS 和 NGINX的时候他是这样连接

PHP-CGI会开启本地的9000端口(拿来通信)

www.xx.com/phpinfo.jpg/asdsa.php

web容器: phpinfo.jpg

PHP-CGI .php

相关推荐
掘了7 分钟前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅10 分钟前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅32 分钟前
5分钟快速搭建 AI 平台并用它赚钱!
前端
智驱力人工智能1 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
崔庆才丨静觅1 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment1 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
数据与后端架构提升之路1 小时前
论系统安全架构设计及其应用(基于AI大模型项目)
人工智能·安全·系统安全
崔庆才丨静觅1 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊1 小时前
jwt介绍
前端
爱敲代码的小鱼1 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax