Hacking PHP

作者: Hanaasagi | 来源:发表于2016-04-12 13:51 被阅读162次

    Edit by Qsaka


    这篇paper只是个人的学习笔记,如有疏漏之处,欢迎指出。

    0X01 SQL注入

    这里主要是PHP的防范注入的几个配置,注入手法不再赘述

    magic_quotes_gpc

    $_GET $_POST $_COOKIE 变量中的 ' " \ 空字符(NULL) 进行转义。但这个特性在 PHP5.3.0 中已经不推荐使用,并且在 PHP5.4.0 中已经移除。注意它并不会过滤 $_SERVER

    magic_quotes_runtime

    对从数据库或文件中获取的数据进行过滤,过滤内容与 magic_quotes_gpc 一致。但在PHP5.4中被废弃。

    magic_quotes_sybase

    将 $_GET $_POST $_COOKIE 变量中的'替换为",并对空字符(NULL)`进行转义。此选项会完全覆盖magic_quotes_gpc。

    safe_mode

    safe_mode在 PHP5.3.0 中废弃, PHP 5.4.0 中移除。

    0X02 XSS

    htmlspecialchars()默认只过滤"

    0X06 文件操作

    文件操作包括上传,读取,写入,下载,包含,删除。

    文件包含

    文件包含分为本地文件包含(LFI),远程文件包含(RFI)。进行远程文件包含需要allow_url_include = On。远程文件包含也可以通过PHP的输入/输出流 php:// 或伪协议 data:// 来实现
    如果文件包含被加以某种限制,如 include($_GET['file'].'.html')。这里给出几种bypass的方法

    • 通过 %00 截断的方式来进行包含。但是这要在未对 NULL 字符进行过滤的情况下。而且在 PHP5.3 之后的版本无法利用。
    • 利用多个 . 来进行截断。windows下需要>=240个,linux下>=2040个。这种方法同样在 PHP5.3.0 后被修复
    • 特别的,当可以进行远程文件包含时,我们可以利用URL中的 ? # 来实现截断。file=http//www.example.com/shell.php?, 这样 .html 会被认为成请求参数

    文件上传

    • 利用apache或iis6.0的解析漏洞
    • php3 php4 php%20 绕过
    • %00截断,如 1.php%00.jpg
    • 更改文件头
    • content-type

    0X07 代码执行

    代码执行相关函数 eval() assert() preg_replace() call_user_func() call_user_func_array() array_map() array_filter() array_reduce()

    0X08 命令执行

    命令执行相关函数 exec() system() shell_exec() passthru() pcntl_exec() popen() proc_open(), 除此之外被反引号括起的字符串也会被当做命令执行

    0X09 变量覆盖

    变量覆盖漏洞是指用户传入的变量会将程序内部原有变量的值覆盖。可能引发变量覆盖漏洞的函数有 extract() parse_str()
    PHP中的可变变量也可以导致变量覆盖,比如下面的过滤操作

    foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
        foreach($$_request as $_key => $_value) {
            $$_key = addslashes($_value);
        }
    }
    

    变量覆盖漏洞一般需要和其他的攻击方式进行结合。

    0X0B 逻辑漏洞

    这里简单列举几种

    0X0A 权限绕过

    权限绕过其实也算逻辑漏洞,分为水平越权和垂直越权两类。
    wooyun小川的paper: 我的越权之道

    Reference

    代码审计入门总结
    高级PHP应用程序漏洞审核技术
    PHP文件包含漏洞总结
    论PHP常见的漏洞
    业务安全漏洞挖掘归纳总结

    相关文章

      网友评论

        本文标题:Hacking PHP

        本文链接:https://www.haomeiwen.com/subject/wefwlttx.html