
pwn
文章平均质量分 90
小汪lt
总有人间一两风,填我十万八千梦.
展开
-
栈迁移之变相增加溢出长度(pwn入门)
如果说,不给我们打印rsp也就是栈的地址呢,那我们怎么做?我们可以把栈空间迁移到另外一部分可读可写(rw)的空间里面去操作呀比如说哪些内容可读可写呢?.bss段就是常见的一个空间我们就可以把栈迁移到.bss段去迁移方式的话还是可以利用这个leave指令去操作,但是需要结合read函数了(输入函数)原理和本质还是一样。原创 2024-06-27 13:26:51 · 1048 阅读 · 0 评论 -
栈迁移之任意地址写(pwn入门)
很多时候,程序给的溢出空间不够,仅仅只能溢出到rbp,或者是返回地址,这个时候去构造rop链条打程序就行不通了,没有多余的空间给你去构造rop链条,那么我们可以使用栈迁移的技术,先在一个位置布置好rop链条,然后把程序的执行流迁移到我们布置好rop链条的位置,让程序执行流执行踏入我们布置好了的地方,就相当于之前的那种构造rop链条的手段,但是多了一个迁移栈步骤,这个下一篇博客会细讲现在就是讲下最基础的利用栈迁移实现任意地址写,也就是可以改写变量的值这里的关键一就是rbp指令,原创 2024-06-17 12:15:46 · 930 阅读 · 0 评论 -
栈溢出漏洞利用二,ret2syscall,构造rop链条实现攻击(pwn入门)
有点时候不存在/bin/sh字符串也是可以用这种攻击手法打的,就是使用read函数把/bin/sh写入.bss段,也可以控制程序执行系统调用,获取 shell。原创 2024-06-12 19:08:11 · 1143 阅读 · 0 评论 -
canary绕过感悟随记(pwn入门)
这个是假设总共要打70个长度,canary在0xc的位置,你刚开始打程序打到canary的位置总共是打了0x70-0xc计算一下就是0x64的位置了,那么,32位的机子.canary的值为4个字节,所以我们接收0x65,0x66,0x67就可以接收到canary前面的3个字节了.[0x65:0x68]左闭右开可以达到要求,而canary规定最后一个字节为\x00,用rjust(4,b'\x00')可以达到要求.rjust(4,b'\x00')这个的意思就是说,总共接收4个字节的数据,先接收完所有数据。原创 2024-06-05 23:29:12 · 1285 阅读 · 1 评论 -
破界圣剑---pwn常用且好用的工具使用分享(持续更新)
一个剑客怎么能少了一柄好剑呢?持续更新ing。原创 2024-06-02 19:50:10 · 1614 阅读 · 0 评论 -
栈溢出漏洞利用一,详解基本ROP,构造rop链条实现攻击(pwn入门)
基本ROP攻击手法的话其实还有一个最常用的,比赛经常出现的,也就是打syscall的ROP攻击链没有提到,下次有时间讲下打syscall的攻击手法,但是只有先把上面的两个ROP链的攻击手法会懂了,尤其是ret2shellcode,才能够有可能真正理解syscall的ROP攻击链,其实我自己对于ret2shellcode也仅仅是学了个入门而已,还有很多不懂的,还在学习ing.参考文章:CTF Wiki。原创 2024-05-29 17:57:18 · 1516 阅读 · 0 评论 -
栈上的格式化字符串漏洞【超详细,七种利用】(pwn入门)
格式化字符串漏洞由于目前编译器的默认禁止敏感格式控制符,而且容易通过代码审计中发现,所以此类漏洞现在已经极少出现了。所以格式化字符串漏洞在实际利用过程中现在几乎挖掘不到了,但是在CTF的pwn题中,由于其可以结合其他溢出漏洞利用,还是经常会遇到格式化字符串漏洞的。格式化字符串漏洞最早被Tymm Twillman在1999年发现,当时并未引起重视。原创 2024-05-24 21:48:03 · 2516 阅读 · 5 评论 -
ret2libc 泄露libc后构造system(‘/bin/sh‘)进行攻击(pwn入门)
上面提到了一个措施,ASLR,它在开启后会对共享libc,堆,和栈的地址进行随机化,所谓的随机化呢,就是偏移。接下来以star函数作为返回地址,以star函数作为返回地址可以使我们第二次栈溢出的时候不需要再按照程序逻辑输入2次yes而且star函数是唯一有栈溢出的函数,所以返回地址的正确选取很重要,之前有一次做题返回地址没选好,给自己增加了很多不必要的麻烦.......这个是最基础的32位的ret2libc,还有64位程序的也差不多,就是传参的方式变了,攻击的payload构造的思路是一样的。原创 2024-05-23 18:42:46 · 1713 阅读 · 6 评论