第二篇原理篇(3)

命令執(zhí)行漏洞

PHP:提供了部分函數(shù)用來執(zhí)行外部應(yīng)用程序悠鞍,例如: system()仿耽、 shell_ exec()娄蔼、 exec()和passthru()。

在PHP中,代碼執(zhí)行漏洞出現(xiàn)較多如孝,像preg. replace()、 ob start()娩贷、 array_ map()等的數(shù)都存在代碼執(zhí)行的問題

java

框架執(zhí)行漏洞

struts2

thinkPHP

防范

盡量不要使用系統(tǒng)執(zhí)行命令;

在進(jìn)入執(zhí)行命令函數(shù)/方法之前第晰,變量一定要做好過濾,對(duì)敏感字符進(jìn)行轉(zhuǎn)義;

在使用動(dòng)態(tài)函數(shù)之前,確保使用的函數(shù)是指定的函數(shù)之一;

對(duì)PHP語(yǔ)言來說茁瘦,不能完全控制的危險(xiǎn)函數(shù)最好不要使用品抽。

文件包含漏洞

PHP包含

? ? ? PHP中提供了四個(gè)文件包含的函數(shù),分別是include()甜熔、 include_ once()圆恤、require() 和require_ once()。 這四個(gè)函數(shù)都可以進(jìn)行文件包含纺非,但作用卻不- -樣哑了,其區(qū)別如下:

require 找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤(E_ COMPILE ERROR),并停止腳本:

include 找不到被包含的文件時(shí)只會(huì)產(chǎn)生警告(E_ WARNING)烧颖,腳本將繼續(xù)執(zhí)行:

include once:此語(yǔ)句和include()語(yǔ)句類似,唯-區(qū)別是如果該文件中的代碼已經(jīng)被包含弱左,則不會(huì)再次包含:

require_ once:此行語(yǔ)句和require()語(yǔ)句類似,唯-區(qū)別是如果該文件中的代碼已經(jīng)被包含炕淮,則不會(huì)再次包含拆火。

本地包含

遠(yuǎn)程包含:要使用遠(yuǎn)程包含功能,首先需要確定PHP是否已經(jīng)開啟遠(yuǎn)程包含功能選項(xiàng)( PHP默認(rèn)關(guān)閉遠(yuǎn)程包含功能)涂圆。開啟遠(yuǎn)程包含功能需要在php.ini 配置文件中修改们镜,修改后需要重啟Web 容器服務(wù)使其生效,選項(xiàng)如下:

allow url_ include = Off

//把Off更改為On

PHP文件包含利用

1.讀取敏感文件


2.遠(yuǎn)程包含shell

3.本地包含配合文件上傳

4.使用PHP封裝協(xié)議

PHP帶有很多內(nèi)置URL風(fēng)格的封裝協(xié)議润歉,這類協(xié)議與fopen(). copy()模狭、file_ exists()、 filesize()等文件系統(tǒng)函數(shù)所提供的功能類似踩衩。


①使用封裝協(xié)議讀取PHP文件嚼鹉。②寫入PHP文件。使用p://input 可以執(zhí)行PHP 語(yǔ)句驱富,但使用這條語(yǔ)句受限于allow url_ include 選項(xiàng)锚赤。只有在allow url_ include 為On時(shí)才可以使用。

5.包含Apache日志文件

某個(gè)PHP文件存在本地包含漏洞導(dǎo)致無法上傳文件時(shí)褐鸥,這種情況就像明明有SQL注入漏洞线脚,卻無法注入出數(shù)據(jù)一樣,但是叫榕,找到Apache路徑浑侥,利用包含漏洞包含Apache日志文件也可以獲取WebShell。Apache運(yùn)行后一般默認(rèn) 會(huì)生成兩個(gè)日志文件晰绎,acess.log (訪問日志)和error.log (錯(cuò)誤日志), Apache的訪問日志文件記錄了客戶端的每次請(qǐng)求及服務(wù)器響應(yīng)的相關(guān)信息

6.截?cái)喟?/p>

