自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 已知redis存在未授权后的利用方法

redis存在未授权后的利用方法

2024-10-21 00:13:14 1156

原创 AWVS学习版安装踩坑点

安装失败,最后弹出来acunetix service failed to start放D盘,不要放移动硬盘安装完访问显示awvs localhost 已拒绝连接直接任务管理器重启等一会儿。如果services.msc服务里有acunetix database和acunetix supervisor但是没acunetix,不用担心,问题不在这儿访问还是弹出来要licenselicense文件夹替换的那个文件设置成只读

2024-09-03 15:48:51 828 2

原创 从0开始的elf解析器

elf解析器

2022-06-11 22:58:22 1308 1

原创 【PWN】一次配置arm环境的记录

安装qumesudo apt-get install qemu-usersudo apt-get install qemu-use-binfmt qemu-user-binfmt:i386此时可以本地运行静态链接的arm程序了下载:apt search "libc6-"sudo apt-get install libc6-arm64-cross输入:qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./文件名本地可以正常运行动态链接的arm

2022-05-22 16:36:15 418 1

原创 【PWN】格式化字符串漏洞原理

今天做Dest0g3 520迎新赛的dest_love,发现是格式化字符串问题,但是由于其内容保存在了bss区,导致无法像过去那样简单利用,坐牢半天没做出来,但恰巧遇到了,就复习一下格式化字符串漏洞的基本原理吧,顺便补一下过去基本功不扎实的问题首先是格式化字符串漏洞长啥样子printf(format); //format是一个字符串如何触发?一般来说通过%p泄露内容,通过%n来写内容。%p也可用%08x(32位)替代,不过还是推荐%p,因为%p无需考虑32还是64的问题。t

2022-05-21 21:15:08 1748

原创 《程序员的自我修养》第8章学习笔记

《程序员的自我修养》第8章个人学习笔记8.1共享库的版本8.1.1 共享库的兼容共享库的更新可以被分为两类:兼容更新。原有接口不变。不兼容更新。改变了原有的接口,使用该共享库原有的接口的程序可能不能运行或运行不正常。实际上,这些对接口兼容的考虑是ABI上的。主要包括堆栈结构、符号命名、参数规则、数据构造的内存分布等方面。导致c语言的共享库ABI改变的行为主要有如下4个:1.导出函数的行为发生变化。2.导出函数被删除。3.导出数据的结构发生变化。4.导出函数的接口发生变化,如函数返回值、

2022-05-15 01:05:35 470 1

原创 攻防世界学习笔记2022.5.15

dubblesort32位栈题,保护开的很全,有canary保护canary处有偏移,并不是直接ebp+4学习点:1.使用+-号跳过scanf,防止对canary位修改示例,如输入+,并不会对内容修改。2. puts函数往往会存在利用,因为以0为结尾读取,所以往往拿来泄露地址。该题采用泄露buf中的地址来获得libc基址。不过buf中为何会有关于这些的残留,暂且不知,可能是之前同等级函数调用时残留在栈中的数据?3.关于脚本交互。注意什么时候u32,什么时候str(),

2022-05-15 01:03:17 767 1

原创 【PWN】House of Orange&House of Pig(待完整例题)

House of OrangeHouse of Orange的利用背景在缺少free条件。为了达到free的效果,通过修改top chunk的size位,当malloc的空间大于top chunk时触发brk,使top chunk被放置在unsorted bin。利用条件:1.堆有 mmap 和 brk 两种分配方式,我们需要让堆以 brk 的形式拓展,之后原有的 top chunk 会被置于 unsorted bin 中。要实现 brk 拓展 top chunk,但是要实现这个目的需要绕过一.

2022-05-06 20:05:40 776

原创 【PWN】IO_FILE的利用

IO_FILE 的结构struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */#define _IO_file_flags _flags /* The following pointers correspond to the C++ streambuf protocol. */ /* Note: Tk uses the _IO_read_ptr and _IO_read

