ホームページ > 記事 > CMS チュートリアル > PHPCMS のさまざまなインジェクション脆弱性パッチ
1. ワイドバイトインジェクションの脆弱性
/phpcms/modules/pay/respond.php 場所は約 16
元のコード
$payment = $this->get_by_code($_GET['code']);
行は、
$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
2 に置き換えられます。phpcms インジェクションの脆弱性
/phpcms/modules/poster/ポスター .php の位置は、
if ($_GET['group']) {
の約 221 行後にあり、
$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
3 を追加します。phpcms フロントエンド インジェクションにより、任意のファイル読み取りの脆弱性パッチ
## が発生します。 #/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) に置き換え、位置 3 の 120 行目に
$filename = date('Ymd_his').random(3).'.'.$ext;# を追加します。
$fileurl = str_replace(array('<','>'), '',$fileurl);
4、phpcms インジェクションの脆弱性
/phpcms/modules/member/index.php は約 615 行にあります 元のコード:$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);
5, PHPCMS V9.6.2 SQL インジェクションの脆弱性
(1) phpcms/libs/classes/param.class.php は 109 行目あたりにあります 元のコード$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;は
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],'DECODE')):$default;に置き換えられます (2)/phpsso_server/phpcms/libs/classes/param.class.php は約 108 行にあります 元のコード
return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;は
return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],'DECODE')) : $default;## に置き換えられます #6. phpcms のどこかに論理的な問題があり、getshell
/phpcms/libs/classes/attachment.class.php が次の行に配置されました。 143 of
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = ''){
の後に
$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 } }
このように判定を追加します 使用可能なファイル形式が 'gif'、'jpg'、'jpeg'、'bmp'、'png の場合もちろん、ここでの形式は必要に応じて増やすことができます。
7. phpcms インジェクションの脆弱性/api/phpsso.php は約 128 行にあります
元のコード
$arr['uid'] = intval($arr['uid']); $phpssouid = $arr['uid'];
は、ツーインワン コード
$phpssouid = intval($arr['uid']);8 に置き換えられます。phpcms 認証キー生成アルゴリズムの問題により認証キー漏洩が発生します
次の関数に従ってキー値を再生成します、そして、キャッシュ/構成を見つけます。 /system.php の 2 つのパラメーターを置き換えるだけで問題ありません。
<?php function random($length, $chars = '0123456789') { $hash = ''; $max = strlen($chars) - 1; for($i = 0; $i < $length; $i++) { $hash .= $chars[mt_rand(0, $max)]; } return $hash; } echo random(20, 'authkey').'<br/>'; echo random(32, 'phpssoauthkey');exit; ?>
PHP 中国語の Web サイト、多数の無料の
PHPCMS チュートリアル以上がPHPCMS のさまざまなインジェクション脆弱性パッチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。