本系列文章出自於Windows軟體安全實務
緩衝區溢位攻擊(張大衛)著 這本書的學習筆記
首先感謝這位作者:提供了這本質量非常高的書 看真的10遍都閒不夠多 XD
我並不會一一講解所有書中的例子,但為了講讓大家看懂,還是會從基本知識開始講由於本人也不是這方面的高手,所以如果有錯的話希望可以告知小弟我
緩衝區溢位是啥? 看圖
角色 1. 我們是hacker 也就是服務生倒水的人
角色 2. 有漏洞的軟體 也就是杯子
角色 3. 攻擊方式 (shellcode)
馬上給大家講個故事:
在一間港式餐廳中(為啥是港式 因為我愛吃燒賣XD)有個服務生很不爽故意把客人的水杯加到滿出來 而且還故意用熱水以至於燙到客人的腳上 ,他感覺不夠過癮,下一次便把熱水換成熱茶讓客人的衣服染色 這就很舒服。
為什摸說這是一個漏洞呢,首先漏洞在於杯子 ,杯子並沒有幫你檢查繼續倒水會不會滿出來的這個功能 導致於服務員故意跟你來這手,那攻擊呢,也就是我們溢出的水,又稱shellcode 。
shellcode就是攻擊方式 我們希望用什摸方式達到什摸樣的攻擊,以上面的例子來說我們可以單純加清水讓客人腳溼溼,也可以換成熱水讓客人燙燙,更可以用熱茶讓他又燙又染。
有沒有問題同學: 一定有
1.如何知道有漏洞:這你需要 逆向工程 模糊測式(fuzzing test)的功力
2.漏洞該怎摸觸發利用(不同情況 對漏洞的利用都不一樣 例如說加上防禦機制如何繞過
3.shellcode編寫: shellcode 可不好寫 程式可不能太長而且都是用16進 位opcode組成的,不但有編碼問題還有語系產生的問題 並且你需要組合語言的知識 (後面會教)。
[ 書中比較重視 第2部分也就是漏洞利用 ]
每個步驟都不簡單阿~~~~~~ 小老闆: 還要學嗎 要的話請看下一篇
留言
張貼留言