- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 Linux系统调用
1 概述相比Intel支持的快速系统调用指令sysenter/sysexit,AMD对应的是syscall/sysret,不过现在,Intel也兼容这两条指令。 测试环境:Ubuntu 12.04Ubuntu 16.04 642 传统系统调用int 0x80只用于32位系统,64位系统上不起作用; 系统调用号和返回结果EAX指定要调用的函数(系统调用号)EBX传递函数的第一个参数ECX传递函数的第...
2018-03-19 13:19:45 4821
原创 附加向量
1 附加向量1.1 附加向量Auxiliary vector是一种机制,内核的ELF binary loader使用附加向量在程序执行时传递某些信息到用户空间。 #include <sys/auxv.h>unsigned long getauxval(unsigned long type); sys/auxv.h#define AT_NULL 0 ...
2018-03-19 13:05:54 581
原创 Return-to-VDSO
1 概述本文是这篇文章的笔记:Return to VDSO using ELF Auxiliary Vectorshttps://v0ids3curity.blogspot.jp/2014/12/return-to-vdso-using-elf-auxiliary.html2 代码section .textglobal _startjmp _startvuln:sub rsp, 8mov rax,...
2018-03-19 11:37:54 1118
原创 VDSO与vsyscall
1 概述vsyscall和vDSO是用于加速某些系统调用的两种机制。 传统的int 0x80有点慢, Intel和AMD分别实现了sysenter/sysexit和syscall/ sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题. 于是Linux实现了vsyscall, 程序统一调用vsyscall, 具体的选择由内核来决定. 而vsyscall的实现就在VD...
2018-03-19 11:20:21 7388 1
原创 SROP 32位VDSO的爆破
1 概述https://www.anquanke.com/post/id/85810Sigreturn Oriented Programming攻击简介这篇文章描述了32位vdso的爆破本文是对它的复现和笔记。2 32位VDSO的爆破2.1 原理32位的VDSO只有1个字节是随机的vdso_range = range(0xf7700000, 0xf7800000, 0x1000)2.2 程序#in...
2018-03-19 11:05:21 631 2
原创 SROP 64位-smallest(2017429ctf.ichunqiu)
1 概述360春秋杯”国际网络安全挑战赛Challenge - smallest (pwn 300) - 429 ichunqiu ctf 2017http://2017429ctf.ichunqiu.com/competition/index 64位SROP很好的练习题。2 程序分析millionsky@ubuntu-16:~/tmp/smallest$ objdump -d smallest ...
2018-03-19 10:45:04 1229
原创 SROP 32位--Fun with SROP Exploitation
1 概述本文是这篇文章的笔记:Fun with SROP Exploitationhttps://v0ids3curity.blogspot.jp/2015/06/fun-with-srop-exploitation.html 环境:Ubuntu 16.042 程序nasm -felf32 vuln_s.asmld vuln_s.o -melf_i386 -o vuln_s millionsky@...
2018-03-19 10:24:28 403
原创 SROP 32位DEMO
1 概述开始学习SROP技巧。希望找到一个简单的demo来了解SROP。找了很多资料,但都没有实作成功。主要参考这篇文章1. Sigreturn Oriented Programming攻击简介https://www.anquanke.com/post/id/85810直接拿原文中的程序测试,没有复现成功,主要的问题有:1. VDSO的爆破不成功,GDB调试发现对应的位置没有找到对应的指令:sig...
2018-03-19 10:15:45 538 1
原创 SROP基本原理和利用
1 概述SROP: Sigreturn Oriented Programming ,系统Signal Dispatch之前会将所有寄存器压入栈,然后调用signal handler,signal handler返回时会将栈的内容还原到寄存器。 如果事先填充栈,然后直接调用signal handler,那在返回的时候就可以控制寄存器的值。2 资源1. Framing Signals—A Return...
2018-03-19 10:06:09 6918
Learning Linux Binary Analysis
2018-06-19
深入理解程序设计使用Linux汇编语言
2018-06-19
Learning the bash Shell, 3rd Edition(EN)
2008-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人