文件上传 --- 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的文件,一定会成功

容易出现的问题:

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

相关推荐
Monkey-旭5 分钟前
Android 定位技术全解析:从基础实现到精准优化
android·java·kotlin·地图·定位
树獭非懒1 小时前
Android 媒体篇|吃透 MediaSession 与 MediaController
android·架构
一起搞IT吧3 小时前
高通Camx hal进程CSLAcquireDeviceHW crash问题分析一:CAM-ICP FW response timeout导致
android·图像处理·数码相机
南风里3 小时前
Android Studio下载gradle文件很慢的捷径之路
android·ide·android studio
雨白15 小时前
Android 自定义 View:从绘制基础到实战仪表盘与饼图
android
jiunian_cn15 小时前
【Linux】线程
android·linux·运维·c语言·c++·后端
Frank_HarmonyOS1 天前
Android MVVM(Model-View-ViewModel)架构
android·架构
新子y1 天前
【操作记录】我的 MNN Android LLM 编译学习笔记记录(一)
android·学习·mnn
lincats1 天前
一步一步学习使用FireMonkey动画(1) 使用动画组件为窗体添加动态效果
android·ide·delphi·livebindings·delphi 12.3·firemonkey