2022-05-05 22:12:41 1461

原创 【PWN】House of Roman

House of Orange 与 House of Pig先跳过,因为与io-file有关。House of Roman用于 bypass ALSR,利用 12-bit 的爆破来达到获取 shell 的目的。且仅仅只需要一个 UAF 漏洞以及能创建任意大小的 chunk 的情况下就能完成利用。这个利用强大在不需要dump内容泄露unsorted bin的地址来获得基址,不过难受也难受在由于随机性,需要爆破。核心步骤有三下1.利用unsorted bin地址进行部分覆盖,利用fastbin at

2022-05-04 23:15:08 594 3

原创 【PWN】House of Lore&House of Rabbit

House of loreHouse of lore是一种利用small bin的利用方法。前面我们通过修改unsorted bin与large bin的bk(bk_nextsize)位来造成对”任意“地址的更改。unsorted bin由于修改后,如果无法妥善处理bk指向的chunk的size位、bk位,会造成unsorted bin无法再使用,largebin由于是通过fd_nextsize来便利的,所以下次放入影响会小,而下次取出,假如可取出比修改的chunk小的chunk,还可以继续使用。以

2022-05-04 19:14:14 4013 2

原创 【PWN】House Of Einherjar&House Of Force

ctfwiki上house系列第一个与第二个。利用方法也相对简单,内容也较少,决定一块儿复习了。House Of EinherjarHouse Of Einherjar个人理解,通过修改victim堆块的pre_size和pre_inuse,free操作会检查前后已经被释放的堆块,并对都释放了的堆块进行合并操作,如果能够有效伪造堆块fake_chunk,可以让victim块和fake_chunk均伪造为释放状态,最后合并成一个特别大的块,再次申请来某片空间的控制权。由于extend的操作,其不得

2022-05-04 01:24:24 465 1

原创 【PWN】Unsorted bin与Large bin的Attack

今天继续整理攻击方法,逆水行舟,不进则退。Unsorted bin attack与Large bin attack两者我还是放在一起了,因为两者相近,都是通过修改bk(bk_nextsize)来实现对一块区域的修改,漏洞在于缺少*(bk)->fd的检测。unsortedbin的利用点 /* remove from unsorted list */ if (__glibc_unlikely (bck->fd != victim))

2022-05-03 19:41:23 947 2

原创 【PWN】Fastbin 与 Tcache 的利用

从本周开始,针对ctfwiki的顺序,整理堆的攻击方式,顺便练一下手。克服惰性与抗拒,才能继续进步。首先是为何把fastbin和tcache放第一个整理,因为fastbin和tcache是所有后续攻击的基础,为了实现写入“任意”地址,通常情况下都是利用fastbin和tcache,有个明显的原因就是fastbin和tcache都采用单链表结构,结构更加简单,简单也意味着缺少复杂的检测,更加利于我们去利用。其次,为何把它俩放一起,原因还是两者的结构相似,地位相近,但细节上有不同,放在一起对比利用。再说

2022-05-03 01:01:33 1363 2

原创 《装载、链接与库》学习笔记

《装载、链接与库》前七章学习笔记今天偶然翻到前面几章,发现诸多“新鲜点”,造成这样的原因有一部分就是读过后没有即时沉淀先来,形成自己的知识体系。我觉得有必要写一下读书笔记了。读书不写笔记的陋习产生原因是读书少,没有发现这样学习是不行的。没有碰过南墙,所以不会读书。而现在步入大学需要学习的东西太多了,如果不及时沉淀,学习如走马观花,那就意味着很快会遗忘,漏洞百出,日后定会加倍偿还。反思结束,开始笔记。吐槽一下,我markdown目录那么体系的分类,转进csdn里,目录只能显示到最大的几个,再排版耗费精力没

2022-05-01 23:45:53 993 2

原创 Canary保护

