pwn
qq_45692883
这个作者很懒,什么都没留下…
展开
-
NSSCTF刷题笔记pwn10——[2021 鹤城杯]babyof
朴实无华的栈溢出,没有system函数,也没有/bin/sh字符串,也没有给libc文件。这是通过libcsearcher获取偏移的代码,可惜在这题好像行不通,但是思路是这样子的。通过泄露目标的函数地址,我可以确定目标使用的是这两个libc文件。然后是修改过后的代码,基本上没差。但是我们有puts可以泄露数据。原创 2024-02-02 20:35:37 · 386 阅读 · 0 评论 -
NSSCTF刷题笔记pwn9——[GFCTF 2021]where_is_shell
然后首先要注意这是64位的程序,参数会依次存放在rdi,rsi,rdx,rcx,r8,r9这6个寄存器中,多的存放在栈中。$0也是可以被当做shell执行的,因此我们去掉前面一位,取出shell的地址是0x400541。然后我们还需要一个ret的地址,否则本地能打通,远程打不通。存在一个提示函数,代码报红,说明存在问题,看一下机械码。有system函数,但是不存在/bin/sh字符串。可以看到\x24 \x30对应的是$0。main函数,存在很明显的栈溢出。找到地址 0x4005e3。原创 2024-02-02 16:47:15 · 676 阅读 · 1 评论 -
NSSCTF刷题笔记pwn8——[NISACTF 2022]ezpie
既然泄露了main的真实地址,那么我们通过偏移也能知道shell的真实地址。所谓pie保护啊,就是data、text段载入内存的时候,地址会被随机化。main函数,里面调用了vuln函数,并且泄露出自己main函数的地址。内存中main地址 + 偏移 = 内存中shell的地址。文件中shell地址 - 文件中mian地址 = 偏移。看了一下pwn的保护,开启了pie保护。shell函数,是我们要获取是后门。知道了这些,那么就可以写代码了。vuln很显然是个栈溢出。原创 2024-02-02 16:01:09 · 346 阅读 · 1 评论 -
NSSCTF刷题笔记pwn7——[watevrCTF 2019]Voting Machine 1
main函数,打印一串大小,看到gets函数,存在栈溢出。可以看到输入的AAAA距离返回地址差10个比特。找到一个读取flag.txt的函数。那么写代码,控制流到这个函数试试看。看了一下没有找到system函数。原创 2024-02-02 15:30:52 · 482 阅读 · 0 评论 -
NSSCTF刷题笔记pwn6——[NISACTF 2022]ezstack
这个shell会使用system函数打印一串内容,并且发现我们读入的数据大于buf的大小,存在栈溢出。栈溢出,system函数,/bin/sh字符串,那么万事已经具备了,开始写脚本。按下shift+12,在字符串界面找到/bin/sh。用ida打开,有一个shell函数。原创 2024-02-02 15:10:22 · 349 阅读 · 0 评论 -
NSSCTF刷题笔记pwn5——[BJDCTF 2020]babystack2.0
在gdb中,我们可以看到栈溢出的大小是16+8,24字节。使用gdb动态调试,找到栈溢出的大小,ida提示是4。在read中参数nbytes是一个无符号的整数。那么即可为我们写入255个数据,就完成栈溢出。我们发现对比时nbytes是一个整数。估计栈溢出就发生在第二个参数传入时。首先问我们要一个数字,要小于10。而我们最多只能写入9个长度的数据。-1在无符号数中代表255。然后再问我们要一个值。原创 2024-01-30 19:17:14 · 383 阅读 · 0 评论 -
NSSCTF刷题笔记pwn4——[NISACTF 2022]ReorPwn?
下载好文件,直接运行,发现就可以执行命令了。那这里介绍一个可以颠倒字符串的命令:rev。那么很简单就做出来了。原创 2024-01-30 18:42:32 · 302 阅读 · 0 评论 -
NSSCTF刷题笔记pwn3——[CISCN 2019华北]PWN1
我们直接覆盖掉返回的地址,返回的地址我们填从result=system("cat /flag")开始即可。这里是ida识别出来的v1距离rbp的长度是0x30,然后程序是64位的需要距离返回地址还差8字节。使用ida打开,这里要判断v2要等于11.28125,但是v2压根就不能被改变。gets是栈溢出漏洞的常客了,因为他不会限制我们输入多少内容。差不多就是这里: 0x4006be。知道了这些后,开始写exp。原创 2024-01-19 19:54:20 · 562 阅读 · 1 评论 -
NSSCTF刷题笔记pwn2——[LitCTF 2023]只需要nc一下~
连题目的附件都没给,只留下这段提示,那么拿出nc连接试试看,是不是真的有那么简单。有点像在玩躲猫猫,这个123456是假的,根据提示flag应该藏在环境变量中。/etc/profile,不过cat之后会跳出,不懂什么情况,是文件太大了吗。按理来说我们也可以查看环境变量的配置文件。也可以使用env命令查看所有的环境变量。我们可以echo $FLAG。这题的考点是环境变量。原创 2024-01-19 13:28:24 · 454 阅读 · 1 评论 -
NSSCTF刷题笔记pwn1——[SWPUCTF 2021 新生赛]gift_pwn
最后加上我们的返回地址,是上面找到的gift的地址,payload就完成了。ida有帮我们识别出来,距离rbp 16字节,我们要再加上我们的8个字节。首先找到我们要返回的gift的地址 0x4005b6。有一个栈溢出,和一个调用系统bash的命令。_system可以调用系统命令。把附件下载下来拖入ida运行。vuln可能存在漏洞的函数。不过要注意这是64位的程序。直接发送获取shell即可。gift题目中的主要函数。原创 2024-01-19 13:12:22 · 916 阅读 · 1 评论