>  기사  >  CMS 튜토리얼  >  PHPCMS 다양한 주입 취약점 패치

PHPCMS 다양한 주입 취약점 패치

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼앞으로
2019-11-21 10:24:526022검색

Wide wide Injection 취약점

PHPCMS 다양한 주입 취약점 패치/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(&#39;<&#39;,&#39;>&#39;), &#39;&#39;,$fileurl);

(1) phpcms/libs/classes/param.class.php는 약 109줄에 위치합니다.

원래 코드인

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? trim($_POST[&#39;password&#39;]) : 
showmessage(L(&#39;password_empty&#39;),HTTP_REFERER);

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? addslashes(urldecode(trim($_POST[&#39;password&#39;]
))) : showmessage(L(&#39;password_empty&#39;), HTTP_REFERER);

로 대체됩니다. (2)/phpsso_server/phpcms/libs/classes/param .class.php는 약 108줄에 있습니다. 원래 코드

$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;

$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)):$default;

6으로 대체되었습니다. phpcms 어딘가의 논리 문제로 인해 getshell

/phpcms/libs/classes/attachment.class.php가 발생했습니다.

return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;

뒤에 약 143줄 뒤에

return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)) : $default;
를 추가하면 된다. 이런식으로 허용되는 파일 형식이 'gif', 'jpg', 'jpeg', 'bmp', 'png'라면 계속한다. , 그렇지 않으면 튀어나올 것입니다. 물론 여기의 형식은 필요에 따라 늘어날 수 있습니다.

7. phpcms 주입 취약점

/api/phpsso.php는 약 128줄에 있습니다.

원본 코드

function download($field, $value,$watermark = &#39;0&#39;,$ext = &#39;gif|jpg|jpeg|bmp|png&#39;, $absurl = &#39;&#39;, $basehref = &#39;&#39;){

는 phpcms authkey 생성 2인 코드로 대체됩니다. 알고리즘 문제로 인해 authkey 누출이 발생합니다

아래 함수에 따라 키 값을 다시 생성한 다음, 캐시/configs/system.php를 찾아 두 매개변수를 바꾸면 괜찮습니다

   $extArray=explode(&#39;|&#39;,$ext); 
     if(!empty($extArray) && is_array($extArray)){ 
         foreach($extArray as $k => $v){ 
           if(!in_array(strtolower($v), array(&#39;gif&#39;,&#39;jpg&#39;,&#39;jpeg&#39;,&#39;bmp&#39;,&#39;png&#39;))); exit(&#39;0&#39;);//循环判断如果
           有一个不符合,直接返回 0 
         } 
      }
PHP 중국어 웹사이트, 다수의 무료 PHPCMS 튜토리얼

, 온라인 학습에 오신 것을 환영합니다!

위 내용은 PHPCMS 다양한 주입 취약점 패치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 aliyun.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제