- 博客(29)
- 收藏
- 关注
原创 攻防世界5
发现这题的system有点问题,后门需要我们自己输入,刚好有bss我们直接用它。打开main函数发现hello双击进入。这里我们发现栈溢出了,双击name。知道system的地址。
2024-10-31 19:25:53
509
原创 [SWPUCTF 2022 新生赛]InfoPrinter
我们发现这道题是没有binsh和system的,加上题目给我们的libc我们知道这里需要我们自己计算地址。双击puts(xx),我们发现它存在data段中,我们修改它为system('/bin/sh')返回main,我们发现这里泄露了puts的地址,我们可以计算出它的基址。我们看到了No RELRO知道这里的got表是可以修改的。看到了printf(s)发现是格式化字符串漏洞。查看发现是个64位文件,打开了canary。
2024-10-28 14:06:11
507
原创 [MoeCTF 2022]endian
查看发现是64位文件,且看到了amd64-64-little(这里是小端序)如果相同,则条件成立进入 if 语句块,得到后门。查看main函数,发现了%d%d标准输入读取。strncmp函数用于比较两个字符串的前。使用x/gx得到0x4008a9中的值。的前 8 个字符是否与字符串。
2024-10-27 20:17:10
636
原创 NSSCTF(PWN)16
这里可以看到如果调用变量temp的值为1时,那么函数就会调用system("/bin/sh");// 从标准输入读取一行。// 尝试清除标准输出缓冲区。的值不在1到12之间,打印一条错误消息,并使用。终止程序,我们要输入一个1-12的值。发现这道题有system和binsh。确保错误消息立即输出,然后调用。
2024-10-24 20:08:50
454
原创 攻防世界4
不知道什么原因,这道题的附件整不出来。那我们就认真看看题目。我们先创建一个文件py,在里面输入python代码。发现题目已经提示我们了,这里涉及到了RSA加密。依次配置好环境,我们再nc一下端口。首先我们的ubuntu要有。gmpy2,没有就安装一个。
2024-10-21 16:11:27
389
原创 攻防世界3
发现buf输入数据的地方距离seed是0x40(0x50-0x10),填入0x40的垃圾数据修改seed。打开main函数,发现seed这里涉及了生成随机数,这是一个srand函数文件。发现是64位文件,canary(金丝雀)没有开启。
2024-10-14 09:35:53
520
原创 攻防世界2
fgets(s, 32, stdin)限制读入32位字符,无法利用。__isoc99_scanf("%s", v2) 典型的栈溢出。覆盖v2-v3,覆盖为cat flag的函数地址。发现cat flag。
2024-10-13 20:29:17
445
原创 NSSCTF(PWN)13
先将两个密码对比定义 然后因为溢出时0x10 所以我们0x20-0x8也就是canary绰绰有余 不能溢出canary p64(0)是ROP链的返回地址 随便填什么。注意:这里不能使用sendline因为会添加换行符 因为read只接受16位 而V2已经16位。查看发现这个函数中V2进行了加密,且在memcmp中进行了buf和V2的对比。我们进入gdb在read(0,buf,0x10ull)处的地址下断点。找到call memcmp 找到与memcmp中对应的s2。用x/8xg 找到密码。
2024-10-09 20:08:16
371
原创 NSSCTF(PWN)9
发现这是一个64位文件发现vuln双击进入我们发现第14行涉及栈溢出,且第7行告诉我们这里伪随机数种子是39,第11行这里涉及随机值判断我们运行写好的c语言,得到这个伪随机数发现这题有system和binsh找到他们。
2024-10-07 20:27:06
482
原创 NSSCTF(PWN)8
是32位文件main函数里发现了dofunc双击进入发现了read这里涉及了典型的栈溢出发现没有binsh只有system,我们可以把之前找到的buf双击点开发现bss当做binsh用,这题涉及到了shellcode注意这题的system里没有binsh要我们自己搭建一个binsh框架。
2024-10-07 15:15:07
484
原创 NSSCTF(PWN)7
查看main函数,发现这道题有encrypt(),encrypto 功能会对输入的数进行修改。发现这道题是没有binsh和system的,我们就用ret2libc来做。在这里我们发现gets危险函数。得到本题的ret和rdi。
2024-10-02 12:58:09
197
原创 NSSCTF(PWN)6
题目虽然很简单,但是flag有点难找。flag在root下的ctf里面。进入main发现vulnerable()双击进入。感冒了今天偷个小懒........发现了system和binsh。查看发现是32位文件。
2024-10-01 19:49:05
167
原创 NSSCTF(PWN)5
使用checksec知道是64位文件发现print_flag我们双击进入发现flag藏在这里面,我们回头去看if(v5)的条件,知道我们V5不能为0,这里涉及了栈溢出这个是我们要溢出的栈,直接b'a'*(0x1F+0x8)还有一种方法直接nc然后输入大量字符。
2024-09-30 20:38:06
471
原创 NSSCTF(PWN)4
使用checksec发现这是64位文件查看main函数发现这题涉及到了栈溢出我们点开第一个read,name发现位于bss段中,就想到这里涉及到了shellcode,但是使用 shellcraft 默认生成的字节数是 44 字节,这里最大输入数才25字节,所有不能使用默认生成。
2024-09-30 13:23:30
370
原创 [NSSCTF 2022 Spring Recruit]R3m4ke?
打开main函数发现gets,典型的栈溢出。checksec 发现是64位文件。找到system和/bin/sh。
2024-09-29 20:30:24
217
原创 NSSCTF(PWN)2
checksec看一下文件,发现是64位的查看main函数,有read涉及栈溢出,这里要打印一下name,整形数字要小于10,我们用到-1发现有system和binsh。
2024-09-28 20:18:27
345
原创 安装ubuntu以及pwn的环境搭建
推荐pwn方向Pwn环境搭建基本工具:gdb+peda+pwndbg、gcc、Pwntools、Capstone、gcc-multilib、socat、rp++、readelfROPgaget、libc-database、objdump、file、string、checksec 本人推荐清华大学开源软件镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror本人安装的是ubumtu20.04.6,这个版本有些问题,将就用用。下载好镜像进入VMware新建一个虚拟机,
2024-09-27 15:25:06
2189
1
原创 BUUCTF(PWN)
看到19行,我们知道要输入一个63十进制转换41十六进制的字符长度,然后我们看到atoi知道这里是一个偏移量,804c044开头,我们知道要输入名字的数和密码数一致才能获得flag,这里我们用到了随机生成数。因为前面我们得到了他要输入的偏移量的16进制是41,所以我用AAAA %8x %8x %8x %8x %8x %8x %8x %8x %8x %8x %8x %8x。我们看了main知道了这里存在格式化字符串漏洞,我们只要将判断atoi改成system,手动输入/bin/sh字符串。
2024-09-27 13:29:48
730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人