數(shù)據(jù)安全治理關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解
數(shù)據(jù)安全治理之API監(jiān)測(cè)系統(tǒng) ,解決API接口安全問題【安華金和】
新一代數(shù)據(jù)庫脫敏技術(shù),為敏感數(shù)據(jù)建立保護(hù)盾!
數(shù)據(jù)庫脫敏系統(tǒng)與金融行業(yè)案例解讀
數(shù)據(jù)安全治理建設(shè)思路的著力點(diǎn)——數(shù)據(jù)安全咨詢服務(wù)【安華金和】
數(shù)據(jù)庫防火墻功能有哪些?-數(shù)據(jù)安全-安華金和
數(shù)據(jù)安全關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解【安華金和】
中國數(shù)據(jù)安全治理落地指導(dǎo)書籍《數(shù)據(jù)安全治理白皮書5.0》正式發(fā)布(附下載)
前文中,我們對(duì)于棧溢出的原理進(jìn)行了實(shí)例還原,本文將開始介紹黑客如何利用漏洞進(jìn)行數(shù)據(jù)庫攻擊,這里需要大家先對(duì)前文進(jìn)行回顧——“數(shù)據(jù)庫安全漏洞淺析之緩沖區(qū)溢出漏洞(2)”,在此實(shí)例基礎(chǔ)上,我們將從2種角度講解棧溢漏洞的攻擊方式:
1改變程序邏輯, 2.直接劫持程序運(yùn)行攻擊者的攻擊代碼。
如何通過改變程序邏輯,繞過一些判斷使得某些限制無效,最終達(dá)到上面的例子中假如liusicheng這個(gè)預(yù)設(shè)的密碼是某銀行的密碼,通過密碼檢查后可以獲取該密碼保護(hù)的敏感信息。那么攻擊者要想通過密碼檢查,要么輸入正確的密碼,要么就需要改變程序流程(輸入錯(cuò)的密碼但是還能走回對(duì)的分支)。為了達(dá)到這個(gè)目的,我們尋找下choose的地址(re_choose的返回值),看re_choose的圖發(fā)現(xiàn)局部變量空間是0x30也就是48個(gè)字節(jié)。在低地址的應(yīng)該就是用于溢出的buffer在最靠近棧底的4個(gè)字節(jié)的應(yīng)該是result的地址,也就是choose取值的地址。result的地址是0012FB6C(由于input輸入的是qwe所以返回值是1)值是1,此時(shí)密碼驗(yàn)證過不去??吹偷刂返?012F840這個(gè)就是字符串buffer。buffer會(huì)拷入輸入的input值。buffer里面存儲(chǔ)的就是657771(win是小端字節(jié)序所以全是反的也就是qwe)。到這里,如果想讓密碼驗(yàn)證通過,就需要修改0012FB6C的值。除了輸入正確的密碼外,還可以嘗試輸入過長(zhǎng)的input,讓input向buffer拷數(shù)據(jù)的時(shí)候造成Buffer緩沖區(qū)溢出,用溢出的值覆蓋掉在0012FB6C的值,把值修改成希望的0(0就表示通過密碼驗(yàn)證了)。
buffer占44個(gè)字節(jié)也就是input需要至少輸入44個(gè)字節(jié)來占滿buffer,然后再輸入的字節(jié)將會(huì)覆蓋result。修改choose的值,進(jìn)而改變程序流程。由于這是字符串最后會(huì)有一位null所以咱們輸入44個(gè)w來占滿buffer把null擠到result中覆蓋原來的1.
輸入43個(gè)w
沒有緩沖區(qū)溢出12FB6C未被修改
輸入44個(gè)w達(dá)到緩沖區(qū)溢出
12FB6C正好被結(jié)束符null覆蓋掉從1改成0,最終跳轉(zhuǎn)到密碼驗(yàn)證通過的支路。
至此,基于棧溢出漏洞的原理,黑客可以通過改編程序邏輯的方法,完成了繞過密碼檢驗(yàn)的全部步驟,從而獲取了數(shù)據(jù)庫高權(quán)限賬戶。在過往的數(shù)據(jù)庫安全事件中,此類漏洞攻擊方式屢見不鮮,這是緩沖區(qū)溢出漏洞的最基本用法,也是黑客們的慣用手法。
試用申請(qǐng)
在線咨詢
咨詢電話
TOP