亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

解析PHP強制轉換類型及遠程管理插件的安全隱患

2020-03-22 19:04:42
字體:
來源:轉載
供稿:網友
遠程管理插件是目前廣受WordPress站點管理員歡迎的實用工具,它允許用戶同時對多個站點執行相同的操作,如更新到最新的發行版或安裝插件等。但是,為了實現這些操作,客戶端插件需要賦予遠程用戶很大的權限。因此,確保管理服務器和客戶端插件之間的通信安全且不能被攻擊者偽造就變得相當重要了。本文淺析幾款可用插件,利用其弱點,攻擊者甚至可以完全危及到運行這些插件的站點本身。ManageWP, InfiniteWP, and CMS Commander這三個服務有著相同的客戶端插件基礎代碼(目測最初是ManageWp實現,然后另外兩個對其進行了調整),因而它們都有簽名繞過漏洞并且會導致遠程代碼執行。管理服務器注冊一個客戶端插件的私鑰,用來計算每一條消息的消息認證碼,而不是要求用戶提供管理員憑證(MAC,我們平時看到它會將其當做硬件的MAC地址,這里是Message Authentication Code)。當一條消息通過使用共享密鑰的消息摘要算法后就生成了消息摘要。該MAC隨后附在消息后面一起發送出去,接收方收到后用共享秘鑰對收到的消息進行計算,生成MAC2,然后和MAC1進行比較。消息摘要用于驗證消息的真實性和完整性(學過密碼學的同學對此應該都知道),這是一個確保通信安全的好方法,但是這三項服務的客戶端插件在實現上的缺陷就導致了嚴重的漏洞。一條由helper.html' target='_blank'>class.php認證的傳入消息如下所示:// $signature is the MAC sent with the message // $data is part of the message if (md5($data . $this- get_random_signature()) == $signature) { // valid message }使用非嚴格的等于意味著在比較前會發生類型“欺騙”[類型轉換]。md5()函數的輸出永遠都是字符串,但是如果$signature變了是一個整數,那么比較時發生的類型轉換就容易偽造一個匹配的MAC。例如,如果真實的MAC是以”0”開頭,或者非數字字符開頭,那么0就能匹配上,如果是”1xxx”這樣的,那么整數1就能匹配,以此類推。(這里其實是php的一個特性,當然其他語言也會有,當一個字符串和數字進行非嚴格等于的比較時,如果第一個字符是數字就會將其轉換成對應的整數進行比較,如果是非0-9的字符,就會將其當做0,php.net官方的說明:如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換為數值并且比較按照數值來進行)。字符串轉換為數值:當一個字符串被當作一個數值來取值,其結果和類型如下:如果該字符串沒有包含 '.','e' 或 'E' 并且其數字值在整型的范圍之內(由 PHP_INT_MAX 所定義),該字符串將被當成integer 來取值。其它所有情況下都被作為 float 來取值。該字符串的開始部分決定了它的值。如果該字符串以合法的數值開始,則使用該數值。否則其值為 0(零)。合法數值由可選的正負號,后面跟著一個或多個數字(可能有小數點),再跟著可選的指數部分。指數部分由 'e' 或 'E' 后面跟著一個或多個數字構成。var_dump(0 == "a"); // 0 == 0 - truevar_dump("1" == "01"); // 1 == 1 - truevar_dump("10" == "1e1"); // 10 == 10 - truevar_dump(100 == "1e2"); // 100 == 100 - truevar_dump('abcdefg' == 0); // true var_dump('1abcdef' == 1); // true var_dump('2abcdef' == 2); // true 遺憾的是,攻擊者可以提供一個整數作為簽名。init.php中,傳入的請求將會使用base64_decode()解碼,然后反序列化其結果。Unserialize()的使用意味著可以控制輸入數據的類型,一個偽造的序列化消息如下:a:4:{s:9:"signature";i:0;s:2:"id";i:100000;s:6:"action";s:16:"execute_php_code";s:6:"params";a:2:{s:8:"username";s:5:"admin";s:4:"code";s:25:"exec('touch /tmp/owned');";}}
這條消息使用整數0作為簽名,然后使用插件提供的execute_php_code執行任意的PHP代碼。$signature = 0; // $data is the action concatenated with the message ID $data = 'execute_php_code' . 100000; if (md5($data . $this- get_random_signature()) == $signature) { // valid message if the output of // md5() doesn't start with a digit }這個偽造的例子可能沒法直接使用,首先,id的鍵值需要比之前合法消息的值更大(使用增加的消息ID用于防止重放攻擊,今天既有請求偽造,又有重放,這讓我想到了CSRF,跨站請求偽造,下面是不是還有中間人攻擊呢),其次要有用于匹配簽名的整數,這兩點要求可以進行暴力破解來突破。for i from 100,000 to 100,500: for j from 0 to 9: submit request with id i and signature j上面的偽代碼嘗試發送具有很大ID值得虛假消息,并且對每個ID都進行十次單獨的數字指紋匹配(前面說到過,對于一個字符串,只要一個數字就可以在比較時進行匹配,這里從0-9是因為每一種情況都能遇到)。這一缺陷可以通過使用全等運算符[===]和對傳入的指紋進行檢查來修復。這幾個插件服務都通過使用嚴格的全等運算符進行了修復(php.net的說明:a===b,則a和b值相等,且類型也相等;a==b,在發生類型轉換后再判斷其值是否相等)。另外還有一些其他的問題,但是他們還沒有采取行動。首先,這一做法是有弱點的(密鑰追加到$data,然后進行散列),應該用HMAC(Hash-based Message Authentication Code,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出)。其次,僅用于操作的action和消息ID被用于創建簽名。這意味著,一個活躍的網絡攻擊者可以改變消息中的參數而簽名依舊是有效的(例如改變execute_php_code消息執行任意代碼)。為了進行保護,MAC應該包含整條消息。(注意,基于MD5的消息摘要是一種后退,可以的話這些插件使用openssl_verify();***2014-04公布出來的Openssl 1.0.f heartbleed漏洞號稱世紀級漏洞***)WORPITWorpit是另一個遠程管理服務,但它使用從頭開始構建的客戶端插件,它同樣有強制類型轉換漏洞,可以讓攻擊者以管理員權限登陸。該插件提了遠程管理員登陸的方法,使用僅Woprit傳遞系統可配置的臨時的token值。這款插件會檢查請求中提供的token值是否和存儲在數據庫中的值匹配。if ( $_GET['token'] != $oWpHelper- getTransient( 'worpit_login_token' ) ) { die( 'WorpitError: Invalid token' ); }

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色免费网站在线观看| 国产z一区二区三区| 亚洲人成网站免费播放| 国产丝袜一区二区三区| 亚洲国产女人aaa毛片在线| 久久偷看各类女兵18女厕嘘嘘| 国产精品视频永久免费播放| 国产日韩欧美在线视频观看| 国产精品日日做人人爱| 久久精品国产一区二区电影| 成人精品一区二区三区电影黑人| 视频一区视频二区国产精品| 97成人精品区在线播放| 亚洲电影成人av99爱色| 亚洲欧美日韩精品久久亚洲区| 色妞一区二区三区| 91香蕉嫩草神马影院在线观看| 91精品视频在线免费观看| 亚洲人在线观看| 综合网日日天干夜夜久久| 国产精品一区二区久久久久| 在线播放国产一区中文字幕剧情欧美| 国产精品久久久久久久久男| 日韩欧美在线视频| 欧美成人免费在线观看| 亚洲免费电影在线观看| 日本乱人伦a精品| 欧美精品免费看| 欧美日韩精品在线视频| 国外色69视频在线观看| 91在线精品播放| 亚洲成人久久久| 日本国产高清不卡| 久久久久久久国产| 韩曰欧美视频免费观看| 久久影视免费观看| 日韩在线激情视频| 国产精品扒开腿做| 最近中文字幕mv在线一区二区三区四区| 91精品国产乱码久久久久久蜜臀| 中文字幕久久亚洲| 久久久999精品免费| 国产精品91久久久久久| 日本欧美在线视频| 亚洲精品中文字幕女同| 日韩成人在线电影网| 久久久久久国产| 日韩国产中文字幕| 久久视频在线免费观看| 中国日韩欧美久久久久久久久| 欧美黑人巨大精品一区二区| 亚洲综合日韩中文字幕v在线| 亚洲综合视频1区| 在线丨暗呦小u女国产精品| 狠狠躁夜夜躁人人爽天天天天97| 欧美电影在线观看完整版| 亚洲第一中文字幕在线观看| 欧美黑人又粗大| 欧美精品videofree1080p| 51午夜精品视频| 国内精品久久久| 亚洲综合视频1区| 久久久成人的性感天堂| 国产福利精品在线| 久久国产精品免费视频| 国产精品美腿一区在线看| 国产一区二区三区精品久久久| 亚洲欧美日韩精品久久| 久久国产精品久久久久久| 一区二区在线免费视频| 久久视频精品在线| 在线观看精品国产视频| 欧美另类高清videos| 日韩av最新在线| 亚洲午夜精品久久久久久久久久久久| 久久国产精彩视频| 国产欧美日韩最新| 日韩在线视频网站| 欧美xxxwww| 这里只有精品在线播放| 日韩免费在线看| 精品久久久久久中文字幕| 国产精品日日摸夜夜添夜夜av| 这里只有精品在线观看| 国产精品视频久久久久| 亚洲国产精品久久久久秋霞不卡| 中文精品99久久国产香蕉| 亚洲欧美激情视频| 亚洲第一色在线| 成人国产亚洲精品a区天堂华泰| 亚洲毛片在线观看| 欧美性视频精品| 欧美日韩国产综合视频在线观看中文| 成人免费看黄网站| 狠狠躁夜夜躁人人躁婷婷91| 久久久91精品国产一区不卡| 欧美性xxxxxxx| 8x海外华人永久免费日韩内陆视频| 97精品视频在线观看| 亚洲精品短视频| 亚洲人成网在线播放| 亚洲91精品在线观看| 亚洲成人黄色网| 国产精品电影久久久久电影网| 在线不卡国产精品| 亚洲自拍偷拍网址| 国产一区二区激情| 久久99视频免费| 日韩精品中文字幕在线| 456国产精品| 欧美另类高清videos| 国模gogo一区二区大胆私拍| 日韩一区二区精品视频| 日韩av片永久免费网站| 国产一区二区三区中文| 精品福利樱桃av导航| 色偷偷噜噜噜亚洲男人的天堂| 欧美孕妇与黑人孕交| 国产亚洲激情在线| 国产视频福利一区| 日韩av电影在线免费播放| 亚洲一区二区在线| 日韩美女写真福利在线观看| 精品国产精品三级精品av网址| 久久国内精品一国内精品| 亚洲一区二区中文| 日韩亚洲欧美中文在线| 国产视频精品久久久| 亚洲福利小视频| 中文字幕国产精品久久| 国产人妖伪娘一区91| 九九热在线精品视频| 26uuu久久噜噜噜噜| 在线播放国产一区二区三区| 日本一区二区在线播放| 亚洲免费成人av电影| 欧美在线视频导航| 91精品久久久久久久久青青| 久久伊人免费视频| 欧美另类在线播放| 欧美激情视频免费观看| 精品国产福利视频| 欧美综合第一页| 久久男人av资源网站| 国产精品2018| 久久久久久久久久久免费精品| 高清一区二区三区日本久| 日本欧美爱爱爱| 亚洲欧美一区二区三区久久| 亚洲精品久久久一区二区三区| 2018日韩中文字幕| 国语自产精品视频在线看抢先版图片| 国产精品视频白浆免费视频| 亚洲国产精品国自产拍av秋霞| 欧美性xxxxhd| 亚洲电影免费在线观看| 91欧美精品午夜性色福利在线| 日av在线播放中文不卡| 亚洲电影成人av99爱色| 丝袜美腿精品国产二区| 欧美激情一区二区三区久久久| 日韩中文字幕国产精品| 欧美激情在线视频二区| 911国产网站尤物在线观看|