SROP
今天开始以学习了花式的栈溢出ROP攻击,BROP这个东西朴实无华且用处不大,思想能了解,但是现在谁打个pwn还不给elf呢,不给libc文件都会被喷死,还敢不给elf?因此跳过这个学习一下SROP。
2021华东南赛区国赛线下赛
这两天来到了福州打awd的线下赛,这是我第一次打awd,收获很多。
axb_2019_fmt32 wp
临近期末考试了,终于可以光明正大地水博客了。
格式化字符串漏洞利用
格式化字符串漏洞是printf函数比较常见的漏洞,常见的漏洞形式就是`printf(s);`如果s字符是我们可控的话,那就会导致任意位置读和写等严重的后果。
cachelab实验报告:模拟cache的功能
lab从这里开始变得难了起来了,这次要模拟计算机里的一个硬件-cache的工作
系统调用
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解密简介