170718 pwn-pwn0

1625-5 王子昂 总结《2017年7月18日》 【连续第289天总结】
A. pwn入门
B. pwn0:
用binwalk查看一下,发现是32位ELF文件,则回到物理机中用IDA查看
首先当然从main函数入手:
这里写图片描述
可以看到前面都是申请内存,输出提示,然后就进入了foo函数,那么接着查看:
这里写图片描述
gets得到输入,重复输出以后校验a1,a1是参数,来自于main函数中赋值的305419896
因此正常情况下是不可能通过判断的
getFlag函数命名就很明显,验证查看一下:
这里写图片描述
打开文件目录下的flag文件输出,即得到flag
那么问题就在于如何通过if的判断了
这里回到汇编状态看看foo会更好:
这里写图片描述
要想让a1即[ebp+arg_0]的位置为61616161h,即’aaaa’
只需要让ebp+s的位置覆盖到a1即可
即输入’a’*(0x1c+4+4+4)即可
数字含义分别为:
  0x1c:s即输入参数的位置
  4:ebp的长度
  4:ret的长度
  4:a1所需要的值,即61616161h
本题中通过修改a1的值可以通过判断,从而调用getFlag函数;还可以通过覆盖ret的值来达到调用getFlag的目的;明天再说~
C. 明日计划
pwn入门(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值