New bug :JFCMS(ASP.NET) SQLINJECTION BUG
2009年8月20日星期四 | | |官方网站:http://www.jfcms.net/
描述:渐飞网站管理系统系列产品,是由渐飞网络(云南省曲靖市现代科技有限公司)自主研发,并拥有自主知识产权的用于互联网网站发布管理的产品。经过多年的潜心研究、开发,并在此过程中听取用户的建议意见,不断改进,优化。现在在互联网众多网站管理系统中已经有了相当高的知名度,广受各企业、单位、个人站长等的好评。
渐飞网站管理系统前身是:渐飞新闻系统--渐飞新闻出版系统--渐飞网站管理系统渐飞网站管理系统的英文名称是:JFCms(JF Content Manage System)
漏洞描述:经过Reflector的反编译,login.aspx文件存在SQL注入漏洞
private void Page_Load(object sender, EventArgs e)
{
string userPwd = base.Request["UserPwd"]; //未过滤
string userName = base.Request["UserName"];//未过滤
string str3 = base.Request["Cookies"];
string url = base.Server.UrlDecode(base.Request["formurl"]);
int num = 0;
try
{
num = Convert.ToInt16(str3);
}
catch
{
}
switch (userPwd)
{
case null:
case "":
userPwd = "##########";
break;
}
if ((userName == null) || (userName == ""))
{
userPwd = "##########";
}
if (this.Fc.chkGuestUser(userName, userPwd)) //两个变量没过滤直接调用
{
base.Response.Cookies["JF_GuestUserName"].Value = this.Fc.Encrypt(userName);
base.Response.Cookies["JF_GuestUserPwd"].Value = this.Fc.Encrypt(userPwd);
base.Response.Cookies["JF_GuestUserID"].Value = this.Fc.Encrypt(this.Dc.GetExecuteScalar("select UserID From JF_GuestUser where UserName='" + userName + "' and UserPwd='" + userPwd + "'"));
if (num != 0)
{
base.Response.Cookies["JF_GuestUserName"].Expires = DateTime.Now.AddDays((double) num);
base.Response.Cookies["JF_GuestUserPwd"].Expires = DateTime.Now.AddDays((double) num);
base.Response.Cookies["JF_GuestUserID"].Expires = DateTime.Now.AddDays((double) num);
}
if ((url == "") || (url == null))
{
base.Response.Redirect("tglist.aspx");
}
else
{
base.Response.Redirect(url);
}
}
else
{
base.Response.Write("<script>alert('用户名/密码有误 点击确定返回重新输入 ^_^');history.back()</script>");
}
}
//===========================================
public bool chkGuestUser(string UserName, string UserPwd)
{
bool flag = false;
if (int.Parse(this.Dc.GetExecuteScalar("select count(UserID) From JF_GuestUser where UserName='" + UserName + "' and UserPwd='" + UserPwd + "'")) > 0) // 再次产生SQL注入漏洞
{
flag = true;
}
return flag;
}
测试方法:
http://target.com/user/login.aspx?UserName=admin&UserPwd=admin'
测试结果: