
Jarvis OJ
https://www.jarvisoj.com/ Pwn的 wp 可以看我写的时间,难度逐渐加大
Y-peak
一个努力的小白pwn
展开
-
[Jarvis OJ - PWN]——Typo(内涵peak小知识)
[Jarvis OJ - PWN]——Typo题目地址: https://www.jarvisoj.com/challenges题目:还是先check一下, 是arm架构。还是第一次遇到。peak小知识和x86架构不同, arm架构arm 下的函数调用规定, 函数的第 1 ~ 4 个参数分别保存在 r0 ~ r3 寄存器中, 剩下的参数从右向左依次入栈, 被调用者实现栈平衡,函数的返回值保存在 r0 中。除此之外,arm 的 b/bl 等指令实现跳转; pc 寄存器相当于 x86 的 ei原创 2021-02-17 21:38:53 · 390 阅读 · 1 评论 -
[Jarvis OJ - PWN]——Backdoor
[Jarvis OJ - PWN]——Backdoor题目地址: https://www.jarvisoj.com/challenges题目:额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的。虽然题目给出了提示:这是一个有后门的程序,有个参数可以触发该程序执行后门操作,请找到这个参数,并提交其SHA256摘要。(小写)FLAG:PCTF{参数的sha256}但是还是很晕。本来想老规矩先checksec一下的结果,呵呵哒checksec个大头鬼运行看看, 也不可以, 呜呜呜, 嘤嘤原创 2021-02-17 12:26:54 · 342 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[61dctf]fm
[Jarvis OJ - PWN]——[61dctf]fm题目地址: https://www.jarvisoj.com/challenges题目:还是先checksec一下, 开启了canary 和NX保护在IDA中,查看一下, 这是一道格式化字符串的题。找到x的地址在pwndbg中进行调试一下, 寻找偏移from pwn import *#p = remote("pwn2.jarvisoj.com",9895)p = process("./fm")gdb.attach(p原创 2021-02-17 11:47:35 · 310 阅读 · 1 评论 -
[Jarvis OJ - PWN]——Test Your Memory
[Jarvis OJ - PWN]——Test Your Memory题目地址: https://www.jarvisoj.com/challenges题目:32位程序,开了NX保护IDAexploitfrom pwn import *#p = process("./memory")p = remote("pwn2.jarvisoj.com",9876)context.log_level = 'debug'cat_flag_addr = 0x080487E0sys_ad原创 2021-02-16 18:24:22 · 267 阅读 · 1 评论 -
[Jarvis OJ - PWN]——[XMAN]level4
[Jarvis OJ - PWN]——[XMAN]level4题目地址: https://www.jarvisoj.com/challenges题目: checksec一下IDA中思路0x100 - 0x88 = 120, 多余的空间足够我们进行栈溢出利用但是我们没有system和’/bin/sh’地址。也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和’/bin/sh’地址。再返回main进行循环调用,第二次就可以直接控制返回到system。e原创 2021-02-16 17:58:33 · 252 阅读 · 2 评论 -
[Jarvis OJ - PWN]——Smashes
[Jarvis OJ - PWN]——Smashes题目地址: https://www.jarvisoj.com/challenges题目:还是先checksec一下看看。64位,并且除了PIE,其他保护基本都开启了。在IDA中看看发现有可以利用的栈溢出, 我原本的想法是将canary给泄露出来。但是看到触发了canary保护后的结果, 有点不对劲。修改了文件名后,我确定了, 泄露的就是argv[0]。我们可以通过将其覆盖, 主动触发canary保护, 将flag拿到手。我们原创 2021-02-16 17:19:39 · 262 阅读 · 2 评论 -
[Jarvis OJ - PWN]——[XMAN]level3_x64
[Jarvis OJ - PWN]——[XMAN]level3_x64题目地址:https://www.jarvisoj.com/challenges题目:老样子,还是先checksec一下,再看看IDA,除了64位以外和[XMAN]level3一样64位和32位的主要区别就是参数方面,64位当参数小于等于六的时候,是放在寄存器中,没有放在栈上。分别是rdi rsi rdx rcx r8 r9寄存器。所以我们需要找一些pop指令来将参数写入寄存器。虽然没有找到pop rdx指令,但原创 2021-02-08 17:56:10 · 342 阅读 · 0 评论 -
[Jarvis OJ - PWN]——Tell Me Something
[Jarvis OJ - PWN]——Tell Me Something题目地址:https://www.jarvisoj.com/challenges题目:原创 2021-02-02 11:49:30 · 340 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[XMAN]level0
[Jarvis OJ - PWN]——[XMAN]level0题目地址:https://www.jarvisoj.com/challenges题目:checksec看看,64位,开启了NX保护IDA,发现了我们的system函数,里面的参数也是我们想要的找到callsystem函数的地址 0x400596 ,或者 system函数开始压参的地址0x40059A都可以作为返回地址。exploit:from pwn import *p = remote("pwn2.jarviso原创 2021-02-02 09:46:38 · 190 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[XMAN]level1
[Jarvis OJ - PWN]——[XMAN]level1题目地址:https://www.jarvisoj.com/challenges题目:先checksec一下,什么保护都没有开。32位程序。看看IDA,找到了可以利用的栈溢出的read函数.开开心心的去找system函数.找了半天没找到,同时也没有/bin/sh字符串并且这道题什么保护都没开,应该是ret2shellcode的pwn题.buff2的地址题目给输出了出来.所以exp:from pwn import *原创 2021-02-01 19:34:55 · 389 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[XMAN]level2
[Jarvis OJ - PWN]——[XMAN]level2题目地址:https://www.jarvisoj.com/challenges题目:首先,checksec一下。32位并且没有开启PIE在IDA中查看一下。main函数里面没有我们想要的,点开vulnerable_function函数。发现read函数,第一个参数为0,代表标准输入。可以利用栈溢出。发现里面有system函数,但是里面的参数不是我们想要的,所以我们要覆盖一下它。按shift + F12,找到/bin/sh字符串原创 2021-02-01 18:00:19 · 243 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[XMAN]level2(x64)
[Jarvis OJ - PWN]——[XMAN]level2(x64)题目地址:https://www.jarvisoj.com/challenges题目:checksec一下,是64位程序。开启了NX保护在IDA看一下,main函数中有我们要的system函数,vulnerable_function函数中也有。不过可惜参数都不对,任取一个system地址就好就好。但是我们找到了栈溢出的利用函数read。buf距离rbp的距离为0x80查找一下看看有没有**"/bin/sh"字符串原创 2021-02-03 11:24:53 · 673 阅读 · 0 评论 -
[Jarvis OJ - PWN]——[XMAN]level3
[Jarvis OJ - PWN]——[XMAN]level3题目地址:https://www.jarvisoj.com/challenges题目:先checksec一下,32位程序开启了NX保护。在IDA看下。第一个函数中,有可以栈溢出利用的函数read。查找发现没有system函数和’/bin/sh’字符串。expolitfrom pwn import *from LibcSearcher import *p=remote("pwn2.jarvisoj.com",9879)原创 2021-02-07 22:23:45 · 301 阅读 · 3 评论