這種方法只適用于magic_ quotes_ gpc = Off時(shí)寓落,如果為On, %00(NULL)將 會(huì)被轉(zhuǎn)義,從而無法正常截?cái)嗪住agic _quotes_ gpe為On的情況會(huì)為以下預(yù)定義字符轉(zhuǎn)義:單引號(hào)()雙引號(hào)(")反斜杠(\)NULL

7.繞過WAF防火墻

jsp包含

1.靜態(tài)包含

? ? ? <%@ include file="pagetxt"%>為JSP中的靜態(tài)包含語(yǔ)句零如,靜態(tài)包含語(yǔ)句先進(jìn)行包含躏将,再做處理操作。JSP語(yǔ)法規(guī)定考蕾,include 指令為靜態(tài)包含祸憋,只允許包含一個(gè)已經(jīng)存在于服務(wù)器中的文件,而不能使用變量來控制包含某個(gè)文件肖卧。這就意味著使用include指令將不存在文件包含漏洞蚯窥。

2.動(dòng)態(tài)包含

<jsp:include page="page.txt" />為動(dòng)態(tài)包含語(yǔ)句。動(dòng)態(tài)包含與靜態(tài)包含恰恰相反塞帐,在運(yùn)行時(shí), 首先會(huì)處理被包含頁(yè)面拦赠,然后再包含,而且可以包含一個(gè)動(dòng)態(tài)頁(yè)面(變量)葵姥。

由于語(yǔ)言設(shè)計(jì)的差異荷鼠,相對(duì)來說,JSP 比PHP擁有更高的安全性榔幸。

杜絕方法

嚴(yán)格判斷包含中的參數(shù)是否外部可控允乐,因?yàn)槲募┒蠢贸晒εc否的關(guān)鍵點(diǎn)就在于被包含的文件是否可被外部控制;

路徑限制:限制被包含的文件只能在某一文件夾內(nèi),一 定要禁止目錄跳轉(zhuǎn)字符,如../”

包含文件驗(yàn)證:驗(yàn)證被包含的文件是否是白名單中的一員;

盡量不要使用動(dòng)態(tài)包含削咆,可以在需要包含的頁(yè)面固定寫好牍疏,如: include("head.php");。

CSRF

CSRF的攻擊建立在瀏覽器與Web服務(wù)器的會(huì)話中:欺騙用戶訪問URL

檢測(cè)

1.手工檢測(cè)

2.半自動(dòng)檢測(cè):

CSRFtester

單擊“Start Recording"按鈕開啟CSRFTester的檢測(cè)工作拨齐,在“Setp"屬性中選擇添加用戶的請(qǐng)求鳞陨,并將“Form Parameter” 框中的“edtName”值改為“CSRFTest",然后單擊“Generate HTML”按鈕生成CSRF POC。選擇-一個(gè)保存位置后瞻惋, 將會(huì)自動(dòng)打開這個(gè)已經(jīng)生成的POC進(jìn)行CSRF攻擊厦滤。如果CSRF攻擊成功,網(wǎng)站將會(huì)添加一個(gè)名為“CSRFTest”的用戶熟史。CSRFTester 是將所有的屬性生成為隱藏的input 標(biāo)簽馁害,并添加了默認(rèn)值窄俏,當(dāng)訪問這個(gè)頁(yè)面時(shí)蹂匹,JavaScript 將會(huì)自動(dòng)提交這個(gè)表單。

Burp Suite Scanner 模塊同樣也支持檢測(cè)CSRF漏洞

使用Burp Suite自動(dòng)生成CSRF POC凹蜈,在任意HTTP請(qǐng)求限寞、URL上單擊鼠標(biāo)右鍵,選擇“Engagement tools”→“Generate CSRF POC"即可生成CSRF POC仰坦。Burp Suite的CSRF POC也是根據(jù)請(qǐng)求參數(shù)生成的履植,可以直接單擊“Test in browser”按鈕進(jìn)行測(cè)試。單擊后悄晃,Burp Suite將會(huì)自動(dòng)打開瀏覽器使用這段POC進(jìn)行CSRF攻擊玫霎。

預(yù)防

1.二次確認(rèn)

