依旧是先检查文件的类型和保护 64位没有保护 用IDA看看,read存在溢出,溢出0x18(不懂可以翻阅前面的博客) 函数system可以调用指令 shift+F12看看 $0在Linux中是shell的名称 那么我们可以利用system函数调用$0来getshell,因为是64位,需要用rdi寄存器来给system传值 现在找
目录 程序基本信息 程序溢出点 整体思路 exp脚本 成功获得flag 参考 程序基本信息 可以看到开启了栈不可执行和got表不可写保护。 程序溢出点 在函数sub_400AF7中,v8可以读入0x12C个字节,同时if判断中对v8进行字节截断,所以我们可以输入如0x101个字符,在保证能够溢出到返回地
mary_morton 这道题开启了canary保护,大概说一下题目,就是让你选择漏洞一个格式化字符漏洞还有一个就是栈溢出,这道题思路就是通过格式化字符漏洞泄露出cannary的值,然后进行栈溢出,后门题目已经给了。 来算算偏移量吧,buf为rbp-90h,canary就是v2为rbp-8h,所以偏移量为88h,然后在算
这题和level3大同小异,只不过这一题是x64的程序 做这题之前,建议先写level2_x64。 拿到这题,我们首先查看保护: 程序只开了NX保护,好的。 根据做过level3的经验,我们先找出我们需要的地址(也可以用pwntools工具自动找): vul()函数: write()函数的plt地址: 之后我们找齐需要用的gadget:
这次比赛是我参加以来成绩最好的一次,这离不开我们的小团队中任何一个人的努力,熬了一整天才答完题,差点饿死在工作室(门卫大爷出去散步,把大门锁了出不去,还好学弟提了几个盒饭用网线从窗户钓上来才吃到了午饭)。写好WP回到宿舍的时候已经快十二点了,随便吃了点面包倒头就睡...... 接
花了将近一天半的时间研究这一题,因为最近在熟练srop技术,所以在看到pwnbale.kr上的那道unexploitable之后,想趁热打铁来试试这道500p的题目。收货颇丰啊~~~ 虽然看了网上的思路,但exp还是自己搞了出来,还是有点小小成就感。 题目的二进制文件和libc自己去网站上找吧pwnable.tw.