CTF Book
  • 关于本书
  • Web
    • 信息搜集
    • 注入攻击
      • SQL注入
      • XML实体注入
      • SSTI 服务器模板注入
    • 前端安全
      • XSS 跨站脚本攻击
      • CSRF 跨站请求伪造
      • Html5 特性
    • 常见漏洞
      • SSRF 服务端请求伪造
      • File upload 文件上传漏洞
      • Web Cache 欺骗攻击
    • 特定场景漏洞
      • AWS 漏洞系列
        • S3 Bucket信息泄露
      • 未授权访问漏洞
        • redis未授权访问
        • CouchDB未授权访问
        • Docker Remote API未授权访问
        • memcache 未授权访问
        • Jenkins 未授权访问
        • PHP-FPM未授权访问
        • rsync 未授权访问
        • Mongodb未授权访问
      • 服务器配置问题
        • Apache Tomcat样例目录session操纵漏洞
    • PHP 安全
      • PHP 反序列化漏洞
      • PHP 代码审计小结
      • PHP 伪协议总结
      • PHP 内存破坏漏洞
      • PHP mail header injection
      • PHP 弱类型安全总结
      • PHP 各版本特性
    • 逻辑漏洞
    • CTF-Web Trick
  • PWN
    • pwntools简要教程
    • 从任意地址写到控制执行流的方法总结
  • Reverse
    • 栈、栈帧与函数调用
  • Crypto
    • RSA 安全问题
  • Misc
    • zip总结
  • Others
    • CTF常用工具整理
    • 渗透测试工具备忘录
Powered by GitBook
On this page
  • 0x01 命令执行
  • php代码执行
  • 系统命令执行
  • 0x02 文件上传
  • 0x03 文件删除
  • 0x04 文件包含
  • 本地文件包含
  • 远程文件包含
  • 0x05 文件读取
  • 读文件
  • 列目录
  • 超全局变量
  • 0x06 变量覆盖
  • 0x07 php序列化函数
  • 0x08 Reference

Was this helpful?

  1. Web
  2. PHP 安全

PHP 代码审计小结

php代码审计小总结

0x01 命令执行

php代码执行

  • eval()

  • assert()

  • preg_replace + '/e'

  • call_user_func()

  • call_user_func_arra()

  • create_function

  • array_map()

系统命令执行

  • system()

  • passthru()

  • exec()

  • pcntl_exec()

  • shell_exec()

  • popen()

  • proc_open()

  • `(反单引号)

  • ob_start()

  • escapeshellcmd() // 该函数用于过滤

0x02 文件上传

  • move_uploaded_file()

  • getimagesize() //验证文件头只要为GIF89a,就会返回真

0x03 文件删除

  • unlink()

  • session_destroy()

0x04 文件包含

本地文件包含

  • require()

  • include()

  • include_once()

  • require_once()

远程文件包含

  • allow_url_include = on

0x05 文件读取

读文件

  • hightlight_file($filename);

  • show_source($filename);

  • print_r(php_strip_whitespace($filename));

  • print_r(file_get_contents($filename));

  • readfile($filename);

  • print_r(file($filename)); // var_dump

  • fread(fopen($filename,"r"), $size);

  • include($filename); // 非php代码

  • include_once($filename); // 非php代码

  • require($filename); // 非php代码

  • require_once($filename); // 非php代码

  • print_r(fread(popen("cat flag", "r"), $size));

  • print_r(fgets(fopen($filename, "r"))); // 读取一行

  • fpassthru(fopen($filename, "r")); // 从当前位置一直读取到 EOF

  • print_r(fgetcsv(fopen($filename,"r"), $size));

  • print_r(fgetss(fopen($filename, "r"))); // 从文件指针中读取一行并过滤掉 HTML 标记

  • print_r(fscanf(fopen("flag", "r"),"%s"));

  • print_r(parse_ini_file($filename)); // 失败时返回 false , 成功返回配置数组

列目录

  • print_r(glob("*")); // 列当前目录

  • print_r(glob("/*")); // 列根目录 print_r(scandir("."));

  • print_r(scandir("/"));

  • $d=opendir(".");while(false!==($f=readdir($d))){echo"$f\n";}

  • $d=dir(".");while(false!==($f=$d->read())){echo$f."\n";}

超全局变量

0x06 变量覆盖

  • extract()

  • import_request_variables()

  • parse_str()

  • mb_parse_str()

  • 全局变量覆盖:register_globals为ON,$GLOBALS

0x07 php序列化函数

  • serialize()

  • unserialize()

  • ini_set('session.serialize_handler', 'php_serialize');

0x08 Reference

PreviousPHP 反序列化漏洞NextPHP 伪协议总结

Last updated 5 years ago

Was this helpful?

$GLOBALS
代码审计入门总结
php花式读取文件函数汇总
代码审计小结