首頁
社區(qū)
課程
招聘
關(guān)于代碼代替的問題

提問者:
tboom 2020-4-2

 

老師您好,我想問一下

1
2
3
push  0x68
push  0x732f2f2f
push  0x6e69622f

為什么不能用

1
2
push  0x68732f
push  0x6e69622f

代替?這樣讀出來應(yīng)該是/bin/sh,并沒有在中間添加00也不需要添加/。我這樣嘗試的時(shí)候發(fā)現(xiàn)結(jié)果有$符號(hào),但是運(yùn)用ls并沒有結(jié)果而是直接退出了。請(qǐng)問為什么這樣不可以呢?

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

這個(gè)問題問的好,在很多漏洞利用場(chǎng)景中, shellcode 的內(nèi)容將會(huì)受到限制,例如你不能輸入 \x00 這個(gè)字符,編輯框不能輸入 \x0d \x0a這樣的字符,0x68732f2f2f6e69622f表示的ASCII是 hs///nib/ ,而x68732f6e69622f表示的是hs/nib/,表面上看只是兩個(gè)反斜杠的區(qū)別,但這里需要保證binsh要以00結(jié)尾,因此需要在匯編中寫入代碼手動(dòng)將其調(diào)整為 0,所以要用第一種

回復(fù) 已采納
Roger 2023-5-23

這個(gè)問題挺重要的,給你更新了一節(jié)課,你可以看一下,http://pdscpic.com.cn/book-57-955.htm

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