LuManager高危SQL注入0day分析

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全中心 免费版,不限时长
云安全中心 防病毒版,最高20核 3个月
简介:

2015年9月7日阿里云盾态势感知系统捕获到LuManager系统的0day一枚,经证实,该漏洞一旦被黑客利用可直接以最高权限登陆后台,上传webshell, 控制系统数据库、操作虚拟主机,后果不堪设想。

作者:云盾攻防对抗团队 - 千霄

LuManager是一种基于FreeBSD、Zijidelu、Debian、Centos、Ubuntu等Linux/Unix系统的网站服务器管理软件,目前有大量国内用户使用。云盾攻防对抗团队捕获0day后第一时间通知厂商,厂商迅速响应,于8日上午发布安全更新并致谢阿里云盾。在此次事件过程中,正是基于云盾态势感知系统灵敏的漏洞捕获能力、阿里云与厂商的快速沟通响应以及厂商负责任的态度,得以保证了阿里云用户不受该漏洞影响,避免了不必要的损失。云盾作为互联网安全的基础设施,对于基础软件的安全我们会进行深入研究和分析,保障云平台的安全稳定运行。

0x00 漏洞捕获

2015年9月6日,通过阿里云云盾态势感知系统,在异常流量中我们发现有黑客利用LuManager系统获取webshell,捕获到攻击者的一枚攻击payload:

1

0x01 漏洞复现

在漏洞库中,我们并未发现该系统存在安全漏洞,推测该漏洞为一枚0day。我们第一时间对该payload进行了复现:向LuManager(版本2.0.99),index.php?m=Public&a=login 发送post数据包,提交后直接绕过登陆验证进入后台,并执行了payload 中的SQL语句:

2

0x02 漏洞分析

官方下载了最新版本的Lumanager(2.0.99),登陆验证的代码位于/Lib/Action/PublicAction.php,LuManager核心代码使用了Zend加密和代码混淆,控制器目录代码解密后,函数名、类名无法还原,代码的可读性较差,从触发位置寻找漏洞成因比较困难。我们更换思路来定位漏洞位置,Lumanager使用了Thinkphp框架开发,框架的代码并未加密,开启ThinkPHP框架trace模式进行调试,抓取到正常登陆和发送payload时候的SQL语句如下:

3

通过执行的SQL结果分析,payload触发时,SQL语句中,User.user字段的值并没有单引号包围,同时这个变量可控,导致SQL注入漏洞。确定是位于where条件触发的SQL注入,继续跟踪定位代码,/Sys/Lib/Think/Db/Db.class.php 400行,parseWhere()函数内代码:

if ( “exp” == strtolower( $val[$i][0] ) )
{

  $whereStr .= “(“.$key.” “.$data.”) “.$rule.” “;

}

从上述代码可以看到:当传入where条件是数组,且数组第一个元素值为“exp”,会直接拼接$val[$i][1]到SQL语句的where条件中,由于没有单引号,因此不受全局addsalash转义影响。parseWhere()函数在上层被调用时,如果没有检查传入变量的类型,直接将可控参数传入,攻击者利用这个特性就可以构造恶意SQL。

LuManager在登陆验证代码中,将$_POST[‘user’]参数传递后带入了parseWhere()函数,构造该参数为数组类型,可触发执行恶意SQL。由于该漏洞是登陆位置触发的SQL注入,我们可以简化payload,构造恒真条件,使用”万能密码”登陆后台:

POST /index.php?m=Public&a=login

user[0]=exp&user[1]==1)) or 1 --

提交后可直接以管理员身份进入后台。

LuManager登陆位置有验证码机制,发送payload时候需要先识别验证码,可以使用OCR库自动识别验证码,进行自动化检测,有兴趣可以自己实现:

4

从漏洞成因上说,该漏洞实质是thinkphp框架自身的一处特性(Or 漏洞)引发的,@phith0n已经提交过thinkphp框架存在的安全问题(http://www.wooyun.org/bugs/wooyun-2010-086737),但是仍有很多基于thinkphp框架开发的系统并没有意识到这个严重问题,存在漏洞的也不仅仅LuManager,建议thinkphp开发者检查自身产品是否存在同样问题。

0x03 漏洞影响

该漏洞影响LuManager 2.1.1以下的所有版本,攻击者可直接以最高权限登陆后台,上传webshell, 控制系统数据库、操作虚拟主机。测试过程中,我们发现后台可以新增计划任务,计划任务会以root权限定时执行,攻击者进入后台后可获取系统root权限。

0x04 漏洞修复

该漏洞我们已经第一时间通知厂商,9月8日上午厂商发布升级,并对阿里云云盾团队表示感谢。目前最新版本为2.1.2,建议用户尽快升级到最新版本2.1.2。

使用在线升级:
使用LuManager2.0.45以上版本的用户,可以登陆LuManager在线升级,方法如下:登陆LuManager,在LuManager的首页点击“检查更新”,如果没有启动保护密码,请输入后再重试

手动升级:

  • 下载LuManager_last.tar.gz安装包:wget http://down.zijidelu.org/LuManager_last.tar.gz
  • 备份之前的LuManager:mv /usr/local/LuManager /usr/local/LuManager.bak
  • 解压LuManager_last.tar.gz:tar -zxvf LuManager_last.tar.gz
  • 安装新的LuManager:mv LuManager /usr/local/
  • 执行lu-repair命令便升级完成
目录
相关文章
|
1月前
|
SQL 存储 数据可视化
手机短信SQL分析技巧与方法
在手机短信应用中,SQL分析扮演着至关重要的角色
|
2月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
134 5
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
69 5
|
2月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
117 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
47 1
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
48 3
|
2月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
88 6
|
2月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
51 5
|
3月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
59 0
|
3月前
|
SQL 数据采集 数据挖掘
为什么要使用 SQL 函数?详尽分析
【8月更文挑战第31天】
50 0
下一篇
无影云桌面