BUUCTF test_your_nc
作者:互联网
- 安装
pwntools
在已安装python和pip后,直接
pip install pwntools
- 使用
checksec
,检测文件的保护机制
checksec在下载好pwntools后就有
发现test文件为64位,部分开启RELRO,开启了NX防护和PIE
RELRO(ReLocation Read-Only)堆栈地址随机化:
RELRO会有Partial RELRO和FULL RELRO,如果开启FULL RELRO,意味着我们无法修改got表。
Stack 栈溢出:
如果栈中开启Canary found,那么就不能直接用溢出的方法覆盖栈中返回地址,而且要通过改写指针与局部变量、leak canary、overwrite canary的方法来绕过。
NX 缓冲区溢出:
NX enabled就是意味着栈中数据没有执行权限,以前的call esp或者jmp esp的方法就不能使用,但是可以利用rop这种方法绕过。
PIE(Position-Independent Executable)地址无关可执行文件:
PIE enabled地址随机化选项就意味着程序每次运行的时候地址都会变化,而如果没有开PIE的话那么No PIE (0x400000),括号内的数据就是程序的基地址。
- 静态分析test文件,利用
ida64
打开
int __cdecl main(int argc, const char **argv, const char **envp)
{
system("/bin/sh");
return 0;
}
直接NC就行
4. 利用NC(netcat),其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6,因此,可以用来网络调试、端口扫描等。
NC指令:nc ip port
-z:连接成功后立即关闭连接,不进行数据交换
-v:输出详细的交互内容
- 得到flag
flag{3d8efe4b-dd63-4242-a89f-ccdc229ee880}
参考链接:
https://blog.csdn.net/bing_Max/article/details/119947896
https://www.cnblogs.com/HacTF/p/8052175.html
https://www.oschina.net/translate/linux-netcat-command
标签:BUUCTF,NC,PIE,RELRO,pwntools,地址,栈中,test,your 来源: https://www.cnblogs.com/darkcyan/p/16304555.html