- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
web开发常见的几个漏洞解决方法
2013-04-17 ??????? ?? 作者:伍华聪
HYPERLINK javascript:; 收藏
平时工作,多数是开发Web项目,由于一般是开发内部使用的业务系统,所以对于安全性一般不是看的很重,基本上由于是内网系统,一般也很少会受到攻击,但有时候一些系统平台,需要外网也要使用,这种情况下,各方面的安全性就要求比较高了,所以往往会交付给一些专门做安全测试的第三方机构进行测试,然后根据反馈的漏洞进行修复,如果你平常对于一些安全漏洞不够了解,那么反馈的结果往往是很残酷的,迫使你必须在很多细节上进行修复完善。本文主要根据本人项目的一些第三方安全测试结果,以及本人针对这些漏洞问题的修复方案,介绍在这方面的一些经验,希望对大家有帮助。基本上,参加的安全测试(渗透测试)的网站,可能或多或少存在下面几个漏洞:SQL注入漏洞、跨站脚本攻击漏洞、登陆后台管理页面、IIS短文件/文件夹漏洞、系统敏感信息泄露。
1、测试的步骤及内容
这些安全性测试,据了解一般是先收集数据,然后进行相关的渗透测试工作,获取到网站或者系统的一些敏感数据,从而可能达到控制或者破坏系统的目的。第一步是信息收集,收集如IP地址、DNS记录、软件版本信息、IP段等信息。可以采用方法有: 1)基本网络信息获取; 2)Ping目标网络得到IP地址和TTL等信息; 3)Tcptraceroute和Traceroute 的结果; 4)Whois结果; 5)Netcraft获取目标可能存在的域名、Web及服务器信息; 6)Curl获取目标Web基本信息; 7)Nmap对网站进行端口扫描并判断操作系统类型; 8)Google、Yahoo、Baidu等搜索引擎获取目标信息; 9)FWtester 、Hping3 等工具进行防火墙规则探测; 10)其他。第二步是进行渗透测试,根据前面获取到的数据,进一步获取网站敏感数据。此阶段如果成功的话,可能获得普通权限。采用方法会有有下面几种 1)常规漏洞扫描和采用商用软件进行检查; 2)结合使用ISS与Nessus等商用或免费的扫描工具进行漏洞扫描; 3)采用SolarWinds对网络设备等进行搜索发现; 4)采用Nikto、Webinspect等软件对Web常见漏洞进行扫描; 5)采用如AppDetectiv之类的商用软件对数据库进行扫描分析; 6)对Web和数据库应用进行分析; 7)采用WebProxy、SPIKEProxy、Webscarab、ParosProxy、Absinthe等工具进行分析; 8)用Ethereal抓包协助分析; 9)用Webscan、Fuzzer进行SQL注入和XSS漏洞初步分析; 10)手工检测SQL注入和XSS漏洞; 11)采用类似OScanner的工具对数据库进行分析; 12)基于通用设备、数据库、操作系统和应用的攻击;采用各种公开及私有的缓冲区溢出程序代码,也采用诸如MetasploitFramework 之类的利用程序集合。 13)基于应用的攻击。基于Web、数据库或特定的B/S或C/S结构的网络应用程序存在的弱点进行攻击。 14)口令猜解技术。进行口令猜解可以采用 X-Scan、Brutus、Hydra、溯雪等工具。第三步就是尝试由普通权限提升为管理员权限,获得对系统的完全控制权。在时间许可的情况下,必要时从第一阶段重新进行。采用方法 1)口令嗅探与键盘记录。嗅探、键盘记录、木马等软件,功能简单,但要求不被防病毒软件发觉,因此通常需要自行开发或修改。 2)口令破解。有许多著名的口令破解软件,如 L0phtCrack、John the Ripper、Cain 等以上一些是他们测试的步骤,不过我们不一定要关注这些过程性的东西,我们可能对他们反馈的结果更关注,因为可能会爆发很多安全漏洞等着我们去修复的。
2、SQL注入漏洞的出现和修复
?1)SQL注入定义: SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入有时候,在地址参数输入,或者控件输入都有可能进行。如在链接后加入’号,页面报错,并暴露出网站的物理路径在很多时候,很常见,当然如果关闭了Web.Config的CustomErrors的时候,可
文档评论(0)