文件上传 --- uploadlabs靶场

目录

[1 前端和js校验](#1 前端和js校验)

抓包改包

[2 .](#2 .)

[2.1 .htaccess(伪静态)](#2.1 .htaccess(伪静态))

[2.2 %00截断 (php5.2)](#2.2 %00截断 (php5.2))

[2.3 user_init_](#2.3 user_init_)

2.4

[3 图片码防御](#3 图片码防御)

[4 竞争型漏洞](#4 竞争型漏洞)

思路:

容易出现的问题:


1 前端和js校验

关闭JS的代码,上传PHP

抓包改包

思路:上传文件的时候将正常的PHP后缀改成白名单允许的后缀,然后通过抓包的方式修改文件的后缀为php,注意content---type这个,因为一般会判断上传的类型,需要改一下

2 .

那我们想有没有一种就是在程序中有被认为是空格,但是进入系统后,系统就把他认定为是没有后面那个空格?(有这种但是只有在windows系统才会有)

这关写了黑名单,trim去空格等过滤限制

php 复制代码
if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array('.asp','.aspx','.php','.jsp');
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

2.1 .htaccess(伪静态)

这个方法就是将.htaccess这个文件后缀,不管你上传的是jpg,还是txt,都会最终把他解析为php

2.2 %00截断 (php5.2)

2.3 user_init_

也是有可能实现的,但是必须要当前的系统下面有一个php的文件,才能发挥作用

2.4

这个是因为运维或者开发人员修改了nginx或者apache的配置项,让php2,php3也能解析为php

3 图片码防御

如何防御图片码?

1,将文件上传的文件夹的可执行权限取消掉

2,php中有一个函数可以将上传的图片码打乱,让图片码消失

4 竞争型漏洞

代码问题:把上传文件写在了检测文件之前,这之间就会有几十ms的空隙,我们就可以在shell里面(图片码)用写文件的方式将文件的木马写在他的上一级目录,虽然最后会删除我上传的文件,也有几十ms的时间,但是我的木马由于是写在上一级目录的,所以我的有害文件已经上传成功了

因为是先上传再检测,那我不装了,直接上传php文件

打开bp,抓包,然后用爆破模块,直接发送,看看能不能生成fy.php

思路:

大概流程就是:先在php文件中写一个一句话木马(一定要是创建一个新的目录上一个目录最好,写入数据)如上,然后打开抓包,上传此php文件抓包,送至inturder模块上传,开始竞争一直刷新我的访问upload的文件,一定会成功

容易出现的问题:

最容易出现在商场和订单,就是多线程处理的时候,当我买完最后一个商品还没有下单的时候,下个线程又来了就会出现买一次买很多的这种情况

相关推荐
二流小码农4 小时前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
鹏程十八少4 小时前
4.Android 30分钟手写一个简单版shadow, 从零理解shadow插件化零反射插件化原理
android·前端·面试
Kapaseker5 小时前
一杯美式搞定 Kotlin 空安全
android·kotlin
三少爷的鞋5 小时前
Android 协程时代,Handler 应该退休了吗?
android
火柴就是我19 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
砖厂小工1 天前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心1 天前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心1 天前
Android 17 来了!新特性介绍与适配建议
android·前端
Kapaseker1 天前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴1 天前
Android17 为什么重写 MessageQueue
android