学习文件上传漏洞
2023-03-05 10:24:34
# 网络安全
1.文件上传漏洞条件
- 上传文件的名称、后缀名、内容用户可以自定义设置;
- 上传文件的路径可以获取;
- 上传文件所在文件夹具备可执行权限;
2. Bypass 技巧
- 前端过滤
抓包修改后缀名、禁用JS
- 类型过滤
上传图片马、修改后缀名
制作图片马: copy 1.jpg/b+muma.php/a muma.jpg
图片类文件头: GIF89a
- 黑名单过滤
禁用php后缀名时,使用畸形后缀名:phtml、php3、php4、php5、pht、php2
- 上传 .htaccess 文件,更改解析配置
AddType application/x-httpd-php .jpg:将 jpg 文件当成 php 进行解析
1 | 配置方式: |
- windows特性绕过
windows保存文件时,后缀末尾不会保存 .
、 空格
、 ::$DATA
可以尝试将 muma.php
修改为:muma.php.
、muma.php空格
、muma.php.空格.
、muma.php::$DATA
- 大小写绕过
将 php
修改为 phP
、pHp
等
将禁用的函数eval
等进行大小写
双写绕过
%00截断
对 php 版本和配置有要求。PHP版本=5.2.17,且 php.ini 中 magic_quotes_gpc Off
- 一些小知识
图片类文件头: GIF89a
命令执行函数:
函数名 | 作用 |
---|---|
eval | 命令执行 |
system | 命令执行 |
assert | 与eval类似,assert函数是直接将传入的参数字符串当成PHP代码直接 |
exec | 命令执行,需要打印输出执行结果,且它只会输出最后一行的内容 |
读取文件:cat
、 tac
、 less
、 more
、 head
、 tail
、 strings
、 paste
、 nl
、 //
变量拼接:
assert
, system
可以动态拼接(php 版本小于8),eval
不可以
1 |
|