风讯4.0未公开Bug
程序员文章站
2022-06-26 08:39:09
补充一句,这个东西只是看代码时随便看到的一处,其他地方还多着呢,当时写下来还没测试,我就记了下来,其中有什么不对,还望理解。哈哈~ 前段时间网上流行的sql注入是利用伪造代...
补充一句,这个东西只是看代码时随便看到的一处,其他地方还多着呢,当时写下来还没测试,我就记了下来,其中有什么不对,还望理解。哈哈~
前段时间网上流行的sql注入是利用伪造代理ip来实施攻击,这个http_x_forwarded_for在一段时间内倍受人们关注,今天在看风讯4.0 的时候也发现这样一个注入点,可笑的是程序员是考虑到对http_x_forwarded_for的过滤,但是在带入查询时,好象是忘记把过滤的变量带入,而直接带入了没过滤的visitip。
下面是分析代码:
在stat/index.asp文件中第18行,
visitip = request.servervariables("http_x_forwarded_for")
直接把http_x_forwarded_for赋值给visitip变量
在文件第61行中
enaddress = enaddr(enip(visitip))
这里用了2个函数对visitip进行过滤,但是看最后的赋值却给了enaddress这个变量,而下面第62行的查询却又直接带入的是没有过滤的visitip变量,所以在这里就可以对其进行sql注入。
set rscouobj = conn.execute("select id from fs_ss_stat where ip='"&visitip&"'")
在这个文件中又有多处查询用到visitip这个变量,其补救方法也很简单,就是把enaddress = enaddr(enip(visitip))改成visitip=enaddr(enip(visitip))
这里可以通过抓包在数据包中增加
http_x_forwarded_for:123'+and+user>0--
这样来注入,如果在access版本中,那么就可以通过
http_x_forwarded_for:123'+and+1=1+and+'1'='1这样的形式来注入
其中可以用union来暴字符内容。
ok,具体就等你来实现吧,多动手。
by
whytt
前段时间网上流行的sql注入是利用伪造代理ip来实施攻击,这个http_x_forwarded_for在一段时间内倍受人们关注,今天在看风讯4.0 的时候也发现这样一个注入点,可笑的是程序员是考虑到对http_x_forwarded_for的过滤,但是在带入查询时,好象是忘记把过滤的变量带入,而直接带入了没过滤的visitip。
下面是分析代码:
在stat/index.asp文件中第18行,
visitip = request.servervariables("http_x_forwarded_for")
直接把http_x_forwarded_for赋值给visitip变量
在文件第61行中
enaddress = enaddr(enip(visitip))
这里用了2个函数对visitip进行过滤,但是看最后的赋值却给了enaddress这个变量,而下面第62行的查询却又直接带入的是没有过滤的visitip变量,所以在这里就可以对其进行sql注入。
set rscouobj = conn.execute("select id from fs_ss_stat where ip='"&visitip&"'")
在这个文件中又有多处查询用到visitip这个变量,其补救方法也很简单,就是把enaddress = enaddr(enip(visitip))改成visitip=enaddr(enip(visitip))
这里可以通过抓包在数据包中增加
http_x_forwarded_for:123'+and+user>0--
这样来注入,如果在access版本中,那么就可以通过
http_x_forwarded_for:123'+and+1=1+and+'1'='1这样的形式来注入
其中可以用union来暴字符内容。
ok,具体就等你来实现吧,多动手。
by
whytt