最近我的网站经常把js脚本注入到数据,清除了又来。先后在网上找了很多的方法,还是没有用的,十分恼火。
首先先告诉大家一个批量清除代码的sql语句。
update 表名 set 字段=replace(字段,'script src=http://3b3.org/c.js></script','')
1、分析那些无聊的人,或者有些病态的人究竟做了些什么 。
通过iis的日志或者microsoft urlscan 日志查看,在一些通过id查询数据库内容的时候后面被人加了一段很长的字符窜。
%%3B%%44%%65%%43%%4C%%61%%52%%45%%类似这样的字符窜,一定是其他的方式编码
首先我们先用工具分析下如此之长的字符窜究竟包含了些什么内容。
通过批量替换工具把%%全部替换成空,然后把得到的字符串通过其他的转码工具,转成字符窜。
;DeCLaRE @S NvArCHaR(4000);SeT @S=CaSt(0x45这里代码去掉了06F007200 aS NvArChAR(4000));ExEc(@S);--
就是一段与通过id查询数据库同时执行的sql,就给数据库某些表的字段加入了js病毒连接。
2、所以我们的原来的防sql注入的字符串就需要升级了。
存储过程强制参数类型,数据长度
然后自己测试下,程序是否拦击了这些16进制的代码,本人测试过是可以拦击的,如果不加入这些是不拦击的
照样可以注入到数据库。