系统调用
today新的知识又增长了,发现了getshell的另一种方式:syscall和srop。故事还要源于…(此处省略万字输出)
(note:本作者这次有点懒,没有写AT&T汇编,而是一律用了intel汇编,请悉知)
可能是之前汇编基础不太好吧,竟没有发现syscall这么好用的指令,只要再把/bin/sh传参就能直接打开一个shell,真是妙蛙。但是在系统调用之前要做很多的事情,诸如各类参数传递,以64位的来说,我们要先知道我们要执行的函数系统调用号为59。我也是翻过libc库的,发现system函数实现里面有一段竟然是直接执行execve("/bin/sh")
实属意外了,这是在我有次反汇编libc库的时候发现的,我原来一直是只用system函数getshell的,没想到system内部是通过这样的系统调用来打开shell的。
那这得学啊,这是基础的基础啊。
这边给出一下64位Linux的各个系统调用号,这个在Linux的/usr/include/asm/unistd.h 下有,我这里截取部分。
123456789101112131415161718 ...
动态调试工具的使用
做了这么久的`pwn`之后又得兼顾一下`re`了哈哈哈。废话不多说,这周学了动态调试器的使用,并且轻松解出了那几道题目。
ret2libc实战
ret2libc是一个pwner必备的基础知识。
archlab实验报告:y86命令使用
下载文件之后:
RSA解密
RSA解密简介
红帽杯2019 easyRe
pwn题做完re题当然也不能少,buu上除了那些水题,开始做一些带点技术含量的题目了。
ret2libc学习报告
在做`pwn`题的时候,我们会想尽一切办法执行函数`system("/bin/sh")`,那么执行这个需要两点:
canary保护学习报告:通过字符串泄露canary
这几天一直在跟着团队的进度做`csapp`的实验报告,突然想拿题来练手了才发现自己还是有点菜的。这次的任务是做一道简简单单的带`canary`保护的一题,做了很长时间问了很多师傅,也算把这个方法搞搞明白了,但是不确定能不能完全说的明白,那么下面就开始吧。
bufblab实验报告:32位程序缓冲区溢出攻击
缓冲区溢出攻击的实验
attacklab实验报告:代码注入以及rop攻击
今天来康康attack lab啊