- 博客(9)
- 收藏
- 关注
原创 pwn入门-buu刷题第三页题解(32道)(持续更新中)
这个0x400A28的位置,然后程序就会根据我们rbp的值再加上一些偏移,赋值给rsi,最后实现往0x123000+偏移的地方写值,但是这里的0x38的字长,再加上偏移还是不够我们写orw,所以我们可以再执行一次read,来获取更多的字长,然后如果在调试时发现位置不对的话,可以通过nop滑梯滑到正确的地方执行orw。即可getshell。通过unlink,我们可以改变itemlist里面的值的内容,从而来改变show的位置,然后再泄露libc_base,然后由于这道题的got表还是可写的,那么随便打了。
2024-07-27 23:40:37
617
原创 暑假第一周周报(7.3~7.8)
House Of XXX 是 2004 年《The Malloc Maleficarum-Glibc Malloc Exploitation Techniques》中提出的一系列针对 glibc 堆分配器的利用方法。但是,由于年代久远《The Malloc Maleficarum》中提出的大多数方法今天都不能奏效,我们现在所指的 House Of XXX 利用相比 2004 年文章中写的已有较大的不同。
2024-07-11 10:22:47
539
原创 某不知名ctfer选手的第四周周报
点进E26函数确实是堆溢出中的offbyone漏洞,这里的a2来自于我们编辑是想要的size,a1来自于堆管理器分配给堆块的size,那么只要我们输入的write的size比堆管理器给的大10,那么就会给我们一个offbyone漏洞(太棒了,以后做程序员就这样写程序,不给工资就直接进自己写的后门)。也不知道是不是我刷的题目太少了,感觉现在遇到的堆题都是堆溢出的题目,然后通过其他的漏洞结合来实现攻击,还是说堆题本来就是这样的?可以看到这里进行了两次系统调用,为0的是read,为1的是write。
2024-06-02 22:34:45
724
原创 pwndbg如何更改字体的颜色(保姆级教程)
真是不容易啊,我在各大搜索引擎找如何改pwndbg的输出颜色的内容,没找到一个合适的,最后还是自己看源码改的,嗯,看来看源码是一个好习惯。好了,我就不和大家说我的踩坑历程了,直接上吧。
2024-05-23 00:40:47
277
原创 某不知名ctfer选手的第三周周报
之前忘记和大家说了,就是在第二周周报的时候写了一个神秘的一题目,heap_uaf1和heap_uaf2忘记和你们说libc的版本和攻击原理了,其实这点在打堆题目的时候是很重要,之前我周报写的那个神秘的一题目就是打的glibc2.27的Tcache,那么现在我们来打一下fastbin这种题和Tcache的区别就是能改的少很多,和多了一个对size的检查机制。然后其他的利用手段都是和Tcache是差不多的,OK,下次给你们讲offbyone和offbynull。
2024-05-22 01:33:45
1211
原创 某不知名ctfer选手的第二周周报和XYCTF部分题解
free()函数一个hook也就是__free_hook,当在执行free函数的时候,会先检查有没有hook,如果不为0,那么在free(i)时就会把__free_hook作为函数指针调用,这时rdi会是原本要free的堆块指针,那么聪明的人已经能想到怎么攻击了,没错就是把__free_hook改成system,再把要free的堆块填入字符串,那么在free这个堆块时,就可以执行system("/bin/sh")了。那么问题来了,,这个固定大小为0xc的堆块保存的是什么内容,执行的是什么功能呢?
2024-04-28 23:29:29
882
1
原创 某不知名ctfer选手的第一周周报
不知道你们是不是有时候会遇到这种情况,你们可能是想对%6$p对应的地方写值,但是这个它是对指针进行操作的,那么%6$p对应的地方,也就是rsp对应的地方它的值是0x1,可能我们的意是想把通过%255c%6$n把0x1改成我们需要的值,但是格式化字符串会把0x1解析为一个地址,那么我们对0x1这个地址写值,当然会不可避免的出错,所以我们要想办法把一个指针指向rsp的位置,那么就可以对rsp保存的指针保存里面的值进行修改了。直接让我们的编译器模拟环境,然后就可以通过c语言代码模拟生成的v5的值,就可以了。
2024-04-22 00:41:28
915
3
原创 pwn入门-buu刷题第二页题解(32道)(更新完毕,下一章见)
通过控制返回地址来执行程序执行流的变化,也即是说我们并不是在执行我们写入在bss段的代码,因为真正的代码不是写作bss段的,应该位于text段。OK那我们接着讲,我们可以在s的地址里写入ret2libc的代码,然后执行它,泄露libc的基地址后再跳转回来,再用one_gadget来getshell,之前已经写过一道栈迁移的题目了,所以在这里就不多加赘述了。由代码易知,这个函数的功能是先搜索flag.txt文件,如果找到了则打印出来,如果没找到则退出程序,再看一下vuln函数里面有什么。
2024-03-21 13:08:43
992
2
原创 pwn入门-buu刷题第一页题解(32道)(更新完毕,下一章见)
可以发现我们输入I之后被替换成了you,那么根据这个特性,本来只能输入32个字符的fget函数,我们只要输入适当的I,再构造合适的payload,那么在执行这个strcpy(s, v0)函数时就可以发生栈溢出。这个函数的目的是打开名为 "flag.txt" 的文件,从该文件中读取最多 45 个字符,并将结果存储在 fl4g 数组中。寒假做过的,现在可能有点忘了,写一下题解的同时巩固一下自己,同时供各位正在入门pwn的师傅参考一下,写的不好的地方希望有师傅多多指教,第一次写博客,写的不好的地方还请见谅.
2024-03-10 10:01:05
1138
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人