![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈溢出
PLpa、
当你的才华撑不起你的野心时,你就应该静下心来学习。
展开
-
非常规情况下栈溢出系统调用——PicoCTF_2018_can-you-gets-me
前言:对于这种非常规的栈溢出题目,我自己也是见的比较少,故写此博客记录一下。解题思路查看保护只开了NX保护的32位程序,如果是常规题的话,应该是非常容易做的。进入IDA查看伪代码打开IDA,如果是第一次见这种题目就会傻眼了。题目中的每一个函数都好像是自己写的,那么我们就不能利用got表来泄露函数地址来getshell了。题目开了NX保护,我们不能写shellcode,常规的ROP又利用不了,我们就完全利用不了libc里边的函数了。乍一看,好像没什么办法了,但是我们可以用程序中非常多的g原创 2020-08-04 12:40:20 · 487 阅读 · 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 · 1376 阅读 · 1 评论 -
栈帧劫持的一些利用方法及注意事项--buuctf--gyctf_2020_borrowstack
前言最近在刷buuctf时发现了很多栈帧劫持的题目,从中取出最有代表性的、坑最多的拿出来写一篇博客记录一下。保护机制64位Linux程序,只开了NX保护。解题思路IDA看伪代码伪代码分析从代码中我们可以看到,read读入buf的字节大小只多了0x10,这样是不能构成ROP链的,但是我们发现,程序下面给了我们一个bank的bss段的地址,这不就是典型的劫持栈帧到bss段吗?但是这里有一个坑:我们可以看到got.plt距离bss段非常近,而bank又正好是在0x601080的位置,当我们原创 2020-07-01 10:24:10 · 558 阅读 · 2 评论 -
攻防世界(pwn) shell——c代码审计题
前言:此题难度没有前几题或者后几题难度大,考验的是对c程序逻辑的理解。开了canary和NX保护,我们打首先运行一下程序查看程序的逻辑。程序打开了一个shell,但是只能运行ls指令,不能运行cat指令,这样我们就不能查看远端的信息了。我们打开IDA看看程序的逻辑。通过IDA的提示,我们知道,程序还可以运行login指令,他是一个登录程序,登录成功后就可以获取权限。我们继续往下看...原创 2020-04-19 17:01:53 · 962 阅读 · 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 · 273 阅读 · 0 评论 -
JarvisOJ level4
这题与level3相比就是就是题目并没有给出对应的libc文件,这里就要学习使用一波DynELF函数了,这是pwntools的一个函数,使用前请确认安装完整pwntools工具。前言:DynELF函数是通过已知函数,迅速查找libc库,并不需要我们自己本身知道对应版本的libc文件。这是DynELF函数使用的一个模板:def leak(address): payload=pad+p...原创 2019-07-08 18:58:40 · 2253 阅读 · 1 评论