注:學(xué)習(xí)筆記來(lái)自安全牛課堂抱究。感謝倪群主,感謝苑老師关炼!
ESP的地址是會(huì)隨機(jī)變化的涩笤,因此如果按照原來(lái)的思路:
測(cè)試溢出發(fā)送的字符數(shù)(大概)----利用唯一字符法測(cè)試準(zhǔn)確值----再次驗(yàn)證準(zhǔn)確值-----修改EIP數(shù)據(jù)為ESP地址----將shell腳本溢出寫入ESP中
這么一個(gè)思路來(lái)看的話,看起來(lái)是對(duì)的锰瘸。實(shí)際上由于ESP地址會(huì)跟著系統(tǒng)重啟而變更刽严,從而無(wú)法實(shí)現(xiàn)。
因此避凝,思路是這樣的舞萄,先在EIP中存入到內(nèi)存中的某個(gè)固定地址,這個(gè)地址里面存放的是JMP ESP命令管削,這個(gè)指令的意思是跳到ESP內(nèi)存地址倒脓。這樣的話,只要ESP中存了shell含思,那么就可以執(zhí)行崎弃!
補(bǔ)充甘晤,后面一列OS那里,必須要選擇都是true的饲做,表示每個(gè)系統(tǒng)都帶的模塊线婚,而不是說(shuō)有的系統(tǒng)帶,有的系統(tǒng)不帶盆均。false就表示不帶酌伊。
遺憾的是缀踪,第一次找居砖,沒(méi)找到,說(shuō)明上面找的那個(gè)模塊里面沒(méi)有JMP ESP 指令驴娃。如下圖:
另外奏候,還有一種可能,就是都模塊中都找不到唇敞。蔗草。。疆柔。
當(dāng)找到后咒精,雙擊里面一行,進(jìn)入查看
由于測(cè)試的目標(biāo)沒(méi)有內(nèi)存保護(hù)機(jī)制旷档,所以之前在選存儲(chǔ)JMP ESP指令的內(nèi)存地址的時(shí)候模叙,可以隨便選,如下圖:之前就是在這選內(nèi)存地址的
但是鞋屈,若想繞過(guò)DEP和那個(gè)ASR內(nèi)存保護(hù)機(jī)制范咨,那么就不能隨便選一個(gè)JMP ESP的內(nèi)存地址了。下面是繞過(guò)DEP的方法:
然后還是回到選擇JMP ESP模塊那里厂庇,上面只是看一看渠啊,方便后期繞過(guò)。下面是進(jìn)行斷點(diǎn)調(diào)試权旷,讓程序一運(yùn)行到那個(gè)JMP ESP位置就暫停
上面做那么多事替蛉,就是為了后面用腳本發(fā)送數(shù)據(jù),看運(yùn)行到這個(gè)位置的時(shí)候拄氯,能否發(fā)生跳轉(zhuǎn)躲查。