之前做题没做过canary类型,今天补知识盲点遇到canary,恰好也写一篇吧。学pwn时基本会遇到几种保护类型,如RELRO,PIE,NX,还有Canary,这里解释一下canary。栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将c

2022-04-25 17:56:39 1347 4

原创 再探plt、got表结构

再探plt、got表结构1.为什么需要plt、got表我们为什么需要pltgot表与动态链接有关。首先一个可以运行的文件被称为可执行文件,由源代码通过预处理、编译、汇编、链接四个步骤完成。可执行文件被载入内存后,经过系统处理,形成虚拟地址空间与物理地址的映射关系。在未开pie保护的情况下,可执行文件的虚拟地址是固定的。如果源文件中定义了一个a函数,那么调用函数a时,对应的汇编代码通常是绝对地址a的调用。这种重定位是在载入内存之前的链接阶段就完成了,而我们常用的stdio.h等的库调用,调用的是运行库,是

2022-04-24 21:10:45 1111 2

原创 how2heap个人学习总结

how2heap个人学习总结1.fastbin_dupdouble free基本操作2.27下由于多了tcache,可以先free7个填满tcache再calloc3个后free放入fastbin。calloc与malloc区别除了对语法略有不同,会对内容初始化以外还会跳过tcache直接执行int_malloc。后续2.31,32,33,34无区别。2.fastbin_dup_into_stackdouble free基操,有一点需要注意,fast chunk在获取时会对其大小进行检测,检查

2022-04-17 23:11:26 994 1

原创 ptmalloc下的malloc与free

ptmalloc(glibc)下的malloc与free机制all_in_one分析

2022-04-03 15:41:36 4581

原创 HITCON_2018_children_tcache

惯例checksec一下ida打开还是熟悉的malloc,free和show模块strcpy存在off-by-one漏洞思路还是创建两个大于tcache大小的chunk,中间夹一个tcache可存储大小的chunk。通过extend再改变unsortedbin头位置泄露mainarena位置找到libc基址,最后doublefree实现对hook的更改。add(0x410,b'a')add(0xe8,b'a')add(0x4f0,b'a')add(0x60,b'a')fr

2022-03-20 23:11:44 526

原创 HITCON 2018 PWN baby_tcache

此题需要利用_IO_2_1_stdout泄露libc(2条消息) 好好说话之IO_FILE利用(1):利用_IO_2_1_stdout泄露libc_hollk的博客-CSDN博客_stdout泄露libclibc替换(2条消息) glibc更换(patchelf方法)_TTYflag的博客-CSDN博客_glibc patch保护开的很全里面没什么好看的,还是常见的创建块,删除快两个操作。创建堆块的时候存在off-by-one漏洞思路,利用extend,分别通过unsortedbi.

2022-03-20 18:17:11 343

原创 pwnable.kr unlink

这里推荐一个软件WinScp,用来远程下载文件非常合适。unlink内容,可以看到,是个模拟free状态下chunk的程序。ida打开,可以看到main最后可以利用unlink,更改ebp-4的内容为写有shellcode地址的地址+4来实现跳转到shellcode+-------------+--------------+ <= A| fd | bk ||shell_addr | aaaa |+----

2022-03-12 21:56:23 763

原创 Buuoj sctf_2019_easy_heap

