漏洞标题 PageAdmin CMS最新版二次注入 相关厂商 pageadmin.net 漏洞作者 JutaZ 提交时间 2016-03-14 10:44 公开时间 2016-06-12 14:30 …
漏洞标题
PageAdmin CMS第二次注入最新版本
相关制造商
Pageadmin.net
漏洞作者
JutaZ
提交时间
2016-03-14 10: 44
公共时间
2016-06-12 14: 30
漏洞类型
SQL注入漏洞
危险等级
高
自我评估等级
20
漏洞状态
制造商已确认
标签标签
漏洞详细信息
#0之前的漏洞是http://**。**。**。**/bugs/wooyun-2016-0177673
#1仍是/e/master/build_static.aspx此页面
原始代码如下所示:
如果(ISNUM(IDS)){
Sql='select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from' + Table +',其中html=2,id='+ Ids;
}
其他
{
Sql='select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from' + Table +',其中html=2,id为('+ Ids +')';
}
在最新版本中它被修复为:
如果(ISNUM(IDS))
{
Sql='select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from'+ Sql_Format(Table)+'where html=2 and id='+ Ids;
}
其他
{
Sql='select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from'+ Sql_Format(Table)+'其中html=2和id in('+ Ids +')';
}
#2审核Sql_Format()函数
私有字符串Sql_Format(string str)
{
如果(str==''|| str==null)
{
回归'';
}
STR=str.Replace( ''”, '' '');
STR=str.Replace( '\' ' '\'');
返回str;
}
发现只是替换'至于'和'替换'
但是,我上次漏洞中POC中的注入代码没有单引号,并且页面的覆盖不固定。本地反复成功

漏洞证明:
#0之前的漏洞是http://**。**。**。**/bugs/wooyun-2016-0177673
#1仍是/e/master/build_static.aspx此页面
原始代码如下所示:
如果(ISNUM(IDS)){
Sql='select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from' + Table +',其中html=2,id='+ Ids;
}
其他
{
从对等方接收数据时失败

修理计划:
#1重写Sql_Format()函数
#2加权限控制,使用ISSTR()来确定Table参数是否合法
版权声明:请注明出处JutaZ @乌云