canary騷操作一覽

canary是棧溢出的防護(hù)機制,一般是位于ebp的上方逆巍,用于檢測棧幀是否有溢出狀態(tài)及塘,用圖形表示:


image.png

因為一個棧幀往往是ebp作為結(jié)尾的,所以canary一般是尾隨的(也有特殊情況蒸苇,具體看作者的匯編情況)磷蛹,在32位下是4個字節(jié),64位下是8個字節(jié)(最低位都是\x00)
那么這個保護(hù)機制也是很皮的溪烤,它為了防止別人暴力輸出它味咳,于是有個\x00的截斷符庇勃,canary的最低位是0x00,這么做為了防止canary的值泄漏槽驶,舉個64位的例子:


image.png

從fs段中取出最初的canary值责嚷,然后從棧中取canary放到edx中,二者異或掂铐,如果不相同則跳轉(zhuǎn)到___stack_chk_fail函數(shù)罕拂,這個函數(shù)底層是這樣的:
image.png

可見,__libc_message 的第二個%s輸出的是argv[0]全陨,argv[0]是指向第一個啟動參數(shù)字符串的指針爆班,所以,猜想只要我們能夠輸入足夠長的字符串覆蓋掉argv[0]辱姨,我們就能讓canary保護(hù)輸出我們想要地址上的值柿菩。
canary大概就是這些內(nèi)容,接下來常見的題型是怎么樣的呢雨涛?
一枢舶、通過某些方式泄漏canary:
1、格式化字符串泄露:大體思路就是通過格式化字符串讀取canary的值替久,然后在棧溢出的padding塊把canary所在位置的值用正確的canary替換凉泄,從而繞過canary的檢測。


image.png

2蚯根、fork爆破:對fork而言后众,作用相當(dāng)于自我復(fù)制,每一次復(fù)制出來的程序稼锅,內(nèi)存布局都是一樣的吼具,當(dāng)然canary值也一樣。那我們就可以逐位爆破矩距,如果程序GG了就說明這一位不對,如果程序正常就可以接著跑下一位怖竭,直到跑出正確的canary锥债。
image.png

3、數(shù)組下標(biāo)越界(待續(xù)痊臭,還沒學(xué)到)
二哮肚、故意觸發(fā)___stack_chk_fail:
1、ssp攻擊:根據(jù)上面學(xué)到的广匙,只要我們能夠輸入足夠長的字符串覆蓋掉argv[0]允趟,我們就能讓canary保護(hù)輸出我們想要地址上的值,舉個例子:
image.png

但是有時打印flag的話可能打印不出來(這種情況下一般有副本鸦致,放副本的地址潮剪,打印副本的flag即可)涣楷。
OJ有道題可以試試:

就是棧溢出保護(hù),然后0x600d20的地址里面的東西會變抗碰,我們通過查找發(fā)現(xiàn)它有一個副本狮斗,于是可以利用不變的副本去搞出flag。


image.png

image.png

從這里我們可以知道那個劃線的就是我們的argv[0]的位置弧蝇,因為可以看到裝的就是我們的程序命名字符串碳褒。這里我們需要找到flag的地址,然后直接覆蓋即可:
image.png

所以直接暴力填看疗,肯定會有一個填到的沙峻,最后驗收下:
image.png

2、King攻擊(自命名的):通過破壞canary的值两芳,觸發(fā)___stack_chk_fail庫函數(shù)专酗,然后我們只要替換這個函數(shù)的got表為我們的system函數(shù)或者getflag函數(shù)等后門函數(shù),并且故意讓canary檢查失敗就可以劫持程序的控制流了盗扇。(題目來自于hgame祷肯,week2)


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疗隶,隨后出現(xiàn)的幾起案子佑笋,更是在濱河造成了極大的恐慌,老刑警劉巖斑鼻,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒋纬,死亡現(xiàn)場離奇詭異,居然都是意外死亡坚弱,警方通過查閱死者的電腦和手機蜀备,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荒叶,“玉大人碾阁,你說我怎么就攤上這事⌒╅梗” “怎么了脂凶?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愁茁。 經(jīng)常有香客問我蚕钦,道長,這世上最難降的妖魔是什么鹅很? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任嘶居,我火速辦了婚禮,結(jié)果婚禮上促煮,老公的妹妹穿的比我還像新娘邮屁。我一直安慰自己整袁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布樱报。 她就那樣靜靜地躺著葬项,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迹蛤。 梳的紋絲不亂的頭發(fā)上民珍,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音盗飒,去河邊找鬼嚷量。 笑死,一個胖子當(dāng)著我的面吹牛逆趣,可吹牛的內(nèi)容都是我干的蝶溶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼宣渗,長吁一口氣:“原來是場噩夢啊……” “哼抖所!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痕囱,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤田轧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鞍恢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傻粘,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年帮掉,在試婚紗的時候發(fā)現(xiàn)自己被綠了弦悉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蟆炊,死狀恐怖稽莉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盅称,我是刑警寧澤肩祥,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站缩膝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏岸霹。R本人自食惡果不足惜疾层,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贡避。 院中可真熱鬧痛黎,春花似錦予弧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至井厌,卻和暖如春蚓庭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仅仆。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工器赞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人墓拜。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓港柜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咳榜。 傳聞我的和親對象是個殘疾皇子夏醉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容