久久天天躁狠狠躁夜夜av,国产脚交足免费视频,亚洲小说乱欧美另类,五月天国产亚洲av麻豆

918搏天堂

?
產(chǎn)品咨詢:4000 258 365 | 申請(qǐng)產(chǎn)品演示 | 渠道合作 | English
內(nèi)容中心
按關(guān)鍵字查找
數(shù)據(jù)庫(kù)安全漏洞淺析之緩沖區(qū)溢出漏洞(4)
作者:918搏天堂 發(fā)布時(shí)間:2017-01-27

通過(guò)對(duì)過(guò)往的數(shù)據(jù)庫(kù)安全事件進(jìn)行技術(shù)分析,我們列舉了兩種通過(guò)棧溢出漏洞進(jìn)行數(shù)據(jù)庫(kù)攻擊的手段。前文中,我們介紹了第一種漏洞攻擊方式,即通過(guò)改變程序邏輯,跳過(guò)密碼驗(yàn)證,獲取數(shù)據(jù)庫(kù)賬戶權(quán)限。本文我們將介紹另一種攻擊方式:直接劫持程序,運(yùn)行攻擊代碼。

事實(shí)上,直接劫持程序的方法只是在改變程序邏輯的方法基礎(chǔ)上更進(jìn)一步。前文中我們提到通過(guò)緩沖區(qū)溢出,可以覆蓋掉一些關(guān)鍵變量導(dǎo)致函數(shù)流程被改變,那么如果繼續(xù)向下溢出就有可能覆蓋函數(shù)返回地址。改變函數(shù)返回地址到攻擊者需要返回的地方。本程序可以設(shè)計(jì)成在buffer內(nèi)存入一個(gè)腳本,然后用w填滿buffer中腳本到返回地址這中間的空缺。最后把buffer的首地址覆蓋到函數(shù)返回地址。讓函數(shù)返回時(shí),返回到buffer的初始地址,執(zhí)行buffer內(nèi)存儲(chǔ)的腳本。

為了達(dá)到這個(gè)目標(biāo),首先要確定函數(shù)返回的地址和buffer的地址。已經(jīng)得到了buffer的地址,看圖可知函數(shù)返回的地址。也就是需要從溢出點(diǎn)buffer到函數(shù)返回地址之間覆蓋我們的信息。函數(shù)返回地址在12FB74buffer初始地址是12FB40,咱們需要覆蓋掉這56個(gè)字節(jié)。

20170127.png

構(gòu)造一個(gè)shellcode(介紹shellcode不再本文范圍之內(nèi))+填充數(shù)據(jù)+0012FB40。這樣當(dāng)函數(shù)發(fā)生retn時(shí),不會(huì)跳到0041064,而是跳轉(zhuǎn)到設(shè)定好的0012FB40中。后面就會(huì)按步執(zhí)行存儲(chǔ)于0012FB40中的shellcode。至此就完成了整個(gè)溢出過(guò)程,通過(guò)緩沖區(qū)溢出劫持整個(gè)程序的方法除了這種直接的覆蓋返回值地址外,還有覆蓋SEH。

SEH是windows下的異常處理機(jī)制的重要數(shù)據(jù)結(jié)構(gòu)(c++的_try的異常處理其實(shí)本質(zhì)就是調(diào)用的SEH)。保證windows在出現(xiàn)各種錯(cuò)誤操作后給函數(shù)或系統(tǒng)一次call back的機(jī)會(huì)。SEH結(jié)構(gòu)非常復(fù)雜,這里只說(shuō)和緩沖溢出有關(guān)的部分。每個(gè)SEH包含兩個(gè)DWORD指針:SEH鏈表指針和異常處理函數(shù)句柄,共8個(gè)字節(jié)存儲(chǔ)于棧中。當(dāng)線程初始化時(shí),會(huì)自動(dòng)向棧中安裝1個(gè)SEH,作為線程默認(rèn)的異常處理。如果程序調(diào)用了-try()等異常處理機(jī)制。編譯器就是向當(dāng)前函數(shù)棧中安裝1個(gè)SEH來(lái)處理異常的。棧中同時(shí)可以存在多個(gè)SEH。整個(gè)棧中的SEH通過(guò)鏈表指針形成一個(gè)貫穿整個(gè)棧的單向鏈表。當(dāng)異常出現(xiàn),操作系統(tǒng)中斷程序,沿著整個(gè)SEH鏈表依次查詢看是是否有能處理這個(gè)異常的SEH。如果程序加載的SEH都不能處理,則會(huì)到系統(tǒng)級(jí)的SEH,由他探出錯(cuò)誤窗口,強(qiáng)制關(guān)閉程序。

SEH存在于棧中,所以棧緩沖區(qū)溢出有機(jī)會(huì)覆蓋掉SEH。和覆蓋返回地址一樣,如果覆蓋后異常處理的函數(shù)入口被修改成上面的buffer的入口那么就可以,通過(guò)shellcode+填充數(shù)據(jù)+buffer地址的手法。達(dá)到攻擊的目的,但是要注意的是需要在填充數(shù)據(jù)中觸發(fā)異常來(lái)保證SEH被觸發(fā)。

至此windows下緩沖區(qū)溢出的主要原理已經(jīng)介紹完畢。918搏天堂數(shù)據(jù)庫(kù)安全實(shí)驗(yàn)室通過(guò)對(duì)此類(lèi)典型漏洞攻擊進(jìn)行實(shí)例還原,從技術(shù)角度呈現(xiàn)攻擊過(guò)程。攻與防的較量永遠(yuǎn)相輔相成,只有透徹了解了攻擊手段,才能構(gòu)建準(zhǔn)確的漏洞特征庫(kù),由數(shù)據(jù)庫(kù)防火墻數(shù)據(jù)庫(kù)審計(jì)系統(tǒng)實(shí)現(xiàn)惡意攻擊的有效識(shí)別,并實(shí)施阻斷、攔截及告警。


?
918搏天堂 ©2021 版權(quán)所有 京ICP備10053980號(hào)-1