为什么hzhost只能在域名管理这里举行注射[网络技术]
本文“为什么hzhost只能在域名管理这里举行注射[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
根源:叉叉兵
比方ftp管理.mssql管理等等地方,都不能注射.大概有的朋友对比奇特了.我拿了个shell,看到了源码.所以本日来给大家解析解析..
D:/hzhost/hzhost_conpanel/domain/login.asp就是login.asp存在注射.
我们来看他代码是若何写的.
引用:
码片段.
<%
’session.timeout=20
ifok=0//ifok=0时表示系统保护中,不可登录
d_dme=trim(request.form("domainname")) //直接从表单就获得了用户名字.仅去掉空格.所以产生漏洞.
d_pss=trim(request.form("domainpass"))
session("xinnetdomainpwd")=""
d_pssin=d_pss
dnme=d_dme
chk_usrpss d_pss,"域名密码",4,16 //这里是一个检测.这个chk_usrpss函数检测字符长度.最少为4位,最大为16位.不然就报错!
d_pssmd5=md5(d_pss)
substrContent = "entryclass:sys2_mng"&Vend
substrContent =substrContent& "entrytype:getincode"&Vend
substrContent =substrContent& "entryuser:"&entryuser&Vend
substrContent =substrContent& "entrypass:"&entrypass&Vend
substrContent = substrContent & "pnlmod:getincode"& Vend
substrContent =substrContent& "agentname:"&agentname&Vend
substrContent = substrContent & "keywords:" &d_pss& Vend
substrContent = substrContent & "." & Vend
wstr=hzsocket(substrContent)
d_pssincode=wstr
query="select * from dmelst where d_dme=’"&d_dme&"’" //这里直接丢到sql语句里面开始了查询.所以漏洞产生了!
rs.Open query,conn,3,1
if rs.RecordCount <>1 then
rs.close
我们再看看mysql登陆的页面代码.位置在D:/hzhost/hzhost_conpanel/mssql/login.asp
引用:
<%
’session.timeout=20
ifok=0//ifok=0时表示系统保护中,不可登录
sq_nme=trim(request.form("mssqlname")) //我们可以看到.还是一样的没有过滤.
sq_pss=trim(request.form("mssqlpass")) //密码也没过滤.
chk_usrpss sq_nme,"数据库名称",4,20 //注意此行.由于多了这一行.招致sql注射漏洞被过滤了.
chk_usrpss sq_pss,"数据库密码",4,16
substrContent = "entryclass:sys2_mng"&Vend
substrContent =substrContent& "entrytype:getincode"&Vend
substrContent =substrContent& "entryuser:"&entryuser&Vend
substrContent =substrContent& "entrypass:"&entrypass&Vend
substrContent = substrContent & "pnlmod:getincode"& Vend
substrContent =substrContent& "agentname:"&agentname&Vend
substrContent = substrContent & "keywords:" &sq_pss & Vend
substrContent = substrContent & "." & Vend
wstr=hzsocket(substrContent)
sq_pss=md5(wstr)
query="select * from v_sqllst where sq_nme=’"&sq_nme&"’" //举行查询
conn.open constr
rs.Open query,conn,3,1
if rs.RecordCount <>1 then
call errorpage("对不起,不法登录,请返回!(106)")
else
db_sq_pss=trim(rs("sq_pss"))
sqid=rs("sq_id")
sq_prd=ucase(trim(rs("sq_prd")))
sq_sst=rs("sq_sst")
end if
rs.close
还有mysql/login.asp ,mail/login.asp等等就不解析了,代码都一样.看了代码.多出的这一行就禁止了sql注射.
引用:
chk_usrpss sq_nme,"数据库名称",4,20
我们再来看看chk_usrpss毕竟是怎么写的.它在D:\hzhost\hzhost_master\incs\config.asp中!
引用:
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’用户名和密码
以上是“为什么hzhost只能在域名管理这里举行注射[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |