文件上传漏洞(二)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

相关推荐
毕业设计制作和分享2 小时前
springboot523基于Spring Boot的大学校园生活信息平台的设计与实现
前端·vue.js·spring boot·后端·生活
我是ed.2 小时前
vite + vue3 实现打包后 dist 文件夹可以直接打开 html 文件预览
前端·html
☆cwlulu3 小时前
解码Android 系统蓝牙音频全流程
前端·人工智能·算法
嘀咕博客3 小时前
GPTEngineer:AI 驱动的Web应用开发平台
前端·人工智能·ai工具
文心快码BaiduComate3 小时前
北京互联网大会 | 百度副总裁陈洋:AI Coding为新质生产力注入“新码力”
前端·后端·程序员
小李飞刀李寻欢3 小时前
kauditd0 病毒/挖矿程序完全清除方法初试
网络·安全·病毒·挖矿
90后的晨仔4 小时前
Vue3 生命周期完全指南:从出生到消亡的组件旅程
前端·vue.js
薄雾晚晴4 小时前
大屏开发实战:从零封装贴合主题的自定义 Loading 组件与指令
前端·javascript·vue.js