一.test your nc
一般先开启靶场环境 后再Ubuntu终端中进行nc指令
(以BUUCTF为例)
在输入时cn可能会有冒号,输入之后出现这种情况,把冒号删掉改为空格即可
之后可能会出现光标在下一行闪烁,此时输入指令ls查看文件找到flag这个文件
在输入cat这个命令查看文件 cat flag 即可找到flag
二.ROP
这道题会用到IDO
用checksec 查出此文件为64位的
用IDA 打开文件之后
shift+F12打开将文件
/bin/sh为执行函数的标准函数从这里找到突破口 ,之后找到这个函数的地址
push是函数进行的标志
此函数在fun函数中,进入这个函数找到push开始的位置是这个函数进入程序的标志,从这里找到函数/bin/sh的位置(直接点/bin/sh进去的那个位置并不是此函数的位置)
在页面上翻找到fun函数的位置的第四行即为/bin/sh的位置
找到调用函数的位置在ubuntu中编写脚本运行他
首先用vim 文件名.py创建文件夹
之后打开文件夹编写脚本
(remote为攻击远程,process为打本地)
0x401186是push的地址,因为函数是从此处开始运行
然后python3 文件名.py执行程序运行
输入ls 在输入cat flag找到flag
ret2text
ESP是堆栈指针寄存器,存放执行函数对应栈帧的栈顶地址(也是系统栈的顶部),且始终指向栈顶;EBP是栈帧基址指针寄存器,存放执行函数对应栈帧的栈底地址,用于C运行库访问栈中的局部变量和参数
确定后门地址和变量到栈底的距离,填充中间空间并覆盖ret为返回地址
其中确定变量到栈底的距离很关键也是难点
详细分析上例
、