第二章
修改臨界變數
#include #include突破驗證分析:#define password "1234567"
int verify_password(char *password)
void
main()
else}}
使strcmp的返回值為1,即ret=0x1。這樣才能讓buffer溢位截斷符(\0x00)覆蓋到flag的的低位上,使ret=0
我們需要讓輸入的密碼為8位且大於password的值才能滿足上訴要求
進入od,引導程式,中文引擎搜尋(智慧型搜尋)
進入我們在程式中注釋輸入密碼的地方,找到verify_password()函式
按回車進入函式繼續分析
strcat函式就是我們要分析溢位過程的地方,我們在這裡下乙個斷點,並執行程式
我們輸入8個q, 此時flag的值即為eax的值1,即返回的是失敗的步驟
f7單步步入函式,分析溢位的過程得知password字串qqqqqqqq分了3次賦值給了buffer,前二次分別給了qqqq,qqqq。第三次給了cccccc00(末尾的00是我們輸入的8位後的截斷符)
分析得知變數flag和buffer的位址分別為0012fb20,0012fb18
函式執行完後,即溢位的00替換掉了低位的01
安全 什麼是0day漏洞?
0day漏洞是指負責應用程式的程式設計師或 商所未知的軟體缺陷。因為該漏洞未知,所以沒有可用的補丁程式。換句話說,該漏洞是由不直接參與專案的人員發現的。術語 0day 是指從發現漏洞到對其進行首次攻擊之間的天數。0day漏洞公開後,便稱為nday漏洞。0day時間表的工作原理如下 乙個人或乙個公司建...
Python學習筆記 day0
本部落格標題設計敏感關鍵字0day,違反相關法律法規,現已處理。1.輸入 raw input 這個可以輸入一行。和c 不同,它不能讀取單個整數 我的意思是,它是以字串儲存的。所以沒有什麼諸如 d這種東西。name raw input 這樣就可以讀入乙個字串,相當於gets name 考慮到人性化設計...
前端學習筆記 day0
utf 8 萬國碼 開發時我們使用的字符集都是utf 8 gb2312 國標 通過meta標籤設定網頁字符集,避免亂碼問題。此處為設定字符集,避免亂碼 用來設定網頁的元資料,底層資料,網頁的屬性。元資料不是給使用者看的 它是自結束標籤 常用的屬性 name指定資料的名稱 content指定資料的內容...