在調(diào)用某些功能時(shí)進(jìn)行二次驗(yàn)證凿滤,如:刪除用戶時(shí),產(chǎn)生一個(gè)提示對(duì)話框庶近,提示“確定刪除用戶嗎?”翁脆。轉(zhuǎn)賬操作時(shí),要求用戶輸入二次密碼鼻种。設(shè)置驗(yàn)證碼反番,在進(jìn)行敏感操作時(shí)輸入驗(yàn)證碼。

當(dāng)二次驗(yàn)證后叉钥,即使用戶打開了CSRF POC頁(yè)面罢缸,也不會(huì)直接去執(zhí)行,而需要用戶再次輸入才可以完成攻擊投队。這樣枫疆,當(dāng)用戶突然收到提示后,可能會(huì)心存懷疑敷鸦,就不再會(huì)乖乖地中招养铸。

2.token認(rèn)證

CSRF 攻擊成功的兩個(gè)要素:攻擊者可得知URL的所有參數(shù)項(xiàng),并了解其含義轧膘;誘導(dǎo)用戶訪問構(gòu)造好的POC钞螟。

毎當(dāng)用戶登錄后會(huì)隨機(jī)生成一段字符串, 并且存儲(chǔ)在Session中谎碍。

在敏感操作中加入隠藏標(biāo)簽鳞滨,value 即カSession中保存的字符串,如果為GET請(qǐng)求蟆淀,考慮使用在Cookie中存儲(chǔ)Token拯啦。

提交請(qǐng)求后,服務(wù)器端取出Session中的字符串與提交的Token對(duì)比熔任,如果一致褒链,則認(rèn)為是正常請(qǐng)求,否則可能是CSRF攻擊疑苔。

更新Token值甫匹。

當(dāng)網(wǎng)站同時(shí)存在XSS. CSRF漏洞時(shí),Token 防御機(jī)制將會(huì)失效惦费,因?yàn)楣粽呖梢酝ㄟ^JavaScript獲取Token值

所以在防范CSRF時(shí)兵迅,首先需要確定網(wǎng)站是否存在XSS漏洞,如果網(wǎng)站存在XSS漏洞薪贫,那么防范CSRF是沒有任何意義的恍箭。

邏輯錯(cuò)誤漏洞

挖掘

發(fā)現(xiàn)網(wǎng)站所提供的功能模塊,針對(duì)具體的功能確定業(yè)務(wù)流程瞧省,詳細(xì)劃分具體步驟扯夭,攔截HTTP/HTTPS請(qǐng)求鳍贾,分析其參數(shù)項(xiàng)的含義;修改參數(shù)值,嘗試觸發(fā)邏輯漏洞交洗。

簡(jiǎn)單地說贾漏,黑客挖掘邏輯漏洞有兩個(gè)重點(diǎn),就是業(yè)務(wù)流程和HTTP/HTTPS請(qǐng)求篡改藕筋。

繞過授權(quán)驗(yàn)證

水平越權(quán):相同級(jí)別(權(quán)限)的用戶或者同角色的不同用戶之間纵散,可以越權(quán)訪問、修改或者刪除的非法操作隐圾。如果出現(xiàn)此類漏洞伍掀,那么將可能會(huì)造成大批量數(shù)據(jù)泄露,嚴(yán)重的甚至?xí)斐捎脩粜畔⒈粣阂獯鄹摹?/p>

垂直越權(quán)又被分為向上越權(quán)與向下越權(quán)暇藏。是不同級(jí)別之間或不同角色之間的越權(quán)蜜笤。

密碼找回邏輯漏洞

支付邏輯漏洞

指定賬戶惡意攻擊

代碼注入

按照owasp分類包括:os命令執(zhí)行

文件包含

動(dòng)態(tài)函數(shù)調(diào)用

代碼執(zhí)行

按照Wikipedia還包括:SQL注入,XML注入盐碱,xss

XML(可拓展標(biāo)識(shí)語(yǔ)言)注入

XML注入是通過改寫XML實(shí)現(xiàn)的把兔,與xss跨站漏洞相似,此漏洞利用成功的關(guān)鍵點(diǎn)就是閉合XML標(biāo)簽瓮顽。XML注入時(shí)的兩大要素為:標(biāo)簽閉合和獲取XML表結(jié)構(gòu)县好。

