Injection Attacks-Log 注入

日志注入(也稱日志文件注入)

很多應(yīng)用都維護(hù)著一系列面向授權(quán)用戶责循、通過 HTML 界面展示的日志,因而成為了攻擊者的首要目標(biāo),這些攻擊者試圖偽裝其他攻擊陨溅、誤導(dǎo)日志讀者,甚至對閱讀和分析日志監(jiān)測應(yīng)用的用戶安裝后續(xù)攻擊程序绍在。

日志的脆弱性取決于對日志編寫過程的控制门扇,以及是否確保對日志條目進(jìn)行任何監(jiān)控或分析時,日志數(shù)據(jù)被看作非置信數(shù)據(jù)源偿渡。

簡單的日志系統(tǒng)可能使用file_put_contents()函數(shù)向文件中寫入文本行臼寄。比如,程序員可能采用以下格式的字符串來記錄登錄失敗的情形:

sprintf("Failed login attempt by %s", $username); 

那么萬一攻擊者使用諸如“AdminnSuccessful login by Adminn”形式的用戶名呢溜宽?

如果把來自非置信輸入的該字符串插入日志中吉拳,攻擊者就能順利將其失敗登錄偽裝為管理員用戶無辜的失敗登錄。如再成功添加一次重試适揉,數(shù)據(jù)的可信度甚至?xí)摺?/p>

當(dāng)然留攒,重點(diǎn)在于攻擊者可以添加各種日志條目,還可注入XSS矢量嫉嘀,甚至還能注入字符炼邀,擾亂日志條目在控制臺的顯示。

日志注入的目的

注入的目標(biāo)也可能為日志格式解釋程序吃沪。如果分析器工具使用正則表達(dá)式解析日志條目汤善,將其分解成數(shù)據(jù)字段,那么票彪,注入的字符串可以通過精心構(gòu)造以確保正則表達(dá)式與注入的多余字段相匹配红淡,而非正確字段。例如降铸,以下條目便可能造成問題:

$username = "iamnothacker! at Mon Jan 01 00:00:00 +1000 2009"; sprintf("Failed login attempt by $s at $s", $username, )

更過分的使用日志注入的攻擊者可能試圖建立目錄遍歷攻擊在旱,使日志出現(xiàn)在瀏覽器中。正常情況下推掸,向日志消息中注入PHP代碼并在瀏覽器中打開日志文件便可成功進(jìn)行代碼注入桶蝎,攻擊者可用精心設(shè)計并隨意執(zhí)行這類代碼注入驻仅。這一點(diǎn)無需多講。如果攻擊者能在服務(wù)器上執(zhí)行PHP登渣,那么問題就大了噪服,此時你的系統(tǒng)最好有足夠的深度防御來將損害降至最低。

防御日志注入

最簡單的日志注入防御方法是利用受認(rèn)可的字符白名單對所有出站日志消息進(jìn)行清理胜茧。比如粘优,我們可以將所有日志限制為字母數(shù)字字符和空格。不屬于該字符列表的消息可能被認(rèn)定為有害消息呻顽,進(jìn)而出現(xiàn)有關(guān)潛在本地包含漏洞(LFI)的日志消息雹顺,以便告知你攻擊者可能進(jìn)行的嘗試。這種方法很簡單廊遍,適用于簡單文本日志嬉愧,此類日志消息無法避免非置信輸入的出現(xiàn)。

第二種防御則是將非置信輸入部分編碼為類似base64的編碼喉前,其中保存著數(shù)量有限的認(rèn)可的字符描述没酣,同時還可在文本中存儲大量信息。

路徑遍歷(也稱目錄遍歷)

路徑遍歷(也稱目錄遍歷)攻擊通過讀取或?qū)懭?web 應(yīng)用的文件而試圖影響后端操作卵迂,其方法為注入能控制后端操作所采用文件路徑的參數(shù)四康。照此,通過推進(jìn)信息披露以及本地/遠(yuǎn)程文件注入狭握,這類攻擊可以順利取得成功闪金。

我們將分別對這類后續(xù)攻擊進(jìn)行闡述,但路徑遍歷是使這些攻擊達(dá)成的根本漏洞之一论颅。盡管以下功能特定于操縱文件路徑這一概念哎垦,但值得一提的是,許多PHP函數(shù)都不僅僅接受單純的文件路徑恃疯。譬如漏设,PHP中的include()file() 等函數(shù)能接受URI。這似乎很違反常理今妄,但這使得以下兩種采用絕對文件路徑(即不依靠相關(guān)文件路徑的自動加載)的函數(shù)調(diào)用方法帶來相同的效果郑口。

