csapp attack lab level1

因为自学pwn 而看了csapp这本书,bomb lab已做完5个,现在挑战以下attack lab实验。

level1

wget http://csapp.cs.cmu.edu/3e/target1.tar
tar -xvf target1.tar

在ubuntu输入这个代码 下载文件,解压缩。
得到如下文件
在这里插入图片描述
这些文件得结合csapp的讲义来看

在这里插入图片描述
在level1只用到了
ctarget(可注入的目标可执行文件)
hex2raw(将16进制数转化为攻击字符,因为有些字符在屏幕上面无法输入,所以输入该字符的16进制数,自动转化为该字符)
根据讲义的意思是 这个ctarget可执行文件中有这个getbuf,通过栈溢出改变返回地址到touch1,2,3或者ROP进攻劫持。
在这里插入图片描述
先看level1
在这里插入图片描述
我们先反汇编getbuf
在这里插入图片描述 0x28 是40个字节的栈帧
b getbuf
然后运行
在这里插入图片描述
我输入了asdf 显示rax 而地址0x5561dca0看是返回地址,

在这里插入图片描述
40个字节 这里我就感到很纳闷 返回地址下边应该是ebp的地址,而根据这个计算居然40个字节不存在ebp的上一个保存的地址。和我的认知不一样,算了接着看(因为它根本没有mov rbp,rsp这一句,根本没有保存上一个rbp)
在这里插入图片描述

然后反汇编touch1 看它的地址。
在这里插入图片描述
地址为0x00000000004017c0
所以我们想到test调用getbuf函数时候,输入的40个字节然后加上0x00000000004017c0就直接跳到touch1了执行touch1函数。
所以编写攻击脚本
在这里插入图片描述
根据讲义提供的方法进攻
在这里插入图片描述
在这里插入图片描述
最后要加上 -q 要不需要连cmu的内网。
成功!
盗用其他博客的栈帧图片。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值