
PWN的学习
文章平均质量分 55
学习pwn
双层小牛堡
这个作者很懒,什么都没留下…
展开
-
1.Buffer_Overflow-2.Stack_Overflow / 写入字符串
发现有shellcode 但是我们没有办法执行shellcode 因为v5 不会等于后面的。因为如果和以前一样 在ret上写入 就不会返回 因为这次我们写入的是字符串 不是函数。进入 发现 var_8就是8 所以我们只需要将垃圾字符覆盖到 var_8。我们发现我们写入的应该是多少后 我们应该确定垃圾字符的大小。我们在这里能发现 原来v5的地址在 rbp+var_8。所以我们还是需要通过 gets的ret返回。这里我原本没有想法 后面进行看看他的汇编。其实就是我们输入的时候输入。原创 2023-05-18 16:59:00 · 605 阅读 · 0 评论 -
1.Buffer_Overflow-1.Basic_Jump
github上面的练习题然后开始做先进行 readelf然后进行执行看看 是怎么回事./buf1发现就是一个输入和输出我们checksec看看发现stack 保护关闭 开启了NX保护我们进入ida64看看反汇编我习惯先看看字符串 SHITF+F12发现/bin/sh我们先去主函数看看有什么漏洞进入一个函数 getName我们能看见 给了一个数组然后下面又有一个fgets函数fget()和get不同 不会无限输入但是这里fgets 发现读取的大小为100 但是我们的s 只有15。原创 2023-05-17 21:01:48 · 474 阅读 · 0 评论 -
CTFWIKI-PWN-ret2libc
一遍我们只能找到got表的泄露 我们要写入的话就要重新执行一下 所以等等通过把start的地址存入返回地址 让程序执行两次。puts函数的真实地址 和 通过LibcSearcher工具得到的偏移量 就可以计算出每个函数的基地址。这里有一个问题 为什么我们需要找到开始的地址 _start表示程序开始的地址。如果我们无法找到system的plt地址 那我们就无法调用system函数。不是地址不会变 是函数和puts真实地址的之间的链接是不会变的。所以我们只要使用puts函数的真实地址 求出他们之间的链接。原创 2023-04-20 19:12:37 · 1217 阅读 · 0 评论 -
CTFWIKI-PWN-ret2syscall
该题目是在32位下。原创 2023-04-19 20:41:36 · 679 阅读 · 1 评论 -
BUUCTF-PWN-[第五空间2019 决赛]PWN5
这题考到 格式化字符串的方法 我之前没有学过 根据wp写完这题去看看原理下载打开环境checksec看看发现有三个保护 nx打开 所以无法写入shellcode现在看看ida32发现/bin/sh进去看发现就在主函数里面我们进行代码审计 发现输入名字 他会返回名字 然后再输入密码 如果密码和unk_804c044一样 输出shellcode我们看看这个函数是什么搜索一下发现是随机数 这样我们就无法通过判断得到shellcode我们现在又两个方法。原创 2023-04-17 20:25:03 · 516 阅读 · 0 评论 -
PWN-ret2shellcode原理
我们之前做过很简单的pwn题目buuctf-rip这种 是在程序中存在shellcode 直接返回地址改为这个shellcode的地址即可但是如果程序里面没有呢这种类型就是ret2shellcode。原创 2023-04-17 13:10:23 · 634 阅读 · 0 评论 -
CTFHUB-PWN-ret2shellcode
几个大方向的思路:没有PIE:ret2libcNX关闭:ret2shellcode其他思路:ret2csu、ret2text 【程序本身有先检查开了什么保护没有开保护 并且是64 的放入ida64查看字符串发现没有shell我们看看主函数发现有read函数 但是没有shell我们现在要确定一些信息。原创 2023-04-16 14:59:00 · 1210 阅读 · 0 评论 -
CTFHUB-PWN-ret2text
然后我们可以开始写payload。下载文件 checksec看看。然后看看shell的地址是多少。放入ida64 查看字符串。然后看看主函数怎么输入。原创 2023-04-16 12:26:32 · 190 阅读 · 0 评论 -
BUUCTF-PWN-jarvisoj_level0
发现buf 占80字节 加上64基地址的8字节 我们就需要0x88个字节填充满。果然就是输出hello world 然后输入。这道题也是栈溢出 但是有不同的函数。发现/bin/sh 漏洞代码。进去发现果然没有使用这个函数。放入ida64 查字符串。我们重新回到main函数。这样我们就可以栈溢出。我们可以开始写exp。原创 2023-04-15 09:31:12 · 133 阅读 · 0 评论 -
BUUCTF-PWN-pwn1_sctf_2016
就刚刚好满足了get的溢出 然后再输入4个垃圾字符 就可以 实现函数返回 再将 get flag返回地址填入即可。因为you占3字节 我们只能输入 32个 一个i =三个字节 所以我们输入 20个I 就可以占 60 字节。原本看别人的博客 是说replace函数替换了 但是 我看不明白 很简单的办法。然后进行发现是32 所以我们记住 如果栈溢出漏洞 我们需要4个字节填满基地址。发现get 但是只能输入 32个 所以无法实现栈溢出。发现进行了替换 这样我们就可以执行栈溢出。原创 2023-04-13 19:12:16 · 593 阅读 · 0 评论 -
BUUCTF-PWN-ciscn_2019_n_1
我们可以使用栈溢出 我们看看 v1函数的地址 是30h 然后是64位的 所以 基地址是8字节。我们发现了system 然后get()函数。所以发现system的地址 开始写exp。发现是64位的 然后 放入ida。我们开始查看 system的地址。发现 cat flag。原创 2023-04-13 13:59:20 · 393 阅读 · 0 评论 -
BUUCTF-warmup_csaw_2016
64位的linux文件。原创 2023-04-11 18:57:28 · 474 阅读 · 0 评论 -
BUUCTF-rip
看了这个文章 我起码能理解我们栈溢出的目的在做题之前 我们需要先理解栈的存储方法从上往下看 就能理解入栈说回这道题目为什么这道题目是栈溢出。原创 2023-04-11 15:56:39 · 725 阅读 · 5 评论 -
BUUCTF-PWN-test_your_nc
有了这个代码 我们的权限就会得到提升,我们就能够查看电脑上的其他文件,获取flag。可以把它理解为一把开启flag宝箱的钥匙。pwn 是为了能够得到最高权限的目的 pwn掉服务器 我们就能获得最高权限 来控制电脑。得到信息 我们把文件放入 ida64。很轻松的就能使用代码ls 来展示文件。得到 文件 与 ip 端口。从这道题我们能理解PWN。并且我们发现flag。原创 2023-04-11 14:47:52 · 291 阅读 · 0 评论