pwn
文章平均质量分 76
rbp
这个作者很懒,什么都没留下…
展开
-
[安洵杯 2021]stack题解
payload2 = b'a'*(0x20-8)+p64(canary)+b'a'*8+p64(ret)+p64(rdi)+p64(binsh_addr)+p64(sys_addr)//记得用ret和ret_rdi传参。所以输入的格式化字符串为%11$p和%17$p(记得前六个参数存放在寄存器里)输入到第一个read中。那么思路就是先通过格式化字符串泄露canary和函数真实地址,然后栈溢出返回shell。然后在下一个read中根据main函数基址算偏移泄露其他部分构造rop链即可。成功getshell。原创 2023-06-08 22:50:44 · 124 阅读 · 1 评论 -
2023陕西省大学生网络安全技能大赛pwn陕西游玩题解
可以发现在0x7fffffffdf18处存放了main函数的地址,而printf输入时的位置在0x7fffffffdeb0,并且64位传参前6个参数要放在寄存器中,那么实际main函数真实地址相对格式化字符串参数的位置为(0x7fffffffdf18-0x7fffffffdeb0)/8+6=19。那么我们就要想办法泄露出一个函数真实地址,以此来计算偏移得到后门函数的地址从而getshell。接着计算main与后门函数的偏移,直接ida看后四位再相减就欧克了,代码如下。首先checksec~原创 2023-06-04 10:27:27 · 235 阅读 · 1 评论 -
LitCTF PWN题解
接下来就是正常的64位ret2libc过程,找一个pop寄存器和ret地址,用这条指令:ROPgadget --binary pwn --only 'pop|ret'看看c伪代码,很容易看出是ret2libc题,并且对read读入的数据有一个strlen的判断,如果大于0x50就跳出。直接nc之后ls查看一下目录,看到一个dockerfile,cat一下就能发现打开flag文件的方式。然后通过给的libc文件计算偏移,得到system函数和/bin/sh字符串的地址。咳咳,接下来是正题。原创 2023-06-02 00:26:36 · 620 阅读 · 3 评论 -
[BUUCTF]ciscn_2019_en_2解题思路
接下来通过计算偏移和libcsearcher拿到libc版本从而泄露system和bin/sh然后栈溢出获得shell。先用ROPgadget --binary fliename --only 'pop|ret' 找找gadgets。通过读c伪代码可以看出先是一个嵌套循环,然后输入v4的值,根据v4值来执行下面的代码。其中的0x4009A0是用来泄露puts函数的地址后返回encrypt函数再次运行。希望思路对各位有所帮助(本人真的很菜),如有不足请各位佬们指点。很明显有个gets函数的栈溢出。原创 2023-05-08 17:08:55 · 319 阅读 · 2 评论