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=

猜你喜欢

转载自blog.csdn.net/kevinhanser/article/details/81146099
今日推荐