首頁
社區(qū)
課程
招聘
視頻中明顯把shellcode字符串中的00截斷,與棧上/bin/sh字符串的00截斷混淆了。

提問者:
ciphersaw 2021-12-5
@Roger 視頻中明顯把shellcode字符串中的00截斷,與棧上/bin/sh字符串的00截斷混淆了。

 

無論壓入/bin/sh還是/bin///sh,00都存在于字符串末尾,而不是字符串中間,因此兩種寫法的字符串均能讀出。視頻中說若壓入/bin/sh字符串,只能讀取到/bin,這種說法是錯誤的。

 

此外,真正產(chǎn)生00截斷問題的,不是棧上/bin/sh字符串的00截斷,而是shellcode字符串中的00截斷。

 

視頻中push 0x68對應的二進制代碼為6A 68,而push 0x68732F對應的二進制代碼為68 2F 73 68 00。

 

綜上可見,壓入/bin///sh字符串的二進制代碼為6A 68 68 2F 2F 2F 73 68 2F 62 69 6E,而壓入/bin/sh的二進制代碼為68 2F 73 68 00 68 2F 62 69 6E。

 

真正的截斷問題,出現(xiàn)在壓入/bin/sh的shellcode中出現(xiàn)了00字符,導致后續(xù)的shellcode執(zhí)行失敗。

收藏
1條回答
Roger 2023-5-23

剛看了一遍,這節(jié)課確實沒有區(qū)分這兩個概念,沒有表達清楚,感謝反饋

回復
零基礎入門pwn
  參與學習     1808 人
  提問次數(shù)     36 個
《零基礎入門pwn》,短時間內(nèi)踏入漏洞利用的大門,快速成為一名合格的pwn題選手
我的問答 領取收益
0
我的提問
0
我的回答
0
學習收益