大佬博客传送门:sctf_2019_easy_heap - LynneHuan - 博客园 (cnblogs.com)知识更新:1.你需要了解一下off-by-one,unlink,overlapping是啥传送门在这里:堆中的 Off-By-One - CTF Wiki (ctf-wiki.org)2.了解一下chunk 空间的共用情况,也就是下一个的 chunk 的 prev_size 域给当前 chunk 当做数据域使用,这 种情况只出现在 malloc 的大小为 8 的奇数倍(32

2022-03-12 14:08:53 711

原创 0ctf_2017_babyheap

本人double free+fastbin攻击第一道题,看了两天,好在理解下来不难。参考传送门[分享]0ctf2017 - babyheap-Pwn-看雪论坛-安全社区|安全招聘|bbs.pediy.com惯例checksec一下打开ida1创建chunk,按1,2依次创建,2往里写,3free掉指定数字chunk,4print出指定chunk内容不建议跟ida里一些函数死磕,硬读会恶心到,理解就ok。这里先放exp,读一遍exp咱们再来解释from pwn import

2022-03-10 21:11:04 551 3

原创 Fastbin的利用

我是传送门:pwn_wiki_fastbinattackFastbin Attack - CTF Wiki (ctf-wiki.org)how2heap GitHub - shellphish/how2heap: A repository for learning various heap exploitation techniques.bin结构struct malloc_chunk { /* #define INTERNAL_SIZE_T size...

2022-03-05 22:12:55 732

原创 easyROPtocol

感觉重点在构造,但其实跑起来试试就逝世。拉锯数小时,beng bu zhu le。官方wp传送门VNCTF 2022 Official WriteUp.pdf (tonycrane.cc)打开main,里面123对应着创建删除运行。重点在1里第二个if如果不满足就会删除v1里决定了前4位的数(如果选择两个一起放,记得处理小端序),后面则告诉我们几位不能为0几位必须为0,12里非5即6第二个里是个^。先去处理第一个,第二个再处理。struct message { .

2022-03-05 13:30:57 230 1

原创 VNCTF2022 clear_got

checksec一下打开idabuf哪里有个明显的栈溢出,shift f12也没发现system和‘binsh’,初步判断是利用LibcSearcher找system的题。下面memset(601008)直接把got表清了,但恰好还剩一个__libc_start_main,左边的end2中可以利用write函数,因此可以利用write函数把 __libc_start_main的真实地址打出来,然后再去找system。但是有一点需要记着,memset got表里的东西也被清了,因此常规那样在ro.

2022-03-02 10:20:28 415

原创 hitcontraining_uaf

这道题理解思路后还是很简单的。ida32打开,先读一下是在干什么。main中选择123分别跳转三个函数,而且main里是个大循环,也就是说可以重复进行。看一下1选项这块星来星去没点指针功底还这能看晕。。。实际上是个指针数组,指针指向一片8字节大小区域,这8字节,前面4字节放了print_note函数地址,后4字节存放指向一块可输入字符串的地址。看一下2我们输数字,他来free掉我们输入的字符串和这个8字节空间。再看一眼3运行我们指定的指针数组指..

2022-02-26 17:21:59 323

原创 pwnable.kr-uaf

虽然每个点都不难,但堆到一起还是容易迷糊。此题需要c++知识,所以如果不了解c++,请先去菜鸟教程,了解完类的知识即可。首先请浏览过这篇文章c++类实例在内存中的分配 (转) - bizhu - 博客园 (cnblogs.com)清楚类在内存中的存储方式后我们继续。由于本人几经尝试终端没下载下来文件(大无语。所以使用了winscp。uaf.cpp点开#include <fcntl.h>#include <iostream> #include &.

2022-02-25 14:11:31 1171

原创 picoctf_2018_leak_me

checksec一下没啥特殊的ida打开思路还是很清晰的,输入密码,如果与password.txt相同了就直接自己弹出来flag了puts识别0作为截至。利用点在于v5(name)和s在栈中相连,如果把v5填的足够大,strcat那个就会直接把v5和s中间的所有空隙填满,不存在0,因此puts会一直到s里的0截止。这里随便写个”a”*256就行了 注意上面有个strchr,遇到换行键自动换成0,所以不要纠结255,256都是‘ , '跟着密码QAQ最终ex...

2022-02-21 13:32:29 229

原创 浅析堆内存管理

学习文章:Linux堆内存管理深入分析下 | Introspelliam Linux堆内存管理深入分析上 | Introspelliam linux 堆溢出学习之malloc堆管理机制原理详解_jmp esp-CSDN博客_malloc_state堆介绍:(1)堆在内存空间中不一定连续(2)堆可由用户管理常见的分配堆的方式:dlmalloc : general purpose allocator ptmallo...

2022-02-18 21:15:28 589

原创 ROP Emporium ret2csu

现在的ROP Emporium一共有8题,后几道题相比过去的题有了一些变化,国内的新wp也是非常难找,本篇基于ROP Emporium - Ret2csu (x64) - blog.r0kithax.comhttps://blog.r0kithax.com/ctf/infosec/2020/10/20/rop-emporium-ret2csu-x64.html这位大佬的wp进行部分的解释。打开ida,依旧是惯例的明显栈溢出的pwnme,ret2win中我们可以看到flag是加密后文件,key文件是.

2022-02-18 18:35:51 505

原创 pivot ROP Emporium

打开ida,发现给了一块堆空间,并把地址告诉我们,看来是让我们利用栈空间了打开.so文件 ,依旧有一个可以打开文件的函数但是该函数的plt并没有出现,也就是说我们无法直接利用这里有个函数给了提示,提示我们,利用function的.plt间接获得ret2win的地址接下来我们尝试先运行一次function的plt,使got表更新,再把got表更新后的地址,内容放在堆上,再用栈偏移去跑到堆上。payload1是堆中的,payload2是栈中的。0x00000000004006b

2022-02-13 21:35:02 2719

原创 ROP Emporium write4

checksec还是老样子ida打开依旧是pwnme函数,点开是个plt跳转文件给了.so,那么ida打开明显栈溢出继续找可利用的漏洞,注意看notice,提示打开printfile我们可以看到这里传参是个指针,下面fopen后fgets接着puts了,fopen是拿来开文件的,文件里不正是flag,这次倒是让system休息了一回。现在我们要做的就是让al指向写有文件名的地址。现在难点在如何在一块区域写下文件名,并且知道这块地址是多少。栈想来想去也不知道怎么做,但.

2022-02-10 14:41:31 2465

原创 rop emporium call me (x64)

这道题惊喜点在于.so文件也可以拖到ida里逆向,服!下面是题解过程:左边发现奇怪的callme-one,two,three.但是人家动态链接了,不知道内容是什么就无法利用,使用ida,把so文件拽里面告诉我们,按这个参数就correctly了。下面反倒过程平平无奇了使用ROPgadget找到三个参数的pop rdi rsi rdx ret注意:当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。用栈时右到左,但6.

2022-02-10 12:20:41 1465

原创 ROP Emporium split 64位

checksec跟ret2win一样ida查看,发现跟上一个相似的东西但是很坏,/ls展示一下目录,不是flag这里用ROPgadget,找到pop rdi retROPgadget --binary split --grep 'pop|ret'这里构造rop链完整expfrom pwn import *p = process('./split')pop_addr = 0x400883bin_addr = 0x601060system = 0x4005e0pa

2022-02-10 11:02:55 680

原创 ret2win Challenge1(x86-64)

ret2win 1 x64

2022-02-10 10:33:44 373

原创 gdb调试权限不够解决

问题如下:解决:chmod+777+file注:chmod 777是加了所有权限,用法并不提倡。进一步了解请搜索chmod。

2022-02-08 10:24:33 3077 2

原创 护网杯_2018_gettingstart

栈溢出修改变量来绕过检查

2022-01-28 09:48:24 422

原创 [BUUCTF]PWN10——[第五空间2019 决赛]PWN5

这一道题利用的是格式化字符串漏洞首先checksec一下,发现是开了canary的32位程序放入ida我们可以看到,这是让我们将自己输入的密码和随机密码进行比对,当比对成功就会自己执行system。先输入AAAA%08x...找到相应的位置。传送门:(2条消息) 格式化字符串漏洞原理详解_ditto的博客-CSDN博客_格式化字符串漏洞payload=p32(0x804c044)+p32(0x804c045)+p32(0x804c046)+p32(0x804c047)payloa

2022-01-26 11:45:59 1786

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除