| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> [CISCN2019 华北赛区 Day1 Web1]Dropbox -> 正文阅读 |
|
[PHP知识库][CISCN2019 华北赛区 Day1 Web1]Dropbox |
知识点:phar反序列化 [CISCN2019 华北赛区 Day1 Web1]Dropboxphar学习个人浅要理解:phar是一个压缩文件,然后用一些受影响的文件函数去访问这个 本地进行测试
写个phar.phar,phar会生成一个test.phar,其中包含我们写的小马,运行phar.phar,如果生成不了phar文件,检查一下自己的php.ini中
然后进行传参 解题过程首先是登录界面,注册账号,然后登录 登录进去之后,可以上传文件, 上传图片成功,但是上传php文件就不行,提示我们只能上传图片格式的文件 同时提供了下载和删除功能,在下载功能里download.php中,我们可以修改filename,注意目录穿越,比如(…/…/index.php)从而达到任意文件读取,将所有的源码下载下来 构造pop链几乎所有的文件,都用到了class.php,里面存放了三个类,几乎所有的功能都和这三个类有关系 其中注意Filelist类中的__call()魔术方法
__call()魔术方法会在对象调用的方法不存在时,自动执行。func是调用的方法名,args是方法的参数 在本题中这个函数是干嘛的呢?具体分析参考沐目师傅的博客[CISCN2019 华北赛区 Day1 Web1]Dropbox_沐目的博客-CSDN博客 在index.php中,
Name()和Size()方法在每个类中都不存在,所以会遍历每一个文件,注意构造函数中已经将该目录下的文件的名称都放到了files变量中,所以files变量是一个数组变量 然后__call()函数又会将每一个文件执行func()的执行结果返回至results数组中 然后在析构函数中将返回的结果返回给用户 审计源码,在class.php中,File类中有close()方法,可以进行文件包含
找触发条件,在class.php中,有User类,其中__destruct()魔术方法,可以调用close()方法
但是如果直接调用的话,不会有回显,需要用到FileList类中的__call()魔术方法,将close()执行得到的信息放入 生成test.phar文件的脚本
几点注意的地方在download.php中,限制了访问的目录,所以只能在delete.php中利用payload delete.php中,使用了File类的delete()函数,而delete()函数中有unlink(),触发phar反序列化,参数为filename,所以在得到flag的时候修改filename为 文件上传和删除修改文件后缀为.jpg,然后上传 删除文件修改文件名称为 得到flag 遇到的问题在执行phar.phar文件的时候,无法正常执行,生成不了新的phar文件,查了查资料,需要修改php.ini中的配置。 在没有修改配置的时候,phar.phar运行的时候,会报错 参考链接 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/27 4:41:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |