視頻中明顯把shellcode字符串中的00截?cái)?,與棧上/bin/sh字符串的00截?cái)嗷煜恕?
提問(wèn)者:
ciphersaw 2021-12-5
@Roger 視頻中明顯把shellcode字符串中的00截?cái)?,與棧上/bin/sh字符串的00截?cái)嗷煜恕?/p>
無(wú)論壓入/bin/sh還是/bin///sh,,00都存在于字符串末尾,,而不是字符串中間,,因此兩種寫(xiě)法的字符串均能讀出,。視頻中說(shuō)若壓入/bin/sh字符串,,只能讀取到/bin,,這種說(shuō)法是錯(cuò)誤的。
此外,,真正產(chǎn)生00截?cái)鄦?wèn)題的,,不是棧上/bin/sh字符串的00截?cái)啵莝hellcode字符串中的00截?cái)唷?/p>
視頻中push 0x68對(duì)應(yīng)的二進(jìn)制代碼為6A 68,,而push 0x68732F對(duì)應(yīng)的二進(jìn)制代碼為68 2F 73 68 00,。
綜上可見(jiàn),壓入/bin///sh字符串的二進(jìn)制代碼為6A 68 68 2F 2F 2F 73 68 2F 62 69 6E,,而壓入/bin/sh的二進(jìn)制代碼為68 2F 73 68 00 68 2F 62 69 6E,。
真正的截?cái)鄦?wèn)題,出現(xiàn)在壓入/bin/sh的shellcode中出現(xiàn)了00字符,,導(dǎo)致后續(xù)的shellcode執(zhí)行失敗,。