我們接著上一篇的內(nèi)容來(lái)講。
Top 5 安全配置錯(cuò)誤
通常情況下把夸,網(wǎng)站的管理人員如果沒(méi)有足夠的安全意識(shí)也可使web應(yīng)用置于非常危險(xiǎn)的地步。比如說(shuō)web應(yīng)用上存在默認(rèn)的賬戶,存在不在業(yè)務(wù)范圍內(nèi)的網(wǎng)頁(yè)(測(cè)試頁(yè)面)晃琳,網(wǎng)站漏洞沒(méi)有及時(shí)打上補(bǔ)丁拨匆,該收到保護(hù)的文件沒(méi)有做權(quán)限的控制等等錯(cuò)誤的安全配置姆涩。
安全配置錯(cuò)誤可以發(fā)生在應(yīng)用的任何層面,包括平臺(tái)web服務(wù)器惭每、應(yīng)用服務(wù)器骨饿、數(shù)據(jù)庫(kù)、框架和自定義的代碼台腥。
為了有效防范安全配置錯(cuò)誤導(dǎo)致遭到入侵的風(fēng)險(xiǎn)宏赘,開(kāi)發(fā)人員應(yīng)該和系統(tǒng)的管理員共同努力,以確保整個(gè)系統(tǒng)的正確配置黎侈。同時(shí)建議企業(yè)安全人員需要定期對(duì)企業(yè)資產(chǎn)進(jìn)行收集與掃描察署,檢測(cè)補(bǔ)丁是否完全、錯(cuò)誤的配置峻汉、默認(rèn)賬戶的使用和啟動(dòng)了不必要的服務(wù)等等
Ps:有關(guān)于服務(wù)器安全加固相關(guān)的知識(shí)可以參考我之前的文章《小白客帶你走進(jìn)黑客世界7之系統(tǒng)安全加固與原理》
現(xiàn)實(shí)中由于安全配置錯(cuò)誤導(dǎo)致安全事件的案例:
1.中國(guó)人壽某處配置錯(cuò)誤導(dǎo)致通過(guò)保單號(hào)獲取保險(xiǎn)信息(WooYun-2015-112711)
2.人人網(wǎng)應(yīng)用配置錯(cuò)誤大量信息泄露贴汪,包括后臺(tái)地址(WooYun-2012-15977 )
Top 4 不安全的直接對(duì)象引用
關(guān)于官方的介紹:
當(dāng)生成web頁(yè)面時(shí),應(yīng)用程序經(jīng)常使用對(duì)象的實(shí)名或關(guān)鍵字俱济。而應(yīng)用程序并不會(huì)每次都驗(yàn)證用戶是否有權(quán)訪問(wèn)該目標(biāo)對(duì)象嘶是,這就導(dǎo)致了不安全的直接對(duì)象引用漏洞。
作為授權(quán)的系統(tǒng)用戶蛛碌,攻擊者只需要修改指向一個(gè)系統(tǒng)對(duì)象的直接引用參數(shù)值聂喇,讓其指向另
一個(gè)無(wú)權(quán)訪問(wèn)的對(duì)象。
聽(tīng)起來(lái)很不好理解蔚携,換種通熟易懂的說(shuō)法希太。比如說(shuō)有這么一個(gè)網(wǎng)址:
訪問(wèn)了這個(gè)網(wǎng)址之后,網(wǎng)頁(yè)上就會(huì)輸出report.txt內(nèi)的內(nèi)容
如果網(wǎng)站的開(kāi)發(fā)人員沒(méi)有對(duì)用戶能訪問(wèn)的頁(yè)面進(jìn)行限制的話酝蜒,攻擊者就可以修改文件參數(shù)使用目錄遍歷攻擊誊辉。他修改的 URL為:
../../../etc/shadow這個(gè)文件里面存放的是linux的密碼。一旦該網(wǎng)站存在不安全的對(duì)象引用亡脑,攻擊者就可以直接看到服務(wù)器上的密碼堕澄。
再比如,有這個(gè)一個(gè)購(gòu)物網(wǎng)站霉咨。小明在網(wǎng)站上下了一個(gè)訂單蛙紫,單號(hào)為123456,小明只要訪問(wèn)一下網(wǎng)址就可以看到自己的訂單信息:
如果網(wǎng)站的開(kāi)發(fā)人員沒(méi)有對(duì)用戶能訪問(wèn)的頁(yè)面進(jìn)行限制的話途戒,小明把后面的id值改成別人的訂單號(hào)坑傅,那么他就可以看到別人的訂單信息。大量的個(gè)人隱私就會(huì)遭到泄露喷斋。
現(xiàn)實(shí)中由于存在不安全的對(duì)象引用導(dǎo)致的安全事件的案例:
1.114票務(wù)網(wǎng)某站邏輯漏洞利用支付超時(shí)導(dǎo)致上萬(wàn)用戶敏感信息泄漏(訂單號(hào)/姓名/身份證/火車出發(fā)路線)(WooYun-2016-213011 )
2.上海公交集團(tuán)從目錄遍歷到控制4個(gè)內(nèi)部系統(tǒng)35822員工信息(WooYun-2015-135251 )
Top 3 跨站腳本攻擊
XSS(跨站腳本)是最普遍的web應(yīng)用安全漏洞唁毒。當(dāng)應(yīng)用程序發(fā)送給瀏覽器的頁(yè)面中包含用戶提供的數(shù)據(jù)蒜茴,而這些數(shù)據(jù)沒(méi)有經(jīng)過(guò)適當(dāng)?shù)尿?yàn)證或轉(zhuǎn)義(escape),就會(huì)導(dǎo)致跨站腳本漏洞浆西。
其實(shí)大家應(yīng)該都知道粉私,我們看到的網(wǎng)頁(yè)無(wú)論多么絢麗多彩都是html呈現(xiàn)出來(lái)的。如果說(shuō)網(wǎng)站上有一個(gè)輸入點(diǎn)可以讓用戶輸入室谚,并且這個(gè)網(wǎng)站還會(huì)很友好的將用戶輸入的內(nèi)容輸出到屏幕上毡鉴。一看看過(guò)去似乎沒(méi)有什么問(wèn)題,當(dāng)然秒赤,如果網(wǎng)站將用戶的輸入進(jìn)行html編碼了猪瞬,確實(shí)沒(méi)什么問(wèn)題。如果說(shuō)網(wǎng)站沒(méi)有對(duì)用戶的輸入進(jìn)行編碼和過(guò)濾再顯示到頁(yè)面上入篮,就有很大的概率造成嚴(yán)重的風(fēng)險(xiǎn)陈瘦。
一般來(lái)說(shuō)這種風(fēng)險(xiǎn)的高發(fā)地在論壇居多。用戶在留言框中輸入一串惡意的html代碼潮售。網(wǎng)站將這段惡意的代碼顯示在論壇上痊项。這時(shí)候?yàn)g覽器看到了這串代碼,它認(rèn)為這是正常的html代碼呀酥诽,于是正常的執(zhí)行了鞍泉。于是乎,只要是瀏覽過(guò)帶有這個(gè)惡意代碼的頁(yè)面的用戶肮帐,他們的瀏覽器就會(huì)執(zhí)行惡意代碼咖驮,造成嚴(yán)重的后果。比如說(shuō)這串代碼是用來(lái)獲取用戶的cookie的训枢,并將cookie發(fā)送給寫惡意代碼的人托修。那么寫惡意代碼的人就可以以你的身份登陸論壇,最終導(dǎo)致你的論壇賬號(hào)不在屬于你恒界。
現(xiàn)實(shí)中由于存在跨站腳本漏洞導(dǎo)致的安全事件的案例:
1.新浪微博存在跨站漏洞可獲取Cookie(WooYun-2016-197245)
2.搜狐視頻存在XSS漏洞造成全球最大跨站DDoS攻擊事件
Top 2 失效的身份認(rèn)證和會(huì)話管理
失效的身份認(rèn)證和會(huì)話管理漏洞一般出現(xiàn)在退出睦刃、密碼管理、超時(shí)十酣、記住我涩拙、秘密問(wèn)題、帳戶更新等等耸采。
舉個(gè)例子兴泥,一般我們登陸一個(gè)網(wǎng)站之后,網(wǎng)站會(huì)發(fā)給我們一串cookie值洋幻,這串cookie相當(dāng)于是我們?cè)谶@個(gè)網(wǎng)站上的通行證郁轻。一般正確的做法是我們一旦退出我們的賬號(hào)或者一段時(shí)間沒(méi)有訪問(wèn)這個(gè)網(wǎng)站時(shí)翅娶,這個(gè)cookie就會(huì)失效文留,再次訪問(wèn)時(shí)就會(huì)要求我們重新輸入賬號(hào)密碼好唯。
而失效的身份認(rèn)證和會(huì)話管理漏洞就是指cookie并沒(méi)有隨著我們的不訪問(wèn)而失效。這樣燥翅,我們的賬號(hào)就很有很大的風(fēng)險(xiǎn)骑篙。尤其是在公共場(chǎng)所的時(shí)候,大部分人并沒(méi)有隨手退出賬號(hào)的習(xí)慣森书,而是直接關(guān)閉瀏覽器靶端。導(dǎo)致接下來(lái)的人很容易就接管了我們的賬號(hào),并對(duì)賬號(hào)做一些惡意的操作凛膏。
現(xiàn)實(shí)中由于存在失效的身份認(rèn)證和會(huì)話管理漏洞導(dǎo)致的安全事件的案例:
1.校園網(wǎng)cmcc-edu漏洞之會(huì)話嗅探免驗(yàn)證上網(wǎng) (WooYun-2013-21749)
Top 1 注入
注入漏洞有很多種方式杨名,如SQL,OS以及LDAP注入等等猖毫,小白這里就先只介紹sql注入漏洞台谍。
Sql注入官方介紹:
所謂SQL注入,就是通過(guò)把SQL命令插入到Web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串吁断,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令趁蕊。具體來(lái)說(shuō),它是利用現(xiàn)有應(yīng)用程序仔役,將(惡意)的SQL命令注入到后臺(tái)數(shù)據(jù)庫(kù)引擎執(zhí)行的能力掷伙,它可以通過(guò)在Web表單中輸入(惡意)SQL語(yǔ)句得到一個(gè)存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫(kù),而不是按照設(shè)計(jì)者意圖去執(zhí)行SQL語(yǔ)句又兵。
舉個(gè)例子任柜,一般來(lái)說(shuō)的,我們要登陸一個(gè)網(wǎng)站的時(shí)候寒波,第一步我們得輸入正確的賬號(hào)密碼乘盼。
那么網(wǎng)站是如何判斷我們賬號(hào)輸入的正確與否呢?賬號(hào)密碼肯定是存在網(wǎng)站的數(shù)據(jù)庫(kù)中的俄烁,當(dāng)我們點(diǎn)擊登陸的時(shí)候(假設(shè)賬號(hào)密碼為xiaobaike/123456)绸栅,網(wǎng)站的后臺(tái)就會(huì)執(zhí)行一條sql查詢語(yǔ)句,如:
select * from Users where UserName=’xiaobaike’ and password=‘123456’
如果正確了页屠,就能夠登陸粹胯,錯(cuò)誤了就返回登陸失敗。
如果網(wǎng)站沒(méi)有對(duì)用戶的輸入進(jìn)行過(guò)濾的話辰企,就很容易產(chǎn)生嚴(yán)重的風(fēng)險(xiǎn)风纠。
比如我輸入用戶名為:
Xiaobaike’ or 1=1 #
密碼隨意,如1
這個(gè)時(shí)候后臺(tái)的查詢語(yǔ)句就會(huì)變成:
select * from Users where UserName=’xiaobaike’ or 1=1 # and password=‘1’
如果說(shuō)網(wǎng)站采用的數(shù)據(jù)庫(kù)管理軟件是最常用的mysql牢贸,#在mysql數(shù)據(jù)庫(kù)軟件中的意思是注釋竹观,也就是說(shuō)#后面相當(dāng)于沒(méi)有了。這時(shí)候網(wǎng)站后臺(tái)的查詢語(yǔ)句就會(huì)變成:
select * from Users where UserName=’xiaobaike’ or 1=1
語(yǔ)句的意思變成了,當(dāng)條件1=1的時(shí)候臭增,驗(yàn)證通過(guò)懂酱。大家都知道1=1一定是成立的,于是誊抛,就可以不需要正確的賬號(hào)密碼也能登陸成功列牺。通過(guò)這種方式登陸也叫做萬(wàn)能密碼登陸。
現(xiàn)實(shí)中由于存在sql注入漏洞導(dǎo)致的安全事件的案例:
1.盛大游戲某APP存在SQL注入(涉及78W+用戶數(shù)據(jù))(WooYun-2016-204475)
2.中國(guó)平安某重要站點(diǎn)存在SQL注入涉及200多萬(wàn)用戶信息(WooYun-2016-200768)
Ps:喜歡的留個(gè)贊b( ̄▽ ̄)d ~也可以關(guān)注專題:黑客師拗窃。
下一篇文章:小白客帶你走進(jìn)黑客世界13之我是一個(gè)腳本小子