easyrop_2022胖哈勃春季赛
通过这道题的学习与总结:
1、rep指令是进行循环,movs qword ptr [rdi],qword ptr[rsi]则可以拷贝,二者结合就是可以大规模拷贝数据到另一个内存空间。而想实现它,仅仅只需要控制rdi和rsi以及rcx寄存器即可。
2、我们往可读可写可执行的内存中写入的任何机器码都是可以被当做指令来执行的,而想执行这些指令,仅仅用ret或者call跳转到这些指令所在地址即可(ret和call要的是指令所在地址,并非指令)
3、关闭标准输出,没有回显时,可以利用magic_gadget来去获取一些我们需要的函数。
4、开启沙箱并且三个文件描述符全关时(意味着orw读取的flag也无法看见),可以用socket+connect将flag发送到这个新开的文件上(毕竟close关闭的仅仅是当前终端的0,1,2)