0x01 前言
闲来无事想写一个exploitme,之前虽然做过一些比较简单的ctf题目,可是还一直没有自己写过一个exploitme,本来是一个学长需要,结果由于落入各种坑导致最后没有成功在规定的时间给他。。顺带由此记录一下,如果一个裸的exploitme需要关闭的一些保护
0x02 src code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void show(char *buf_temp)
{
char buf[50];
strcpy(buf, buf_temp);
printf("%s at %p\n", buf, buf);
}
int main()
{
char buf[100];
scanf("%s", buf);
show(buf);
return 0;
}
溢出点比较明显,就是在strcpy的时候,会溢出,由于简化计算,我直接把溢出点的地址写出来了。
0x03 需要关闭的保护
- aslr 地址随机。如果每一次运行都是不同的地址,就需要关闭。方法:sudo sh -c “echo 0 > /proc/sys/kernel/randomize_va_space
- 堆栈执行权限: sudo apt-get install execstack 然后execstack -s <文件名>就可以了