csapp attack lab level1
程序员文章站
2022-03-05 15:27:54
...
因为自学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的内网。
成功!
盗用其他博客的栈帧图片。