pwn
charlie_heng
这个作者很懒,什么都没留下…
展开
-
jarvisoj pwn level6 writeup
考完试了,又开始做题这题是一道很好的用来熟悉堆的题首先先确定漏洞的地方是delete note漏洞有两个 1. 没有校验对应的堆是否有free 2. delete完之后没有把指向堆的指针清除所以可以利用double free,触发unlink,达到任意内存修改的目的具体怎么利用在https://www.cnblogs.com/0xJDchen/p/6195919.html原创 2018-01-21 22:12:54 · 1753 阅读 · 11 评论 -
hackme inndy pwn leave_msg writeup
感觉有点做题做上瘾了。。。。。拿到程序,首先checksec看下开了什么保护,发现没开nx,但是开了栈溢出检测,然后又有堆,明显是把shellcode放堆里面去执行然后看了下,下标检查那里可以加个空格绕过,可以修改got表里面的函数为堆的值,调用函数的时候就会执行堆里面的shellcode但是这里有一个长度判断,大于8就会截断,放不了一般的shellcode这里绕过就比较骚了,首先...原创 2018-01-01 22:43:50 · 423 阅读 · 0 评论 -
hackme inndy pwn raas writeup
继续做题,之前一直对堆不是很熟,这次特地做一道堆的题来练手首先题目给了提示,是一道UAF可以看到,有3个操作,一个是新建,一个是删除,一个是展示删除和展示如上,新建的代码太长,我就简述下功能吧1.选择类型,数字还是字符串 2.如果是字符串,要输入长度 3.输入内容内存的操作是,先new了一个大小为12的堆,前8位放的是用于展示的函数指针和用于删除的函数指针 如...原创 2017-12-31 23:08:16 · 391 阅读 · 1 评论 -
hackme inndy pwn onepunch writeup
继续来做题目,这次的pwn主要功能是一个任意地址写一个字节,然后就结束。。。。然后找了半天。。。完全没思路。。。一个字节只能写一次。。。。然后找了下别人的wp,发现代码段居然可以写,那骚操作就可以有很多了这里比较写入的字节是否为255,是的话就输出No flag for you jnz loc_400773二进制是\x75\x0a 0a是偏移,我们只要把这个弄成负数,就可以...原创 2017-12-31 14:10:09 · 519 阅读 · 0 评论 -
hackme inndy pwn echo2 writeup
这题做了好久。。。但是学到了很多很骚的思路做完echo1 ,然后看了下echo2,本来以为只是简单的从32位变成64位,但是发现坑贼多。。。。首先,用checksec看了下,发现开了pie。。。那就不能简单的改got表,还要用格式化字符串漏洞来泄漏出一个指向程序本身的指针第二,因为是64位系统,所以一个地址是8个字节,但是这里实际只有6个字节是有内容的,有两个字节是00,所以就不能用p...原创 2017-12-30 23:00:42 · 874 阅读 · 0 评论 -
hackme inndy pwn rsbo writeup
因为rsbo和rsbo2是同一题,所以就直接做rsbo2了首先看看程序 init函数那里用时间和flag生成了一个seed,所以不能预测rand产生的值 然后是读了0x80个byte,这里有一个栈溢出但是接下来那个for循环就有点棘手了,想了半天想不到,就去看了下别人的wp,发现是送了104个字节的\x00,这里这样做的原因是当修改到v8的值的时候,可以修改为0,这样就跳出for循...原创 2018-01-01 20:36:24 · 652 阅读 · 2 评论 -
jarvis oj pwn calc.exe writeup
这题其实难是难在代码比较多,要审计比较长时间首先checksec,发现没开NX,估计就是要用shellcode了然后审计了一波,粗略发现了两个漏洞 1. 没有检查calloc出来那几个堆是否满了,有可能会溢出到下一个堆,但是这里用不了,所以不详细说了 2. 使用var ,可以添加add sub等已经存在的函数,从而实现替代了函数功能的作用这里用的就是第二个漏洞 var add =...原创 2018-02-19 20:09:32 · 517 阅读 · 0 评论 -
jarvis oj pwn xwork writeup
这题没libc,因此利用起来比较麻烦,而且它还去掉了那些one_gadget首先漏洞很明显,可以use after free,所以可以进行fastbin attack,但是fastbin attack会检查size,所以只能控制某些地方的内存,但是之后怎么用呢? 想了半天,想出一个比较长的利用链,如果有其他比较简便的方法,欢迎交流!利用链如下: fastbin attack -> ...原创 2018-02-21 21:56:58 · 613 阅读 · 0 评论 -
pwnable tw Death Note writeup
pwnable tw的题做到后面越来越骚了……脑洞太大…这题其实是printable shellcode 一开始完全没思路,后面搜了下,发现了一个神器https://github.com/VincentDary/PolyAsciiShellGen能将shellcode转化为可打印字符看了下生成的shellcode,发现其实它是利用 sub eax,xxxx 来将eax设置为任意值,...原创 2018-03-01 18:00:01 · 1109 阅读 · 0 评论 -
pwnable tw Starbound writeup
这题漏洞很明显,选择菜单的时候可以输入负数,然后可以在name那里填入想调用的函数,这样就可以实现任意地址执行但是有了这个之后怎么用呢??这个就有点难度了,本来是想看一下栈,看看有没有可以用的参数,但是发现基本都用不了…….然后想了下,这题没有给libc,又没有system,那么多半是ret2dl_resolve那么ret2dl_resolve又需要rop,那么这题应该就是rop了...原创 2018-03-02 11:54:55 · 944 阅读 · 2 评论 -
pwnable tw BabyStack writeup
这题做得好难受…..首先漏洞很明显是strcpy那里,可以strcpy超过0x3f个字符串然后login,以\x00开头的话,就可以过login了一开始我是想先泄漏程序的其中一个地址,然后利用stackOverflow 来rop一波的,然后发现,strcpy只能复制到\x00前,所以只能用one_gadget 来一发get shell但是这里还有canary要过,这里很明显就是利用...原创 2018-03-02 20:49:37 · 1582 阅读 · 0 评论 -
Xman 选拔赛 NoLeak writeup
很久没发博客了,就随便写一下吧 想出一道House of Roman的题,然后去找了下类似的题目,记起来选拔赛的时候好像有一道NoLeak,那时候队里面的师傅做了,我就懒得做了,现在回顾了下,发现根本不用house of Roman就能get shell,直接partial write就可以写malloc hook,然后将shell code 写到bss段,跳到bss段get shell下面...原创 2018-08-09 13:39:51 · 800 阅读 · 0 评论 -
hackme inndy pwn notepad writeup
做完这题就剩下最后一题了。。。。这题其实还是有点难度的先说下这题的漏洞在哪里在notepad_open这个函数里面,读取要执行哪一个函数的时候,没有验证范围,所以可以输入比a小的字符,执行上一个堆里的某个指针但是有了这个漏洞,怎么利用呢?参数只能是当前堆想了半天,终于想出来了先new 4个small bin,然后用这个漏洞free掉第三个堆,再用它给的delete not...原创 2018-01-03 19:08:41 · 435 阅读 · 0 评论 -
hackme inndy pwn tictactoe writeup
昨天立的果然是个flag。。。。还是忍不住做了这题ai其实很容易破,有个任意内存写,直接写到胜利就可以了但是怎么get shell呢?看了下,发现初始化的时候把一段地址设为可写了,那段地址存的是DT_SYMTAB之类的地址,所以很明显,这题是ret2dlresolve,那么怎么改呢?最快的方法是改DT_STRTAB,当执行到memset的时候,把它的字符串变为system,然后再将...原创 2018-01-03 11:48:10 · 554 阅读 · 0 评论 -
pwn jarvis itemboard writeup
这题真心坑。。。本地做出来了,但是连上服务器就不行,目测是堆地址中有一个\x00。。。。这题有几个漏洞第一个是,没有对new item 的大小做判断,可以越界直接rop 第二个是,delete_note的操作其实并没有用,只free掉了,但是array那里还存着地址,所以就可以uaf其实这题单纯uaf都可以做出来的,但是rop也可以用上来说下思路 1. 获取libc地址原创 2018-01-22 19:45:41 · 641 阅读 · 3 评论 -
jarvisoj pwn inst_prof writeup
这题其实是google ctf的一道题 看到的时候完全震惊了。。。4字节shellcode。。。这要怎么弄啊 想了半天想不出,然后看了下别人的wp,又一次被震惊了,还有这种骚操作。。。在执行shellcode的时候,r14这个寄存器是不变的,所以可以用r14这个寄存器来存一些重要的东西然后就是怎么get到shell 呢?我这里来一套别的骚操作,不用别的wp里面的rop首先先来说原创 2018-01-23 20:52:50 · 740 阅读 · 2 评论 -
jarvis oj pwn hiphop writeup
这题真的感觉挺新颖的首先说下这题的漏洞是什么条件竞争!一开始我看到这题是懵逼的,为什么好像常规的下标越界,缓冲区越界之类的都没有 然后其中一个功能又非常奇怪,要开线程? 然后看到这个函数里面某个地方一大堆sleep,于是就猜是条件竞争了这题是打boss,然后每次都会随机一下出招,只要能预测出出招是什么就能防御 然后回想起以前打pwnable的一题,也是同样靠本地的时间与服务器原创 2018-01-24 16:24:43 · 382 阅读 · 0 评论 -
sharif ctf pwn suctfdb writeup
这两天打了一下sharif ctf,比赛平台居然在打着打着的时候被墙……这题一拿到的时候真的一脸懵逼,python??? so???后面静下心来,仔细看了下,发现漏洞多得不得了。。。。其实主要内存操作都在so里面,所以结合着python代码和so来看就可以了因为这题可以任意写db的内容,所以可以实现,写任意地址,读任意地址,控制流劫持虽然有这么多东西,但是利用起来还是有点麻烦的原创 2018-02-04 20:17:31 · 625 阅读 · 0 评论 -
sharif ctf pwn t00p_secrets writeup
这题在比赛的时候没做出来,现在回顾一下,发现其实漏洞挺多的,而且还挺好用的…..(打比赛的时候真的是当局者迷,旁观者清….漏洞:主要的漏洞有两个,两个漏洞都可以分别达到任意内存写,任意内存读的效果1. 堆off-by-one当选择字符串的类型的时候,会将读取的字符串后的那个字节置为0,当读取的字符完全占满malloc申请的内存之后,会将下一个堆的size的一个字节置为0...原创 2018-02-09 11:25:12 · 510 阅读 · 0 评论 -
34c3ctf SimpleGC writeup
看到这题,堆,难度标着是easy…..然而做起来真的感觉GG其实这道题的漏洞也挺明显的,edit_group那里没有检查下标,下标可以到group那里,然后就可以实现任意地址写但是想起来还是很麻烦的,想了半天才想到一种最快捷的办法先create_user 然后group的name最后8个字节为要任意写的地址然后delete这个user这个时候程序按顺序干了几件事 1. 将g...原创 2018-02-09 19:19:22 · 364 阅读 · 0 评论 -
pwnable.kr ascii_easy writeup
兜兜转转,又回来这里刷题这题讲真有点难度,虽然在实际比赛的时候比较少可能会出现这类题……..很明显可以用rop,但是rop链只能全部为ascii可见字符…..这就有点难度了这题其实我想了好几种办法,但是实际用了只有一种,不过在这里也说下利用rop链将ebx的值改为libc中got表的地址,然后跳转到one gadget 这个本来感觉是最快捷的办法,但是将gadget过滤掉一部分...原创 2018-02-12 14:40:23 · 1758 阅读 · 0 评论 -
pwnable.kr fsb writeup
打完之后看了下别人的wp…..发现我的完全是邪道……(后面又仔细看了下,发现并没有太邪道,其实也是差不多 因为用ssh登录上去执行,所以可以把输出重定向一下 /dev/null 2>&1 这样就可以避免因为传输东西太多而卡死然后可以直接用下面payload%134520928c%14$n%20$n%134520932c%14$n%20$n之后就可以拿到一个sh...原创 2018-02-12 18:18:00 · 611 阅读 · 0 评论 -
hackme inndy petbook writeup
这题一直没人做,感觉好像很难,其实是自己吓倒自己这题的漏洞其实很明显,就是没有初始化对象,所以可以控制新new出来的user的pet的地址和post的地址这里说下怎么控制·1. new一个比一个user大,即大于536字节的post 2. edit这个post,将这个post弄成更大的,这个时候realloc会把原来的堆给free掉,然后再new一个新的堆 3. 这个时候再new一...原创 2018-02-16 20:20:19 · 480 阅读 · 0 评论 -
hackme inndy pwn stack writeup
这题看起来很恐怖,所有保护都开了,但是其实并没有想象中难这题先pop 两次,再push回去一个,然后再push下标,就可以直接绕过canary,把ret的地址给leak出来再减去libc里面的__libc_start_main偏移,再把低三位给清零就得到libc基址之后就是常规rop了,这里直接执行system(‘/bin/sh’)下面就是利用的代码from pwn imp...原创 2018-01-02 15:55:58 · 495 阅读 · 0 评论 -
hackme inndy pwn veryoverflow writeup
这次是最后一题了,做完这题一定要去复习!!!!(立了个flag。。。这题有两种思路做,第一种是return2dl_resolve 第二种是泄漏libc,rop运行system(‘/bin/sh’)因为想完美一点,所以一开始写的是第一种,写完了,在本地get到shell了,连到服务器,结果不行,一看,栈的地址开头是ff,这个也代表eof。。。不吐槽了,现在来分别说下两种思路是怎么做的其...原创 2018-01-02 21:47:51 · 569 阅读 · 0 评论 -
LCTF2017-2ez4u writeup 另一种思路
之前没怎么用过largebin attack,于是搜了下题来做 审计了下,有个UAF漏洞,PIE开了,能打印,那跟fengshui那题差不多了于是骚操作了一波,leak出libc基址,unsorted bin attack攻击malloc_hook上的位置,其实这里攻击free_hook上面的也是可以的,然后fastbin attack直接控制_malloc_hook,填one_gadget...原创 2018-08-11 12:14:45 · 716 阅读 · 1 评论