文件上传学习:(结合upload-labs 01-12):part01
写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
参考文章01
SQL注入学习part07
- 文件上传:js绕过
- upload-labs01
- 绕过方法一:禁用js
- 使用Burp Suite
- 文件上传:mime绕过
- upload-labs02
- 文件上传:黑名单限制
- upload-labs03
- upload-labs05
- upload-labs06
- upload-labs07
- upload-labs08
- upload-labs09
- upload-labs10
- 文件上传: 截断漏洞
- upload-labs11
- upload-labs12
- 文件上传:.htaccess文件解析漏洞
- upload-labs04
文件上传:js绕过
- 说明:Web应用系统虽然对用户上传的文件校验是通过前端javascript代码完成的。可以通过对前端javascript进行修改或者是通过抓包软件改动上传的文件,就可以绕过基于js的校验。
upload-labs01
- 判断是否存在js校验:
- 按F12打开调试面板,选择网络,然后上传非图片文件,如果网络中没有数据变化说明存在js漏洞,如果有变化说明不存在。
- 这边选择的是上传一个txt文本
- 没有数据变化说明存在js漏洞
- 按F12打开调试面板,选择网络,然后上传非图片文件,如果网络中没有数据变化说明存在js漏洞,如果有变化说明不存在。
绕过方法一:禁用js
- 禁用后可以看到上传的字典上传成功
使用Burp Suite
- 写入一句话木马保存,
<?php eval($_GET['cmd']); ?>
,修改后缀为jpg
- 将文件格式改成php文件,发包
- 结果如上
- 去根目录下看看
- 成功上传
- get it
文件上传:mime绕过
- 说明:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
- 绕过原理:部分Web应用系统判定文件类型是通过content-type字段,黑客可以通过抓包,将content-type字段改为常见的图片类型,如image/gif,从而绕过校验。
- 常见几种MIME类型:
text/plain(纯文本)
text/html(HTML文档)
text/javascript(js代码)
application/xhtml+xml(XHTML文档)
image/gif(GIF图像)
image/jpeg(JPEG图像)
image/png(PNG图像)
video/mpeg(MPEG动画)
application/octet-stream(二进制数据)
application/pdf(PDF文档)
upload-labs02
- 事先php文件
- 上传php然后抓包
- 修改content-type字段,改为常见的图片类型,image/gif,然后发包
- 成功
- get it
文件上传:黑名单限制
upload-labs03
- 发现源码中对扩展名进行了黑名单限制,所限制的文件类型不全,可用.php5 .php4 .php3 .phtml .phpt类型扩展名绕过。
- 更改后缀名
- 可以确定上传成功了
- get it
upload-labs05
可以看到基本上和php相关的内容都被限制上传了
查看源码发现缺少了大小写转换那一步骤
- 翻译翻译就是,大写的PHP不再黑名单里
- 所以
- get it
upload-labs06
- 依旧不当人
- 查看源码发现未对末尾空格进行处理
- 翻译翻译,在后缀后面加一个空格就好了
- 这里还是需要抓包改包
- get it
upload-labs07
- 依旧不当人
- 查看源码发现漏掉了后缀后面的点
- 翻译翻译:在后缀后面加个点然后上传就行了
- get it
upload-labs08
- 总的来说做个人很困难
- 查看源码
- 发现少了点什么: ::$DATA
- 翻译翻译,就是在.php后面添加这个后缀::$DATA
- 在访问的时候需要去除 ::$DATA
- 不然会出现403
- get it
upload-labs09
- 这个情况有点离谱
- 看看源码
- 代码先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用.php. .(点+空格+点)来绕过
- get it
upload-labs10
- 可以看到是在文件名中去除这些后缀
- 查看源码
- 发现在去除完之后貌似不存在二次检测
- 那就构造.pphphp后缀
- get it
文件上传: 截断漏洞
upload-labs11
- 首先限定了后缀
- 但是离谱的是路径可更改
- 这波不是白给吗
- 这里的路径是保存的路径
- 所以需要把php文件后缀改成图片然后更改保存路径从而再次改回php
- 然后还需要在路径后面添加%00
- 关于%00
- 为什么修改path才可以?
- 因为程序中检测的是文件的后缀名,如果后缀合法则拼接路径和文件名。
- 那么,攻击者修改了path以后的拼接结果为:uploads/aaa.php%00/20190818.php
- 移动文件的时候会将文件保存为:uploads/aaa.php
- 从而达到Getshell效果。
upload-labs12
- 后续由于php版本限制这两关的漏洞貌似无法直接使用
- 放上另一位博主成功的示例
https://blog.csdn.net/u014029795/article/details/102889924
文件上传:.htaccess文件解析漏洞
- .htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
<IfModule mime_module>
AddHandler php5-script .gif #在当前目录下,只针对gif文件会解析成Php代码执行
SetHandler application/x-httpd-php #在当前目录下,所有文件都会被解析成php代码执行
</IfModule>
<FilesMatch "evil.gif">
SetHandler application/x-httpd-php #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行
AddHandler php5-script .gif #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行
</FilesMatch>
<IfModule mime_module>
AddType application/x-httpd-php .gif#在当前目录下,只针对gif文件会解析成Php代码执行
</IfModule>
upload-labs04
- 多多少少有点不当人
- 决定通过上传.htaccess文件来达到目的
<FilesMatch "test.gif">
SetHandler application/x-httpd-php
AddHandler php5-script .gif
</FilesMatch>
- 结果上是成功的
- 说明test.gif被php解析了
- get it
文件上传学习:(结合upload-labs 01-12):part01相关推荐
- php文件上传学习记录
php文件上传学习记录 1.多文件上传及预览功能效果: 代码分两部分: 1.index02.html 2.file_preview.php 1.index02.html: <!DOCTYPE h ...
- php中的file_upload,PHP文件上传(PHP file upload)
PHP文件上传(PHP file upload) 我正在尝试使用php将文件上传到我的服务器,将它们保存到我的mysql数据库中,但我无法让它工作,这是我正在使用的脚本,我相信它与"$ _F ...
- DVWA靶机-文件上传漏洞(File Upload)
DVWA靶机-文件上传漏洞(File Upload) 文件上传漏洞的四个等级,low,medium,high,impossible,今天我们针对于不同的等级进行基于文件上传漏洞的攻击 DVWA靶机-暴 ...
- Struts2学习笔记(十六) 文件上传(File Upload)
使用jsp/Servlet实现文件上传 在我们的web应用中,文件上传是一项非常常见的功能.以前我学习php的时候也用php写过文件上传,不过php中实现起来比较方便,只需要从全局变量$_FILES中 ...
- java ajax多文件上传插件_jQuery Upload File 多文件批量上传插件 - 资源
jQuery File UPload 包含多个带有进度条的文件上传,能够兼容任意的服务端语言,例如 PHP.Python.Ruby on Rails.Java等,支持标准的HTML表单文件上传.jQu ...
- java 文件上传漏洞_文件上传漏洞(File Upload)
简介 File Upload,即文件上传漏洞,通常是由于对用户上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马,病毒,恶意脚本等获取服务器的webshell权限,并进而攻击控制 ...
- 腾讯云 对象存储Java文件上传 学习资料整理
# 初始化AmazonS3 前置要求: 获取密钥对:secretID:secretKey 有效Endpoint:nos-eastchina1.126.net 安装SDK --> 即Maven依赖 ...
- 【Web安全】中国蚁剑+DVWA(本地文件上传漏洞Upload)
文章目录 1 中国蚁剑 2 文件上传漏洞(Upload) 2.1 准备hack.php 2.2 从DVWA上传hack.php 3 使用蚁剑来连接获得webshell 1 中国蚁剑 中国蚁剑是一款开源 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
最新文章
- github 删除工程的操作
- 注册CSDN帐号的见闻续
- html主题居中用什么命令,html – 如何居中的元素 – 使用什么而不是align:center属性?...
- 有趣的物理照片,让你瞬间爱上物理!
- Docker容器网络
- asp.net MVC遇到的问题
- rl滤波器原理_浅谈滤波器原理以及其他基础知识
- matlab自适应遗传算法代码,自适应遗传算法MATLAB代码
- 2020年美赛C题(数据分析题)O奖论文笔记 (1)
- 推荐子龙山人的emacs的教程
- matlab 取矩阵上三角元素,MATLAB triu():提取上三角矩阵
- python提取图片文字_python实现提取图片中文字
- Artificial Neural Networks FileStorage of OpenCV
- python随机数种子seed()的讲解
- Excel日期加斜杠,日期时间戳互转
- [转载]人人旗下风车网产品经理的创业失败教训总结
- php 精湛技术,【名医风采】范学民:用精湛技术温暖患者
- java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...
- 十七、网上商城项目(5)
- 方队 - 启发式合并 - 主席树
热门文章
- 【已解决】罗技K380蓝牙键盘可以连接电脑,但无法输入怎么办?
- 使用jupyterthemes插件定制jupyter notebook界面
- QString、QByteArray 相互转换、和16进制与asc2转换
- 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
- 【Linux】Linux进阶指令
- 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...
- (转)SQLServer_十步优化SQL Server中的数据访问 三
- logging 模块 与 logging 固定模块
- BZOJ2342 Shoi2011 双倍回文 【Manacher】
- 软件工程结对项目:四则运算web