一题nc一下 连接一下这个服务器
ls 找到该服务器下所有文件
cat一下即可找到flag
二题
checksec 检查文件基本信息
64位 用ida查看一下
F5 查看一下伪代码,在main函数中看到了gets函数 可以进行栈溢出,上面定义数组s可以存储15
在寻找一下怎样获得shell
F12 看一下字符串
空格查看地址,地址为0x40118A
编写脚本
python3 2.py
cat就可以得到flag
三题
先查看一下文件保护 发现是64位
用ida64位打开
找到main函数,F5查看伪代码 然后发现gets漏洞,同时溢出为64
f12查找字符串,发现cat flag 找到具体地址0x400611
编写脚本
进行攻击
得到flag
四题
检查一下 64位 不可执行保护
发现fun函数中是这样通过溢出让v2的等于那个数字
溢出字节0x2c 11.28125对应的十六进制为0x41348000
写脚本
得到flag
五题
不可执行保护 32位 ida看一下
看到get flag ,地址为0x8048F0D
在main函数中看到fgets,s的偏移量是60,再加上4,64位加上flag地址就可以返回
在函数中I自己就替换成you
编写脚本
进行攻击 得到flag
六题
64位 不可执行保护
需要从输入中读取字符
找到shell地址 0x400596
溢出字节0x80 写脚本
得到flag
七题
32位 栈保护 不可执行保护
格式化漏洞: 正常printf需要有格式 如果不写的话 %n 要改第几个位置 就写几
八题
32位 不可执行保护 部分重定位保护
有溢出漏洞 read
0x88 记得32位+4
system的plt的地址 0x
08048320
bin sh 的地址 0x0804A024
写脚本
九题
32位 不可执行保护 地址随机化保护 栈保护
main函数中说当var的第13位是17 就可以访问到bin sh
写脚本
得到flag