首页
网页制作
网络编程
脚本专栏
数据库
网站运营
网络安全
平面设计
CMS教程
搜索
建站极客
网络安全
脚本攻防
正文
网站被SQL注入防范(WebKnight)
所属分类:
网络安全
/
脚本攻防
阅读数: 2119
收藏 0
赞 0
分享
网站被“成功”注入,网站一些页面被插入了下载病毒的代码,经查:
生产服务器的代码没有任何被改动过的迹象,排除服务器被入侵,代码被篡改的可能;
有病毒下载代码的部分,在数据库里真实看到了篡改迹象,可以排除ARP欺骗的可能;
同上,能确定网站被SQL注入攻击了,因为数据库被篡改了。
由于是被攻击后马上发现的现象,可以判断攻击此刻应该正在继续(后来检查的结果证明的确是这样),如何能尽快阻止攻击呢?我有2个思路(如果各位有更好的思路,期待您的指点):
马上找到含有SQL注入漏洞的程序,修复之;
马上增加一个应用程序防火墙(Application Firewall),从HTTP请求时就阻断攻击。
第一个思路几乎是不可能马上完成的任务,第二个思路还可行,因为前段时间上海天存信息技术有限公司曾提供给我们试用iWall应用防火墙(正式产品是收费的),还记得当时一位朋友提供给我的开源应用程序防火墙WebKnight,我信赖开源,所以我选择了后者。
如何在IIS6中安装WebKnight?
我们的 WebServer 是 IIS6,所以这里只介绍IIS6的安装,我见有些帖子介绍WebKnight的安装时,说只有把IIS调整成IIS5.0隔离模式(IIS5.0 isolation mode)才可以,但实际上WebKnight的官方网站有介绍不需要此操作即可安装的办法,但这需要放弃WebKnight的全局配置特性,相比放弃IIS6.0,我更愿意放弃WebKnight的这个特性:
首先下载一份WebKnight,下载地址:http://aqtronix.com/?PageID=99#Download(注,这不是直接下载地址,点开后需要再点击WebKnight 2.2 (Release date: 2008.09.02),以防更新后各位朋友还下载旧的版本)
解压后有2个目录Setup、Source,其中Source是源码,我们这里只需要安装,进入Setup
进入Setup后还有2个目录:w32代表32位;x64代表64位;按照您服务器的操作系统来选择即可,我这里选x64(由于WebKnight的32位、64位文件结构完全相同,所以下面的内容完全适用与32位操作系统)
确保自己的每一个网站都运行在独立的应用程序池中;
在WebKnight的配置程序中
取消选择“Global Filter Capabilities”下的“Is Installed As Global Filter”
选择“Logging”下的“Per Process Logging”,这样每一个应用程序池的实例都会加载一个单独的WebKnight实例
确保Windows用户NETWORK SERVICE(或您设定的应用程序池的其他用户)有WebKnight文件夹的修改权限
拷贝第3步中x64文件夹中的所有文件到服务器上(如:F:\WebKnight\WebSite1\),注意:每一个网站均需要一个独立完整的WebKnight,不可共用
打开IIS Manager
在需要安装WebKnight的网站上点击右键 > 属性 > ISAPI filters
点击添加 > Filter Name随意,如(WebKnight),Excutable选择WebKnight目录下的WebKnight.dll(注意:要选网站所属的WebKnight目录,不要选错)
点击确定,完成安装
点击WebKnight目录中的Config.exe,具体配置方法见下一节,配置完成后再进行下一步,切记
在以上操作后,重新启动IIS(重启IIS其实可以避免,只需将配置WebKnight的网站的应用程序池停止再启动即可)
如何配置WebKnight
声明:由于WebKnight的配置很多,这里我只写一下推荐配置,个人观点,仅供参考,如果更好的建议,期待您的分享
在WebKnight目录中(如:F:\WebKnight\WebSite1\),双击Config.exe开始配置,在弹出的Open Configuration对话框中,选择WebKnight.xml
Scanning Engine 扫描引擎
无需更改默认配置
Incident Response Handling 已发生攻击的处理
如果您希望有人攻击时看到的页面是WebKnight目录中的denied.htm,选择Response Directly即可;
如果您希望有人攻击时看到的页面是您网站下的某个文件(如:http://www.xxx.com/Error/Denied.htm),选择Response Redirect,并在下面的Response Redirect URL中填写您网站下文件的路径(如:/Error/Denied.htm)
如果您只希望记录攻击,但不希望中断用户的访问,您可以选择Response Log Only
Logging 日志
如果日志量特别大,请取消选择Enabled,否则很有可能磁盘可用空间不知不觉就没有了,还有可能有比较严重的磁盘I/O性能问题
日志默认是存储在WebKnight目录下的LogFiles文件夹中,如果您想改变该路径,可以修改Log Directory的值
WebKnight每天的日志是由不同文件存储的,默认保存28天的数据,您可以在Log Retention中修改该值
Connection 连接
无需更改默认配置
Authentication 安全认证
无需更改默认配置
Request Limits 请求限制
取消选择Limit Content Length(Content-Length是header中的一个值,代表所请求元素的尺寸),我个人觉得这项没有必要选择,因为元素尺寸有可能很大
取消选择Limit URL(即限制URL的长度),原因同上,URL也可能很长
取消选择Limit Query String(即查询字符串的长度),原因同上,查询字符串也可能很长
取消选择Limit HTTP Version(即HTTP版本),我感觉没有必要限制HTTP版本,有可能会造成使用过旧版本浏览器的用户无法访问自己的网站
取消选择Use Max Headers(即限制Headers中各项的最大长度)。我一开始是选择了该项的,但在我的实践中,由于我们用了网站流量统计、广告合作代码等,导致Headers中的一些项超长,阻止了相当多的正常请求,所以我想干脆一劳永逸,取消选择了该项
URL Scanning 网址扫描
取消选择RFC Compliant URL、RFC Compliant HTTP Url、Deny Url HighBitShellCode,勾选了这三项,很多不太标准的URL格式就会无法访问,比如包含中文的URL
取消选择Deny URL Backslash,因为我们网站中,“\”在URL里面也会用到
在URL Denied Sequences中,描述了拒绝请求的一些URL字符串,如果其中有您网站中正在使用的,可以删除,方法是选中要删除的项目,右键,点击Remove Selected
Mapped Path 映射目录
Use Allowed Paths,这项保持勾选,因为这项可以限制Web程序可以访问的服务器上的物理路径,我们需要做的只是在下面的Allowed Paths中添加上我们自己的网站物理路径,比如F:\WebSite1,添加方法是在任意项上点击右键 > Insert Item > 输入物理路径后,回车即可
Requested File 被请求的文件
在Denied Files(拒绝请求的文件)中,去掉网站允许请求的文件,如:log.htm、logfiles
在Denied Extensions(拒绝请求的后缀名)中,去掉网站循序请求的后缀名,如:shtm
Robots 蜘蛛程序
无需更改默认配置
Headers 头信息
Server Header中,可以修改Header中的Server字段的值,我觉得这个也可以改改,挺好玩的
为了防止组织合法的请求,取消勾选RFC Compliant Host Header、Use Denied Headers
ContentType 内容类型
取消选择Use Allowed Content Types,若选中,则无法上传文件
Cookie 这个就不需要翻译成中文了吧:)
无需更改默认配置
User Agent 用户代理/客户端
取消勾选Deny User Agent Empty、Deny User Agent Non RFC,否则有部分合法访问会被拒绝
Referrer 访问来路
取消选择Use Referrer Scanning,因为我觉得一个访问的来路可能不会有太严重的安全问题,还是为了尽量让合法的请求通过,我选择取消勾选该项
Methods HTTP请求方法
无需更改默认配置
Querystring 查询字符串
无需更改默认配置
Global Filter Capabilities 全局过滤功能
取消勾选Is Installed As Global Filter,切记,该项一定要取消选择,否则WebKnight不能正产工作
SQL Injection SQL 注入
无需更改默认配置
Web Applications Web应用程序
勾选Allow File Uploads,否则上传文件的功能会失效
勾选Allow Unicode
勾选Allow ASP NET
如果您的网站需要支持ASP,勾选Allow ASP
同理,您的网站需要支持什么,请您自己选择需要勾选的项
修改后,记得通过菜单栏File > Save 来保存配置(或通过快捷键Ctrl+S),保存配置后,就可以重启IIS或应用程序池来启用WebKnight了
提示:您可以通过查看WebKnight的日志,来查看哪些合法请求被阻止了,然后修改相应的配置
更多精彩内容
其他人还在看
ewebeditor 上传遇到防火墙限制的解决办法 图文
今天看了前面的原创帖子说到eweb遇到asp,asa,cer被限制访问拿不了shell,正好这个问题我是知道的。应该很多大牛都会的吧,估计还是有些不会的,就将就看看吧
评论 0
收藏 0
赞 0
分享
Phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞
phpcms本地包含类漏洞,如果该文件包含了/include/common.inc.php就可以包含执行很多后台才能执行的文件了
评论 0
收藏 0
赞 0
分享
评论 0
收藏 0
赞 0
分享
php版shell.users加管理员帐号的方法
09年的时候 LCX 写出了 js版 和vbs 版的shell.users 加管理员帐号的方法,后来我就想把它改成PHP 版,由于对代码分析得不够准确,所以到最近才写出来
评论 0
收藏 0
赞 0
分享
讯时系统(xuas)最新通杀漏洞0day图文说明
讯时系统(xuas)最新通杀漏洞0day图文说明,使用讯时网站管理系统的朋友可以参考下。
评论 0
收藏 0
赞 0
分享
讯时漏洞一小结
在网上也有什么讯时三板斧的文章..但我个人觉得有时候靠那三种还是入侵不了(随着版本的更新)
评论 0
收藏 0
赞 0
分享
DedeCms V5.6漏洞 变量未初始化 导致鸡助漏洞
DedeCMS内容管理系统软件采用XML名字空间风格核心模板:模板全部使用文件形式保存,对用户设计模板、网站升级转移均提供很大的便利
评论 0
收藏 0
赞 0
分享
dedecms v5.6 GBK 注入漏洞利用(member/index.php)
会员中心首页(../member/index.php)函数过滤不严格造成盲注,数据库错误模式,XSS
评论 0
收藏 0
赞 0
分享
DEDECMS 5.6最新Get Shell漏洞 DEDECMS 5.3/5.6
DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。
评论 0
收藏 0
赞 0
分享
DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布)
DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布) ,使用dedecms5.6的朋友可以参考下。
评论 0
收藏 0
赞 0
分享
查看更多
网络赚钱
更多
网赚之谈:做什么网站才能让我们草根站长有个出路
网上怎么赚钱 网络赚钱需要注意哪些东西
巴西世界杯复盘:七大移动营销案例图文解析
全面剖析日赚500元项目的骗局
百度图+推广上线 如何在图片上投放广告_图片屏蔽不想出现图+广告
网站如何靠SEO盈利?先把网站包装成专卖店吧
站长故事
更多
喜马拉雅创始人自述:网络电台一年半获取7000万用户
奇幻咔咔3D小熊孟得明 揭秘瞬间火爆网络的背后故事
我是怎么赚到人生的第一个百万的
华人首富李嘉诚投资互联网的故事
如何让自己的网站流量暴增并增加成交率
精品内容永不过时,个人站长应自我审视