| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> bestphp‘s revenge -> 正文阅读 |
|
[PHP知识库]bestphp‘s revenge |
这题开始我不知道是不是环境的原因,一模一样的payload前天一直出不来,但是今天却出来了,赶紧记录一下,知识点考的挺多的
1、session反序列化,我新学的一个东西,起初没碰过这种题目,其暗示想到的hint在于session_start();PHPsession反序列化 - 百度文库 其原理是利用php编译器序列化保存的不同
其中serialize_handler保存和读取时处理器的不同,会造成漏洞
当我们模式是php的时候
php_serialize模式
2、php原生类SoapClient SoapClient是php的内置类,主要利用其中的魔术方法__call,当调用一个不存在的方法的时候会发送post请求,我们可以利用他来SSRF(这一题没看wp之前不知道有个flag.php,里面告诉我们要用本地地址) SoapClient原生类在开发以及安全中利用?借用一下资料 ?可以利用其中的location参数改为http://127.0.0.1/flag.php来进行SSRF 3、CRLF [转载]CRLF Injection漏洞的利用与实例分析 - 简书 CRLF的原理其实很简单,是利用回车+换行(\r\n)在post头部中来进行注入我们需要构造的信息,有点像sql注入的时候闭合前面语句一样,只是方式符号不同罢了 可以联系SoapClient原生类来将里面请求的数据加上\r\n来输入我们需要的头部信息 4、变量覆盖 利用extract函数来将已经定义好的变量进行覆盖,达到自己控制的效果 进入题目
call_user_func函数?PHP: call_user_func - Manual 有两种传参方式:1、第一个参数是回调函数名称,可以是内置函数,第二个参数是函数的参数 2、传入的是数组的时候,会将第一个参数视为一个类的名称,第二个参数是类中的方法(可以不存在) 不会告诉你们我一开始第一印象是利用这个函数来执行system命令,后面看了wp发现太丢脸了…… 将传入的name参数的值赋给session,再用var_dump来进行打印输出,在flag.php中可以知道 必须要用127.0.0.1请求才能将flag写入session中间?,于是我们这里思路很明确了,我们先利用php_serialize引擎写入|o……SoapClient的序列化的值存入name中,再二次传参用php引擎解析,让|前面的值变为键,后面构造成新的序列化(有一点像序列化字符逃逸的感觉),再利用call_user_func函数引发SoapClient类中的__call函数来进行SSRF成功获得flag。 我们先构造payload(借用别人wp的)
?记得上传的时候加|,f改为session_start函数来修改php引擎session.serialize_handler? 可以看见我们成功将构造的payload传入了name参数中,并且保留了|没有被解析;接下来二次传参来引发SoapClient类的__call函数,注意$a已经是一个数组了,我们可以想到call_user_func函数传入参数为一个数组的时候,会将第一个参数当作类名,第二个参数作为方法来调用,因此我们可以利用exrtact函数进行变量覆盖b,因此最后一样代码会执行为
会调用SoapClient类的welcome_to_the_lctf2018的方法,因为没有,所以会触发__call 可以看见已经被默认的php引擎解析了, 改一下自己的phpsessid即可 ?学到了很多,ctf真的有趣 |
|
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年11日历 | -2024/11/23 7:01:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |