ROP
PLpa、
当你的才华撑不起你的野心时,你就应该静下心来学习。
展开
-
非常规情况下栈溢出系统调用——PicoCTF_2018_can-you-gets-me
前言:对于这种非常规的栈溢出题目,我自己也是见的比较少,故写此博客记录一下。解题思路查看保护只开了NX保护的32位程序,如果是常规题的话,应该是非常容易做的。进入IDA查看伪代码打开IDA,如果是第一次见这种题目就会傻眼了。题目中的每一个函数都好像是自己写的,那么我们就不能利用got表来泄露函数地址来getshell了。题目开了NX保护,我们不能写shellcode,常规的ROP又利用不了,我们就完全利用不了libc里边的函数了。乍一看,好像没什么办法了,但是我们可以用程序中非常多的g原创 2020-08-04 12:40:20 · 527 阅读 · 0 评论 -
关于沙箱关闭execve的绕过技巧及SROP的简单利用方法 --(buuctf[V&N2020 公开赛])babybabypwn + warmup
前言最近做buuctf又发现一种以前没有见过的沙箱关闭execve的题目,在网上找了很多资料,终于初步了解了一些简单的绕过技巧,故写此博客记录一下。[V&N2020 公开赛]babybabypwn查看保护保护全开的64位Linux程序。IDA查看伪代码直接进入main函数看看,发现syscall函数,并不是很了解这个函数,但是通过百度我们知道syscall的几个参数的意义。第一个参数表示syscall调用的函数,例如题目中的15调用的就是sigreturn。看到sigreturn原创 2020-07-05 14:26:38 · 1582 阅读 · 1 评论 -
攻防世界pwn RCalc
需要知识:ROP,堆溢出发现查询没开PIE和canary。程序在最开始申请了几个堆空间,并不允许我们自己申请,而且整个程序并没有free的地方,所以常规的堆漏洞并不容易利用,这时候我们就继续往下看。这里可以看到,主要功能函数处有一个没有输入限制的字符串,由此我们就联想到使用常规的ROP。但是程序在主要功能函数中添加了随机数植入,构造了一个自定义的canary,我们只要覆盖了这个随机...原创 2020-02-22 18:23:53 · 493 阅读 · 0 评论 -
Jarvis OJ level3 writeup
这题是典型的ROP返回libc地址题,是一个十分经典的ROP题目。拿到题目我们可以看到他给出了一个rar文件,我们拿这个文件到Linux中解压一下:解压出两个文件:level3和libc-2.19.so。我们查看一下这两个文件的保护:可以看到,libc-2.19.so保护全部开启了(幸好不是攻击他,哈哈),而level3只开了NX保护。我们把level3放到IDA中查看一下程序逻辑:...原创 2019-07-07 21:27:37 · 293 阅读 · 0 评论 -
JarvisOJ level4
这题与level3相比就是就是题目并没有给出对应的libc文件,这里就要学习使用一波DynELF函数了,这是pwntools的一个函数,使用前请确认安装完整pwntools工具。前言:DynELF函数是通过已知函数,迅速查找libc库,并不需要我们自己本身知道对应版本的libc文件。这是DynELF函数使用的一个模板:def leak(address): payload=pad+p...原创 2019-07-08 18:58:40 · 2350 阅读 · 1 评论