自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 buu刷题日记 asis2016_b00ks

1.漏洞点一个off by null,但和其他堆题的利用不太一样。输入name时可覆盖heaplist的最低位为02.利用思路1.泄露heap地址申请大的heap再free掉,show功能正常,直接泄露。2.泄露libc && 改__free_hookheaplist的第一个指针最低位可覆盖为0,在对应位置伪造结构体,再结合edit和show功能实现任意读写,改freehook为system。3.shell申请时写入‘/bin/sh\x00’再

2021-05-18 17:21:19 551 1

转载 house_of_storm

1.漏洞利用条件glibc版本小于2.30,因为2.30之后加入了检查 需要攻击者在 large_bin 和 unsorted_bin 中分别布置一个chunk 这两个chunk需要在归位之后处于同一个 largebin 的index中且 unsorted_bin 中的chunk要比 large_bin 中的大 需要 unsorted_bin 中的 bk指针 可控 需要 large_bin 中的 bk指针和bk_nextsize 指针可控2.漏洞功能 任意写(任意分配chunk再写)...

2021-05-14 09:22:55 141

原创 TCACHE STASHING UNLINK ATTACK

1.源码分析/* If a small request, check regular bin. Since these "smallbins" hold one size each, no searching within bins is necessary. (For a large request, we need to wait until unsorted chunks are processed to find best fit. But for s

2021-05-08 20:51:01 183

原创 记一道srop题,复习一波srop

1.一眼就知道是srop什么都没有,就有这麽点东西。栈溢出+syscall2.利用思路1.栈迁移到bss上,就不用泄露栈地址了。2.写入'/bin/sh\x00'和伪造的frame,再次调用read,利用read的返回值控制rax。3.再次read时,控制rax为15,此时会触发syscall,直接执行execve(/bin/sh)。exp:from pwn import *small = ELF('./small')sh = process('./sm.

2021-05-06 10:44:10 252

原创 armpwn环境搭建

ubantu安装报错太多,直接用deepin最新版搭建,十分顺利。1.准备git,gdb 和 gdb-multiarchsudo apt-get updatesudo apt-get install git gdb gdb-multiarch2.安装 gdb 的插件 pwndbggit clone https://github.com/pwndbg/pwndbgcd pwndbg./setup.sh3.安装pwntools(可能要先安装pip)sudo pip insta

2021-05-02 23:02:21 328 1

原创 buu ciscn_s_1

漏洞edit功能中存在off by null。思路1.填满tcache,准备两个额外的chunk。2.off by null一波打unlink。3.修改bss段上的数据写入free_got地址,chunk_32地址(再次任意写),key1改为1,开启show功能,key2改为!2,能再次进行edit。4.利用第三步准备的任意写,改free_got为system函数地址。5.申请个chunk写"bin/sh\x00",再free掉,触发system('/bin/sh\x00')

2021-04-28 15:52:48 119

原创 格式化字符串+fini_array劫持

新知识点fini_array劫持:幽默的大师傅的boke题目是上的ciscn_2019_sw_1一次格式化字符串很明显。利用思路1.格式化字符串劫持fini_array,实现格式化字符串无限循环。2.改printf_got为system_got,输入/bin/sh.exp:from pwn import *from LibcSearcher import *context.log_level='debug'context.arch='amd64'#p=proc

2021-04-27 22:22:32 727

原创 buu lctf2016_pwn200

代码分析1.可泄露rbp(就是泄露栈地址,因为没有\x00截断时会连带输出后面的数据)。2.buf可覆盖ptr(栈上变量覆盖),strcpy()可能会破坏我们构造好的payload,但是strcpy()并不会复制"\x00",所以在shellcode最前面要加上"\x00",这样就只有溢出,没有复制3.后面就是堆的操作了,只有add和delete总体思路1.泄露rbp,获得栈地址。2.写入shellcode+伪造size+覆盖dest,从而控制ptr。3.free掉.

2021-04-25 19:47:22 293

原创 fsop深入学习

呜呜,来补课了。之前io_file学的不扎实,现在来深入了解一下。IO_file相关结构_IO_list_all 是一个 _IO_FILE_plus 结构体定义的一个指针,如下:extern struct _IO_FILE_plus *_IO_list_all; 1它存在在符号表内,所以pwntools是可以搜索到的,查看结构体_IO_FILE_plus内部:struct _IO_FILE_plus{ _IO_FILE file; const struct _IO...

2021-04-18 19:39:04 1099

原创 记一道shellcode题(复现mrctf的8bit_adventure)

1.分析mmap了一块区域(覆盖为0x90,重点:nop指令)读取0x1000字节,将读取的内容放入mmap区域,但是每隔0x20字节存放1字节,且为0xCD时会放入0x80(重点:系统调用)。开了沙箱2.解题思路1.有沙箱,只能orw2.会调用输入内容,但只有一字节操作空间,要用一字节命令不断操作。3.orw内容:open: sys_open(const char __user *filename, int flags, int mode)

2021-04-18 16:52:27 141

原创 高版本glibc的tcache和fastbin指针加密机制

先贴一下源码tcache: static __always_inline void tcache_put (mchunkptr chunk, size_t tc_idx) { tcache_entry *e = (tcache_entry *) chunk2mem (chunk); /* Mark this chunk as "in the tcache" so the test in _int_free will detect a

2021-04-18 16:06:50 1929 1

原创 2.24-2.28的fsop

2.24-2.28的fsop:2.23的fsop对这个版本段的glibc是无效的,多加的保护机制如下:新版本(libc2.24以上)的防御机制会检查vtable的合法性,不能再像之前那样改vatable为堆地址,但是_IO_str_jumps是一个符合条件的 vtable,改 vtable为 _IO_str_jumps即可绕过检查。_IO_str_jumps是一个方向,使用比较简单,这里就只讲这个方向了。利用:新版本(libc2.24以上)的防御机制会检查vtable的合法性,不能.

2021-04-11 13:38:06 452

原创 setcontext

1.setcontext是什么?如上所示的代码段,从setcontext+53开始,这段汇编可用来实现对寄存器的赋值操作,但要控制好rdi与rcx。 rdi用来确定从什么地方取值赋给寄存器。 rcx先push再ret,实际上是对rip的控制,这里要确保rcx指向内存可读,不然会报错。 2.利用:利用pwntools带的SigreturnFrame(),可以方便的构造出setcontext执行时对应的调用区域,实现对寄存器的控制,从而实现函数调用或orw调用。...

2021-04-11 13:34:55 1295

空空如也

空空如也

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

TA关注的人

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