![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux_pwn
文章平均质量分 78
azraelxuemo
这个作者很懒,什么都没留下…
展开
-
sandman_nc_2016
sandman_nc_2016原创 2022-11-25 20:05:55 · 157 阅读 · 0 评论 -
ctf遇见题目close(1)怎么调试
以d3ctf_2019_unprintablev这个为例这个关闭了1,虽然解法用爆破可以做,但是调试起来很麻烦,我是这样解决的因为stdout是全局变量,所以会在bss里面定义stdout因为close(1)的原理就是关闭了1号文件描述符,所以我们只需要把stdout的文件描述符改成2就好def debug(): gdbscript = """ b vuln c set *(char *)(*(unsigned long int *)$rebase(0x20202原创 2022-04-13 10:37:44 · 1518 阅读 · 0 评论 -
劫持rtld_global中的函数指针&&hctf2018_the_end
文章目录前言劫持rtld_global中的函数指针exit_function_list__run_exit_handlers调用_dl_fini_rtld_global结构攻击前言在libc-2.23之后,加入了对IO vtable的check机制,所以有本用IO打的hctf2018_the_end转而使用另一种方法,也就是要介绍的劫持rtld_global中的函数指针劫持rtld_global中的函数指针ld相关函数在使用rtld_global时都需要先上锁, 以避免多进程下的条件竞争问题相关函原创 2022-04-11 15:29:12 · 1086 阅读 · 0 评论 -
IO_FILE Exploitation
文章目录简介IO_FILE结构_IO_FILEIO_jump_t图示利用原理exit函数vtable checkexit函数的广泛性exit函数exit调用__run_exit_handlersRUN_HOOK__run_exit_handlers调用_IO_cleanup_IO_cleanup调用_IO_unbuffer_all例题hctf2018_the_end题目分析伪造vtable修改vtable地址为我们伪造的区域attackdlfini简介IO_FILE Exploitation也是ctf里原创 2022-04-11 14:54:13 · 1229 阅读 · 0 评论 -
fastbin关于chunk size检查问题&&花式泄露libc&&极限getshell&&huxiangbei_2019_namesyste
上图就是大家很熟悉的关于fastbin大小的一个检查首先是里面一层 chunksize以及外面一层这是c源码而对于汇编层面,由于运行的时候知道具体是32位还是64位,所以做了一定的优化r15就是我们对应的chunk头地址,+8就是size的起始地址但注意看,我们其实只是取了size的低8位那么这里就是绕过的关键,网上很多地方其实讲的都不是很多只要我们找到的size的地方低8位满足如下要求即可000000yxy满足在2~8之间就好,x随意同时size高八位也随意因为可以看到我.原创 2022-04-10 17:24:02 · 2818 阅读 · 0 评论 -
花式shellcode&&inndy_leave_msg
文章目录inndy_leave_msg题目分析保护漏洞攻击利用思路exp最近做了几个题目,都是要利用写shellcodeshellcode一定要利用好当前的寄存器环境inndy_leave_msg inndy_leave_msg题目分析保护这里的栈和堆都是可以执行的,由于我的内核版本较高,所以看上去堆不可执行对于高版本内核,execstack只是允许栈可执行,要想让所有data都可以执行,需要利用execall漏洞buf可以用来写shellcode,但无法溢出覆盖返回地址由于这里有原创 2022-04-05 09:57:24 · 248 阅读 · 0 评论 -
利用rsp进行shellcode跳转&&缩短shellcode&&csaw2018_shell_code
文章目录csaw2018_shell_code题目分析题目保护漏洞攻击第一块的shellcode栈溢出的shellcodeallpayload最近做了挺多这种缩短shellcode的题目,其实大概思想就是要利用现有的寄存器条件缩短shellcode,当然还是有一些基础的缩短shellcode的方法,用push pop来替换movcsaw2018_shell_codecsaw2018_shell_code题目分析题目保护栈可执行漏洞这两个地方可以填入shellcode这里有个告诉栈地址原创 2022-04-04 15:45:48 · 482 阅读 · 0 评论 -
如何在有限的plt下getshell&&cscctf_2019_qual_babystack
文章目录cscctf_2019_qual_babystack题目分析保护漏洞plt攻击大致思路调试第一次溢出的payloadgetshellallpayload最近做的题目都比较有意思啊,这个题目也一样cscctf_2019_qual_babystackcscctf_2019_qual_babystack题目分析保护漏洞直接来了个栈溢出,我开始说这不是傻逼题目吗plt我靠,只有读的,这不完犊子了吗攻击大致思路大致思路就是ROP但怎么泄露libc调试可以看到地址只有最后一原创 2022-04-04 14:32:09 · 254 阅读 · 0 评论 -
利用printf调用malloc getshell&&0ctf2017_easiestprintf
文章目录0ctf2017_easiestprintf题目分析保护源码do_readleave攻击泄露libc如何劫持控制流printf源码分析小结开始利用__free_hook替换成gadget__malloc_hook换成one_gagdet最后一种解法首先题目名字严重…漏洞看上去很简单,但真的好难0ctf2017_easiestprintf0ctf2017_easiestprintf题目分析最难的题目往往代码很简单保护RELRO 全开,也就是不能修改fini,init,got表来劫持控制流原创 2022-04-03 17:59:57 · 1060 阅读 · 0 评论 -
在不知道libc的情况下getshell&&qctf_2018_noleak
文章目录qctf_2018_noleak题目分析deleteeditcheckSec攻击思路考虑怎么把堆地址尽量靠近malloc_hook如何把main_arena地址写进去修改为malloc_hook修改malloc_hook为我们bss地址并填入shellcodegetshellallpayload这个题也真是开了眼了,完全就不知道libc,但最后也是打出来了qctf_2018_noleakqctf_2018_noleak题目分析delete没有清空edit随便堆溢出checkSe原创 2022-04-02 17:48:41 · 263 阅读 · 0 评论 -
orw通用代码,最短shellcode
文章目录原创 2022-04-02 09:33:24 · 1737 阅读 · 0 评论 -
malloc,free check机制&&trcik
文章目录fastbinmalloc在从free fastbin从取出空闲块malloc的时候,会有如下比较free在free的时候会做如下的check防止double free,比较当前要被free的指针和对应fastbinY最外侧的指针,如果一样就报错,那么绕过就很简单,中间随便再free一个就好然后也会稍微检查一下当前要free的fastbin的下一块(根据p+size来寻找)的size是否合理,所以一般最好伪造块的时候还是要保证前后块的连续性tcachemallocfree本文涉及的libc版本为l原创 2022-03-30 08:56:45 · 445 阅读 · 0 评论 -
brop里关于strcmp的误解
这是论文的截图但我后来自己去尝试调用strcmp的时候结果是这样的strcmp(“abc”,“bcd”)rdx本来是不同时候的比较长度,但它偏偏做了一次赋值,把edx改成了第二个字符串对应长度的值,然后eax=eax-edx,所以返回值就是我们熟知的ascii差,然后rdx就变成了最后一次比较的字符的ascii码,而不是长度不知道是不是libc的问题...原创 2022-03-27 20:17:11 · 229 阅读 · 0 评论 -
calloc with tcache&&gyctf_2020_signin
文章目录gyctf_2020_signin分析add函数deleteeditbackdoor思路__libc_callo_int_malloc回到题目今天做了一道题目,利用了glibc-2.27里面的一个新机制,感觉自己对于glibc-2.23和glibc-2.27的区别还不是很明确,那么我们来比对一下这两个版本的一些函数一直有这样的一种思维嘛,对于glibc2.27来说,释放的内存会先进入tcache,如果大小合适会从tcache里面优先分配,我们来看看原因上图是__libc_malloc里面的执原创 2022-03-25 13:37:43 · 966 阅读 · 0 评论 -
以\x00开头的shellcode&&starctf_2019_babyshell
文章目录为什么会有这个想法starctf_2019_babyshell思路难点exp为什么会有这个想法虽然这个标题看起来很奇怪,但有时候其实可以用得上有时候我们输入输出是通过read来进行的,并且中间不会涉及到strcpy,strcat这些函数,所以我们可以放心的在shellcode里面插入\x00有时候其实我们需要利用到\x00,因为strcmp,strlen,等等包括很多时候自定义的函数实现都是以\x00作为结束的标志光说没用,我们看例题starctf_2019_babyshellstar原创 2022-03-25 10:21:37 · 970 阅读 · 0 评论 -
linux_pwn(6)--tcache&&double free&&ciscn_2019_final_3
文章目录What is tcachepwn题例题检查代码分析add函数delete函数准备框架attack修改大小为unsorted bin范围free成unsorted bin难点,怎么泄露libcdouble free free_hook总结What is tcachetcache是libc2.26之后引进的一种新机制,类似于fastbin一样的东西,每条链上最多可以有 7 个 chunk,free的时候当tcache满了才放入fastbin,unsorted bin,malloc的时候优先去tca原创 2022-03-10 17:43:26 · 1500 阅读 · 1 评论 -
linux_pwn(5)--ret2syscall x64&&[极客大挑战 2019]Not Bad
What is ret2syscallret2syscall是栈溢出里常见的一种手法,如果在x86下有int 80或者在x64中看到syscall,可以考虑利用这种攻击手法而且现在有些题目出现沙盒,seccomp机制会ban掉一些函数,然后一般会允许使用open,read,write,就可以用读文件方法获取flagpwn题思路一般如果看到沙盒或者出现syscall可以考虑使用这种攻击手法例题[极客大挑战 2019]Not Bad保护机制看上去没有任何保护,栈可写可执行进入之后发现有这么一原创 2022-03-09 13:40:23 · 6511 阅读 · 0 评论 -
linux_pwn(4)--unlink&&hitcon2014_stkof&&hitcontraining_bamboobox
文章目录What is unlinkunsorted bin释放时候的关键源码接下来就是要绕过unlink checkpwn题思路例题保护机制add函数delete函数edit函数开始做题准备框架调试总结What is unlinkunlink其实是unsorted bin在free的时候的一个操作,他的本意其实也是合并空闲的块方便下一次分配,但往往我们可以通过unlink欺骗unsoted bin的空闲块管理链表,产生任意地址写的效果unsorted bin释放时候的关键源码else if (!c原创 2022-03-08 14:27:48 · 4390 阅读 · 0 评论 -
linux_pwn(3)--Chunk Extend and Overlapping&&roarctf_2019_easy_pwn
文章目录What is Chunk Extend and Overlappingpwn题思路例题保护机制add函数show函数delete函数edit函数开始做题准备框架调试覆盖后面一个块的大小释放堆块free验证机制尝试修改堆块开始泄露libc任意地址写总结What is Chunk Extend and OverlappingChunk Extend and Overlapping就是当我们可以控制chunk的header时候,通过修改原有块的头大小,产生堆块重叠比如说原来的两个堆块都是0x21原创 2022-03-07 20:42:18 · 3578 阅读 · 2 评论 -
linux_pwn(2)--double free&&qwb2018_raisepig
文章目录What is double freepwn题例题add函数show函数delete函数开始做题准备框架调试泄露libcdouble freeexp总结What is double freedouble free顾名思义,两次释放,在ctf里面一般就是对同一个内存块释放了两次,其实这个跟之前的uaf产生的方式有点类似,都是需要满足指针没有被置NULLptr=malloc(0x10)ptr2=malloc(0x10)free(ptr)free(ptr2)free(ptr)由于直接连续原创 2022-03-05 15:30:35 · 1319 阅读 · 0 评论 -
linux_pwn(1)--uaf
文章目录What is uafpwn题例题add函数show函数delete函数开始做题准备框架调试attackexp总结What is uafuse after free一般可能会有以下的场景ptr=malloc(0x10)free(ptr)ptr->可能写代码不会出现这样的明显错误,但如果多文件呢?可能你这个地方释放了,其他地方还存在引用所以项目中记住,free之后立刻ptr=NULLpwn题在ctf里面,一般uaf出题模式就是在bss开辟了区域,保存了每个heap的地址,原创 2022-03-04 16:02:11 · 1182 阅读 · 0 评论