摘要:
实验程序:ret2text 使用IDA PRO反汇编: 拿到进入gett函数的call之后进行gdb调试,下这个call的断点,然后运行得到如图: s的地址=0xffffd0f0+0x1c=0xFFFFD10Cs到ebp的偏移地址:0xffffd178-0xFFFFD10C=6ch 得到s到ebp的 阅读全文
摘要:
程序源码: #include <stdio.h> #include <string.h> void success() { puts("You Hava already controlled it."); } void vulnerable() { char s[12]; gets(s); puts 阅读全文
摘要:
自动root登录1、设置root密码sudo passwd root根据提示输入密码(此时输入的密码是以后登录root账户时的密码) 2、设置ubuntu.conf打开 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf修改 [Seat:*] user- 阅读全文
摘要:
GCC 中使用以下参数设置 Canary: -fstack-protector 启用保护,不过只为局部变量中含有数组的函数插入保护 -fstack-protector-all 启用保护,为所有函数插入保护 -fstack-protector-strong -fstack-protector-expl 阅读全文
摘要:
前言 溢出攻击的本质在于冯·诺依曼计算机模型对数据和代码没有明确区分这一先天性缺陷。因为攻击者可以将代码放置于数据区段,转而让系统去执行。 NX缓解机制开启后,使某些内存区域不可执行,并使可执行区域不可写。示例:使数据,堆栈和堆段不可执行,而代码段不可写。 本次实验基于pwm入门实验1的延伸:htt 阅读全文
摘要:
实验的缓冲区溢出源码: // 1.c #include<stdio.h> void func() { char name[0x50];//0x100大小的栈空间 read(0, name, 0x100);//输入0x200大小的数据 write(1, name, 0x100); } int main 阅读全文
摘要:
判断ASLR是否打开,输出2表示打开 cat /proc/sys/kernel/randomize_va_space 关闭ASLR,切换至root用户,输入命令 echo 0 > /proc/sys/kernel/randomize_va_space 阅读全文
摘要:
基本信息查询 Stack:这里没有开启Stack保护,如果开启的话会在栈中的返回地址前放一个随机值,如果被覆盖,程序就会报错退出 NX:没有开启,如果开启的话就不能让IP寄存器指向堆、栈 这里显示这是一个ELF32位的程序 运行后发现需要input canary(栈保护) 当启用栈保护后,函数开始执 阅读全文
摘要:
安装命令: sudo apt install openssh-client #本地主机运行此条,实际上通常是默认安装client端程序的 sudo apt install openssh-server #在被连接的服务器运行此条命令安装 安装完成后通过以下指令启动: 1 $ sudo /etc/in 阅读全文
摘要:
安装gdb插件gbd-peda $ git clone https://github.com/longld/peda.git ~/peda $ echo "source ~/peda/peda.py" >> ~/.gdbinit 安装pwntools pip install pwntools --u 阅读全文