EnAddress = EnAddr(EnIP(VisitIP)) 这里用了2个函数对VisitIP进行过滤,但是看最后的赋值却给了EnAddress这个变量,而下面第62行的查询却又直接带入的是没有过滤的VisitIP变量,所以在这里就可以对其进行SQL注入。 Set RsCouObj = Conn.Execute("select ID from FS_SS_Stat where IP='"&VisitIP&"'")
首先我们来看看stat\index.asp这个文件。 先说他的第一个错误。 第一EnAddr(EnIP(VisitIP))这个过程确实没有把值赋给VisitIP, 但是:EnIP这个过程,好象作者并没有注意到!! 我把这个过程贴出来大家看看。 function EnIP(ip) dim ip1,ip2,ip3,ip4 ip=cstr(ip) ip1=left(ip,cint(instr(ip,".")-1)) ip=mid(ip,cint(instr(ip,".")+1)) ip2=left(ip,cint(instr(ip,".")-1)) ip=mid(ip,cint(instr(ip,".")+1)) ip3=left(ip,cint(instr(ip,".")-1)) ip4=mid(ip,cint(instr(ip,".")+1)) EnIP=cint(ip1)*256*256*256+cint(ip2)*256*256+cint(ip3)*256+cint(ip4) end function