
pwn练习入门
文章平均质量分 75
主要对于buu、nss平台的简单的练习题做一些梳理,顺便记录一下自己的学习过程
菜菜的屑语言之路
这个作者很懒,什么都没留下…
展开
-
[how2heap]fastbin_dup_into_stack.c(5)
这玩意虽然上一节讲过了,这里决定再复习一下,顺便用buu平台的一个例题来简单说一下到底怎么打(如果你熟悉我们上一节的知识点,你肯定还是会存疑,比如怎么改栈上的地址?怎么完成栈的攻击?这些,希望这里这个例题可以完成这些疑惑的解答)原创 2025-01-21 16:47:26 · 674 阅读 · 0 评论 -
[buu]ez_pz_hackover_2016
所以这里我们回到的地址应该是在0x0xff8c1e90这个地址上,接下来我们有的地址是0xff8c1eac,怎么表示这个地址呢?这里很可能存在溢出了,这里可以控制我们返回地址的写入(当然这个题在这里打ret2libc也是可以的,但这里libc基地址不太好算(要不传统打法返回两次,这里返回打起来有点点麻烦没shellcode快))(这里其实我们有两个程序栈,一个是chall对应的栈,另一个是vuln对应的程序栈(这个理解成代码需要的内存空间),但这个算出来最后其实不是我们实际要覆盖的返回地址)原创 2024-12-23 00:29:18 · 400 阅读 · 0 评论 -
[World Wide CTF 2024]Buffer Brawl
其次就是这个版本下的system函数0x0050d70,注意这个0d70,他刚好对应的是/p,所以这里会被截断,所以上面那个脚本死活也打不通(这里我在调试的时候其实也看到了,就是这个system的地址死活写不进去,到这里就会开始抛异常,一直以为是栈没写对,长见识了)p1前半部分泄露的地址相当于在调用plt,加上后面的got就可以泄露地址了(因为程序本身就是循环的,所以不用返回)正如我们一开始分析的那样,后面就是打打我们的栈,填上我们的canary,然后ret2libc就完了。原创 2024-12-13 21:45:52 · 831 阅读 · 0 评论 -
[World Wide CTF 2024]WhiteRabbit
根据我们一开始说的,这个gets其实存了,(可以理解为我已经写进去了,但是还没有实现调用),所以最后一步就是实现这个rax的调用(这里其实call rax/jmp rax/甚至返回到main上面都可以实现,本质上其实是想实现这样一个ret的过程)(基于x86的调用机制决定,函数的输出结果必须存储在rax,所以get函数的输出结果(也就是我们输入的包含有地址的)也存在rax寄存器里面)第一种方法:翻你的汇编代码,有jmp rax的/call rax的,直接base加上去就可以了。超级明显的一个栈溢出漏洞。原创 2024-12-11 20:19:09 · 424 阅读 · 0 评论 -
[CISCN 2022 初赛]login_normal
CISCN 的一道(对我而言不)简单的pwn题。。。原创 2023-05-21 22:28:21 · 576 阅读 · 3 评论 -
[SWPUCTF 2022 新生赛]InfoPrinter
所以我们大概的思路就是泄露libc地址算出system地址,强改为system,#用的libcsearcher,远端多试几个就完事。利用puts(xx),强改为bin/sh。输入可以得到我们输入字符串的位置在。可以看到data中位于这个位置。就可以获得偏移量是6。原创 2023-08-22 16:46:49 · 251 阅读 · 1 评论