修復(fù):轉(zhuǎn)義

xpath注入

XPath即為XML路徑語(yǔ)言(XML Path Language), XPath 基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力暖混。簡(jiǎn)單地說缕贡,XPath 就是選取XML節(jié)點(diǎn)的一門語(yǔ)言。

XPath最強(qiáng)大的功能在于邏輯運(yùn)算拣播,使用XPath將會(huì)使程序變得有邏輯性晾咪,但如果這一點(diǎn)使用不當(dāng),可能將會(huì)造成注入漏洞

修復(fù)參照XML注入

json注入

JSON (JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式贮配。JSON可以將JavaScript中的對(duì)象轉(zhuǎn)換為字符串,然后在函數(shù)谍倦、網(wǎng)絡(luò)之間傳遞這個(gè)字符串。這個(gè)字符串看起來有點(diǎn)兒怪異泪勒,但是JavaScript很容易解釋它昼蛀,而且JSON可以表示:比“Key/ Value”更復(fù)雜的結(jié)構(gòu)。

JSON是根據(jù)引號(hào)(")酣藻、 冒號(hào)(:)曹洽、 逗號(hào)(,) 和花括號(hào)({)區(qū)分各字符的意義的鳍置。如果有惡意用戶向JSON中注入惡意字符辽剧,那么JSON將解析失敗。

防御:關(guān)鍵字符轉(zhuǎn)義

HTTP Parameter Pollution即HTTP參數(shù)污染税产,簡(jiǎn)稱HPP

經(jīng)常用來繞過--些Web應(yīng)用防火墻怕轿。

URL跳轉(zhuǎn)與釣魚

URL跳轉(zhuǎn)

1.客戶端跳轉(zhuǎn)

客戶端跳轉(zhuǎn)也被稱為URL重定向偷崩,用戶瀏覽器的地址欄URL會(huì)有明顯的變化

2.服務(wù)器端跳轉(zhuǎn)

服務(wù)器端跳轉(zhuǎn)也稱為URL轉(zhuǎn)發(fā),服務(wù)器端跳轉(zhuǎn)時(shí),用戶瀏覽的地址欄URL是不會(huì)變化的

webserver遠(yuǎn)程部署

通過遠(yuǎn)程部署獲取WebShell 并不屬于代碼層次的漏洞撞羽,而是屬于配置性錯(cuò)誤漏洞阐斜。

Tomcat

Jboss

weblogic

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诀紊,隨后出現(xiàn)的幾起案子谒出,更是在濱河造成了極大的恐慌,老刑警劉巖邻奠,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笤喳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡碌宴,警方通過查閱死者的電腦和手機(jī)杀狡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贰镣,“玉大人呜象,你說我怎么就攤上這事”。” “怎么了恭陡?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)上煤。 經(jīng)常有香客問我子姜,道長(zhǎng),這世上最難降的妖魔是什么楼入? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任哥捕,我火速辦了婚禮,結(jié)果婚禮上嘉熊,老公的妹妹穿的比我還像新娘遥赚。我一直安慰自己,他們只是感情好阐肤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布凫佛。 她就那樣靜靜地躺著,像睡著了一般孕惜。 火紅的嫁衣襯著肌膚如雪愧薛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天衫画,我揣著相機(jī)與錄音毫炉,去河邊找鬼。 笑死削罩,一個(gè)胖子當(dāng)著我的面吹牛瞄勾,可吹牛的內(nèi)容都是我干的费奸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼进陡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼愿阐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起趾疚,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤缨历,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后糙麦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戈二,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年喳资,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了觉吭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仆邓,死狀恐怖鲜滩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情节值,我是刑警寧澤徙硅,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站搞疗,受9級(jí)特大地震影響嗓蘑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匿乃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一桩皿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幢炸,春花似錦泄隔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至闸天,卻和暖如春暖呕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苞氮。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工湾揽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓钝腺,卻偏偏與公主長(zhǎng)得像抛姑,于是被迫代替她去往敵國(guó)和親赞厕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艳狐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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