• 52:代码审计-PHP项目类RCE及文件包含下载删除


    漏洞关键字

    SQL注入:select insert update mysql_query mysqli等
    文件上传:$_FILES,type="file",上传,move_uploaded_file()等
    XSS跨站:print print_r echo sprintf die var_dump var_export等
    文件包含:Include include_once require require_once等
    代码执行:eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function等
    命令执行:system exec shell_exec `` passthru pcntl_exec popen proc_open
    变量覆盖:extract() parse_str() importrequestvariables() $$等
    反序列化:serialize() unserialize() _construct _destruct等
    其他漏洞:unlink() file_get_contents() show_source() file fopen()等
    通用关键字:$_GET $_POST $_REQUEST $_FILES $_SEVER等
    

    功能点或者关键字分析可能存在漏洞
    抓包或者搜索关键字找到代码出处对应文件
    追踪过滤或者接受的数据函数,寻找出发此函数或者代码的地方进行触发测试

    案例1:xhcms-无框架-跨站文件包含-搜索或应用-include

    通过应用及URL地址等分析可能存在xss及文件包含漏洞

    抓包找到xss无过滤代码块及文件包含有后缀需绕过代码块

    1.1 XSS:

    0

    1.2 文件包含:

    通过搜索关键字include找到对应代码块,发现有后缀.php需绕过

    0

    尝试包含如下文件

    0

    成功

    0

    尝试本地跨目录包含,失败,原因是有后缀需绕过

    0

    绕过方法:

    • 00截断:
      • 条件:magic_quotes_gpc = OFF php版本<5.3.4
      • 举例:filename=../../../www.txt%00
    • 长度截断:
      • 条件:windows系统,点号需要长于256;linux系统,点号需要长于4096

    尝试进行长度截断,成功绕过。

    0

    附:任意文件包含漏洞(3)——实战xhcms

    https://cloud.tencent.com/developer/article/1685717
    https://blog.csdn.net/weixin_45663905/article/details/108148898

    案例2:earmusic-无框架-文件下载-搜索或应用功能-download等

    通过应用分析或搜索判断可能存在文件下载操作

    抓包分析下载地址找到对应代码块,文件下载地址由$file控制

    $file从数据库查询语句得知,追踪那里可更新或更改此类数据

    尝试修改发现过滤,追踪过滤机制分析绕过,采用全路径地址绕过

    附:代码审计-(Ear Music).任意文件下载漏洞

    https://www.cnblogs.com/-qing-/p/10888335.html

    案例3:zzzcms-无框架-文件删除RCE-搜索或应用-unlink,eval

    3.1 任意文件删除漏洞:

    文件删除搜索关键字unlink,对应函数del_file,查看调用此的地方

    后台delfile函数调用,如何触发delfile函数,受参数控制,进行测试

    payload如下

    0

    删除install.lock就会导致系统重新安装,危害非常大。

    附:ZZZCMS V1.7.1后台任意文件删除漏洞

    https://zhhhy.github.io/2019/06/28/zzzcms/

    https://blog.csdn.net/weixin_44978149/article/details/118282795

    3.2 代码执行漏洞:

    代码执行搜索关键字eval,对应配置模板解析文件,查看调用此的地方

    判断后台可修改模板文件,前台触发模板文件,构造payload进行测试

    payload如下

    0

    附:再谈 zzzcms 代码执行,你也能审计出来的高危漏洞

    https://cloud.tencent.com/developer/article/1576196

  • 相关阅读:
    正则表达式
    Newtonsoft.Json
    MVC之参数验证(三)
    MVC之参数验证(二)
    MVC之参数验证(一)
    MVC之模型绑定
    导致存储过程重新编译的原因
    IFormattable,ICustomFormatter, IFormatProvider接口
    oracle将id串转换为名字串
    oracle查看表空间大小及使用情况
  • 原文地址:https://www.cnblogs.com/zhengna/p/15166967.html
Copyright © 2020-2023  润新知