格式化字符串漏洞学习

一些小技巧和知识:


image.png

image.png

image.png

计算偏移量:
找漏洞函数printf家族,在printf(s)中下断点,然后输入AAAA,在gdb中计算偏移量:
p/d (0xbbbb-0xaaaa)/4
新姿势之替换got表的真实地址:
payload = fmtstr_payload(offset ,{xxx_got:system_addr})
新姿势之任意写:payload = p32(magic_bss) + '%214c' + %7n,'%214c'的作用是输出214个字符,加上前面的地址4位,刚好是218。 新姿势之泄露内存内容:payload = p32(system_got) + "% offset x"(泄露真实地址)
%A$n,是把栈地址的内容进行修改,如果内容是地址,就改这个内容地址里面的东西

image.png

练习题:LAB7:
按照惯例分析一波,checksec,拖进ida分析:
image.png

image.png

开启栈溢出保护,但是有格式化字符串漏洞可以用。
分析逻辑大概可以知道是输入名字和密码,正确的密码是文件中的随机数,先从文件中读取出来放到password里面,自己输入的密码则放在栈的ntpr中,然后进行比较,很明显是printf的格式化字符串漏洞,介绍两种方法:第一种找到password的地址直接修改password的值为1,第二种直接泄露出password的随机值:
即可构造payload:
image.png

image.png

因为我们泄露的随机数可能 大于4位,而我们泄露的只到4位,所以有时成功不了~但是方法一是绝对可以的。
练习题LAB8:
还是按照套路和逻辑来,栈溢出保护,格式化字符串漏洞~
image.png

image.png

接下来分析逻辑:
image.png

很清晰的逻辑,要么修改magic的值,要么直接调用system函数。
在printf那里下断点,计算出偏移量为7,直接上payload:
image.png

image.png

练习题LAB9:
逻辑一样,checksec,再拖进去ida分析:

image.png

image.png

发现是在bss段
由于第一次遇见在bss段中,所以无法直接利用格式化字符串漏洞向栈中写入数据,只能利用间接地写入,在printf那里下一个断点,找到ebp的地址,作为每一次返回的使用:
image.png

来进行构造:
这里有用的就是这四条,分别是设置为ebp1、fmt7、ebp2、fmt11,而他们相对于格式化字符串的偏移分别是6、7、10、11(直接数),思路如下:
1.通过ebp_1使ebp_2指向fmt_7
2.通过ebp_2将fmt_7处的内容覆盖成printf_got
3.通过ebp_1使ebp_2指向fmt_11
4.通过ebp_2将fmt_11处的内容修改成printf_got+2
5.通过fmt_7将printf_got地址泄露出来
6.计算出system函数的地址 ,将system函数地址写入printf在got表的地址
具体做法是将 system函数地址的前两个字节写入fmt_7,后两个字节写入 fmt_11
7.执行printf函数相当于执行system函数
8.输入"/bin/sh"字符串,让system函数从栈中取参数getshell
我们一步一步地分析思路,首先%数字
n,是把栈地址的内容进行修改(写入数据),如果内容是地址,就改这个内容地址里面的东西,所以第一步,因为ebp1存的是ebp2的地址,所以要改的是ebp2地址里面的内容,发现是某一个地址,把它改成fmt7地址,所以ebp2地址里面的内容变成了fmt7的地址,第二步,覆盖printf_got,ebp2的内容是fmt7地址,所以要修改的是fmt7地址里面的内容,所以fmt7地址里面的内容变成了printf_got,第三步和第四步类似,因为是%N
hn,写入2个字节,所以printf_got+2,这样就实现了泄露printf_got表真实地址,然后借此计算出system函数的真实地址,再分别写入2个地址,就相当于执行system函数,输入/bin/sh即可。具体payload:
image.png

image.png

image.png

image.png

在这里解释下那个str(printf_got&0xffff)操作,是获得低位的两个字节,(高位是不变的情况下),例如原操作数是printf_got=0x12345678,那么printf_got&0xffff=0x5678,

image.png

这里是因为%A
n是按照累加去计数的,所以要减去之前的,才是正确的计算。还有那个while True循环,是为了确认字符全部写入,因为一次只能接受0x1000个字符,所以相当于设置了一个标志位,确保能输入完成,然后因为是%N
hn,双字节写入,所以printf_got要加2,其实是类似的,把printf_got表地址写入到两个地方,第一次借助fmt7写入低位的2个字节,第二次是借助fmt11写入高位的2个字节,从而写入。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容

  • 简介 : 很明显的格式化字符串漏洞 检查一下可执行程序的保护类型 程序没有开启 PIE 保护 , 那么也就是说程序...
    王一航阅读 7,161评论 14 23
  • 格式化字符串漏洞网上讲的也很多,这里就不对漏洞进行解释了,直接讲怎么做题,以湖湘杯的pwn200为例子: 拿到题目...
    2mpossible阅读 966评论 0 1
  • A: 今日要把曾经开设的公司转出去。 M: 本不想说太多,但是想想毕竟还是一些生命。那就祝福吧。也提醒吧。 B: ...
    三回头阅读 167评论 0 0
  • 我愿赋诗歌,低声细细哦。 心思浮水叶,臆想露池荷。 驾舸白云缓,乘风碧日和。 相知谁与伴,试问可同舶?
    糊涂印象阅读 391评论 0 0
  • 《做一个刚刚好的女子》是一部女性话题书,书中涉及到的四十三个话题,涵盖了恋爱、婚姻、家庭、事业等诸多方面,是一本经...
    赖雄伟阅读 1,499评论 9 7