标签:函数 dunction level0 地址 菜鸡 PWN buf vulnerable 字节
常规check一下,64位程序,没啥
Shift+F12,果然,找到/bin/sh
函数列表里面有一个vulnerable函数,哈哈,还是对新手很友好的,直接告诉你这个函数。有问题,进去看看
可以看到先是定义了一个buf变量,然后输入该变量后面200长度内容。buf的长度为0x80。
很明显read函数存在栈溢出。那么很明显就是read读取长度长了,可以覆盖到别的内容。只要先覆盖掉buf的空间,就可以让read函数读取我们想跳转的地址。
下一步就是寻找覆盖返回什么内容了,多看看可以发现一个callsystem函数。
这个函数调用返回了system函数(它和“/bin/sh”连在一起可以给我提供类似cmd的功能),那么我们把vulnerable_dunction返回地址转到他身上不就ok了,这样我们就可以执行system函数了。
下一步就是寻找vulnerable_dunction函数的返回值了,双击vulnerable_dunction里buf变量,就可以打开vulnerable_dunction的栈
这里显示buf变量80字节,然后是s8个字节,然后r8个字节。这里的r代表就是返回地址。想修改r那就要把前面的字节先填入好,因此要填入0x80(buf的长度)+0x8(s的长度)个字节,之后跟上callsysytem的地址。
注意,payload的书写是有顺序的,他会按照你的顺序依次写入,切不可颠倒顺序,很可能导致精心构造的返回地址被当作垃圾数据写入填充。
标签:函数,dunction,level0,地址,菜鸡,PWN,buf,vulnerable,字节 来源: https://www.cnblogs.com/sakura-zz/p/15977617.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。