pwn — ret2shellcode

Ret2shellcode:

按惯例检查保护,发现啥都没开


用ida打开看main函数



发现了gets和strncpy函数,将gets里的s的值存入了buf2


题文中无system,无shellcode(据说是长成system(‘/bin/sh’)这样的东西),所以要自己写一个咯(写进栈里)

那就让它在脚本里生成一个shellcode(指令为:shellcode = asm(shellcraft.sh()))

得知偏移量为112


若生成的shellcode长度若不够112个,则用垃圾字符填充(指令:sh.sendline(shellcode.ljust(112,’a’) + bss段shellcode的地址))

还要检查bss段是否有权限写入shellcode,用vmmap


发现buf2地址所在区间的权限是rwxp,可读可写

然后就可以安心地写exp了


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我怎么如此幸运接连下了几天大雨,今天早上一醒来,拉开窗帘就看到了满满的阳光,洒在了地上,看到这样的阳光,心里都变得...
    Wan9sha阅读 219评论 0 0
  • 1.快乐来自内心 如果我们每天想的都是开心的事我们就会开心,如果我们想的都是恐惧的事情,我们就会害怕,如果我们总想...
    把快乐带给你阅读 198评论 0 2
  • 明天6月就30了,3年合同也到期了,还有很多计划去学,畅想一下。 1. tensorflow+lstm nbsvm...
    SiriusWy阅读 382评论 1 0
  • 摘选自https://github.com/chemdemo/chemdemo.github.io/issues/...
    u14e阅读 136评论 0 0