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

容易出现的问题:

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

相关推荐
奔跑吧 android21 小时前
【android bluetooth 协议分析 14】【HFP详解 2】【蓝牙电话绝对音量详解】
android·bluetooth·hfp·bt·ag
2501_916007471 天前
Fastlane 结合 开心上架 命令行版本实现跨平台上传发布 iOS App
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张1 天前
iOS 26 内存占用监控 多工具协同下的性能稳定性分析实战
android·macos·ios·小程序·uni-app·cocoa·iphone
奔跑中的蜗牛6661 天前
一次崩溃率暴涨 10 倍的线上事故:从“无堆栈”到精准定位,到光速解决
android
Digitally1 天前
7 种方法:如何将视频从电脑传输到安卓手机
android·电脑·音视频
叶羽西1 天前
Android15 Camera系统调试操作
android
用户69371750013841 天前
彻底搞懂api和testImplementation的区别
android
用户69371750013841 天前
Android闪退数据处理必备:8个优质开源项目推荐
android
用户69371750013841 天前
Android崩溃前关键数据拯救:从原理到落地的完整方案
android
杜子不疼.1 天前
【Rust】异步处理器(Handler)实现:从 Future 本质到 axum 实战
android·开发语言·rust