include(‘/var/www/vendor/library/Class.php’); include(‘file:///var/www/vendor/library/Class.php‘); 

關(guān)鍵在于,在相關(guān)路徑處理的同時(php.ini和可用自動加載器的 include_path 設(shè)定 )盾鳞,類似的PHP函數(shù)在各種形式的參數(shù)操縱下顯得尤其脆弱犬性,其中包括文件URI 方案替換——一旦文件路徑初始處注入了非置信數(shù)據(jù),攻擊者便可注入HTTP或 FTP URI腾仅。后面我們將在遠(yuǎn)程文件包含攻擊中對這一點(diǎn)進(jìn)行進(jìn)一步闡述乒裆,現(xiàn)在繼續(xù)探討文件系統(tǒng)路徑遍歷的問題。

路徑遍歷缺陷的各種情況有一個共同特點(diǎn)推励,即文件路徑因受操縱而指向不同的文件鹤耍。這一點(diǎn)通常通過向參數(shù)注入一系列 ../ (點(diǎn)-點(diǎn)-斜線)序列來實(shí)現(xiàn)肉迫,上述參數(shù)被整個添加或插入到 include()require()稿黄、file_get_contents()等函數(shù)喊衫,甚至在有的人看來不那么可疑的函數(shù)中,比如DOMDocument::load()杆怕。

點(diǎn)-點(diǎn)-斜線序列允許攻擊者使系統(tǒng)導(dǎo)航或回溯至父目錄格侯。因此像/var/www/public/../vendor 這樣的路徑實(shí)際上會指向/var/www/public/vendor/public 后的點(diǎn)-點(diǎn)-斜線序列會回溯到該目錄的父目錄财著,也就是/var/www。從該簡單示例可以看出撑碴,利用這一方法撑教,攻擊者便可讀取通過網(wǎng)站服務(wù)器可訪問的/public 目錄以外的文件。

當(dāng)然醉拓,路徑遍歷不僅僅用于回溯伟姐。攻擊者也可注入新的路徑元素,從而訪問無法通過瀏覽器訪問的子目錄亿卤,無法訪問的原因可能為子目錄或其父目錄之一中的.htaccess中的deny from all 指令愤兵。PHP的文件系統(tǒng)操作不考慮Apache或其他網(wǎng)站服務(wù)商是如何配置并控制非公共文件和目錄的入口的。

路徑遍歷示例

防御路徑遍歷估計

原文地址:http://phpsecurity.readthedocs.org/en/latest/Injection-Attacks.html#log-injection-also-log-file-injection

本文系 OneAPM 工程師編譯整理排吴。OneAPM 是應(yīng)用性能管理領(lǐng)域的新興領(lǐng)軍企業(yè)秆乳,能幫助企業(yè)用戶和開發(fā)者輕松實(shí)現(xiàn):緩慢的程序代碼和 SQL 語句的實(shí)時抓取。想閱讀更多技術(shù)文章钻哩,請?jiān)L問 OneAPM 官方博客屹堰。
本文轉(zhuǎn)自 OneAPM 官方博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市街氢,隨后出現(xiàn)的幾起案子扯键,更是在濱河造成了極大的恐慌,老刑警劉巖珊肃,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣刑,死亡現(xiàn)場離奇詭異,居然都是意外死亡伦乔,警方通過查閱死者的電腦和手機(jī)厉亏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烈和,“玉大人叶堆,你說我怎么就攤上這事〕舛牛” “怎么了虱颗?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵沥匈,是天一觀的道長。 經(jīng)常有香客問我忘渔,道長高帖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任畦粮,我火速辦了婚禮散址,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宣赔。我一直安慰自己预麸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布儒将。 她就那樣靜靜地躺著吏祸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钩蚊。 梳的紋絲不亂的頭發(fā)上贡翘,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音砰逻,去河邊找鬼鸣驱。 笑死,一個胖子當(dāng)著我的面吹牛蝠咆,可吹牛的內(nèi)容都是我干的踊东。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刚操,長吁一口氣:“原來是場噩夢啊……” “哼递胧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赡茸,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤缎脾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后占卧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遗菠,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年华蜒,在試婚紗的時候發(fā)現(xiàn)自己被綠了辙纬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡叭喜,死狀恐怖贺拣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤譬涡,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布闪幽,位于F島的核電站,受9級特大地震影響涡匀,放射性物質(zhì)發(fā)生泄漏盯腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一陨瘩、第九天 我趴在偏房一處隱蔽的房頂上張望腕够。 院中可真熱鬧,春花似錦舌劳、人聲如沸帚湘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽大诸。三九已至,卻和暖如春材诽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恒傻。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工脸侥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盈厘。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓睁枕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沸手。 傳聞我的和親對象是個殘疾皇子外遇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 注入攻擊 OWASP將注入攻擊和跨站腳本攻擊(XSS)列入網(wǎng)絡(luò)應(yīng)用程序十大常見安全風(fēng)險。實(shí)際上契吉,它們會一起出現(xiàn)跳仿,因...
    OneAPM閱讀 2,599評論 1 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)捐晶,斷路器菲语,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • Ubuntu的發(fā)音 Ubuntu英支,源于非洲祖魯人和科薩人的語言佩憾,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,260評論 9 467
  • 1 2 3 4 5 6 I LOVE U
    lqx817閱讀 78評論 0 0
  • 在山上露營,真的很冷寄摆,可憐的我的帳篷還是透氣的婶恼,凌晨四點(diǎn)多被凍醒桑阶,依稀記得昨天晚上的山泉水,同樣是寒冷的勾邦,昨天和騎...
    木頭馬尾226閱讀 599評論 2 2