Wide wide Injection 취약점
/phpcms/modules/pay/respone.php는 약 16 줄
$payment = $this->get_by_code($_GET['code']);
$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
2로 대체됩니다 취약점
/phpcms/modules/poster/poster.php는if ($_GET['group']) {뒤의 221번째 줄에 있으며
$_GET['group'] = preg_replace('#`#', '', $_GET['group']);3을 추가하면 임의 파일 읽기 취약점 패치 /phpcms/modules/가 발생합니다. content/down.php (1) 위치 약 17라인
parse_str($a_k);을
$a_k = safe_replace($a_k); parse_str($a_k);로 대체 (2) 위치 약 89라인
parse_str($a_k);을
$a_k = safe_replace($a_k); parse_str($a_k);로 대체 (3)
$filename = date('Ymd_his').random(3).'.'.$ext;뒤 약 120라인 위치 추가
$fileurl = str_replace(array('<','>'), '',$fileurl);
(1) phpcms/libs/classes/param.class.php는 약 109줄에 위치합니다.
원래 코드인
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),HTTP_REFERER);
는
$password = isset($_POST['password']) && trim($_POST['password']) ? addslashes(urldecode(trim($_POST['password'] ))) : showmessage(L('password_empty'), HTTP_REFERER);
로 대체됩니다. (2)/phpsso_server/phpcms/libs/classes/param .class.php는 약 108줄에 있습니다. 원래 코드 $value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
는
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],'DECODE')):$default;6으로 대체되었습니다. phpcms 어딘가의 논리 문제로 인해 getshell
/phpcms/libs/classes/attachment.class.php가 발생했습니다.
return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
뒤에 약 143줄 뒤에 return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],'DECODE')) : $default;
를 추가하면 된다. 이런식으로 허용되는 파일 형식이 'gif', 'jpg', 'jpeg', 'bmp', 'png'라면 계속한다. , 그렇지 않으면 튀어나올 것입니다. 물론 여기의 형식은 필요에 따라 늘어날 수 있습니다.
/api/phpsso.php는 약 128줄에 있습니다.
원본 코드
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = ''){
는 phpcms authkey 생성 2인 코드로 대체됩니다. 알고리즘 문제로 인해 authkey 누출이 발생합니다
아래 함수에 따라 키 값을 다시 생성한 다음, 캐시/configs/system.php를 찾아 두 매개변수를 바꾸면 괜찮습니다$extArray=explode('|',$ext); if(!empty($extArray) && is_array($extArray)){ foreach($extArray as $k => $v){ if(!in_array(strtolower($v), array('gif','jpg','jpeg','bmp','png'))); exit('0');//循环判断如果 有一个不符合,直接返回 0 } }PHP 중국어 웹사이트, 다수의 무료 PHPCMS 튜토리얼, 온라인 학습에 오신 것을 환영합니다!
위 내용은 PHPCMS 다양한 주입 취약점 패치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!