Web安全测试(1) SQL注入 XSS
上一篇 /
下一篇 2012-08-05 14:27:33
/ 个人分类:安全测试
安全测试其实可以转变为黑客,这段时间阅读了一些资料,弥补自己在安全方面欠缺的知识,这次测试的系统,主要的安全方面缺陷是
SQL注入和
XSS。工具可以发现大部分错误,但是,需要举一反三的手工测试才能达到最优测试。不然我们都要失业了 :) ,自动化可以减少人工工作,但是不能替代。
SQL注入测试比较容易,主要是查询方面的,现阶段用的是APPSCAN和WEBINSPECT,这两个工具用起来效果方面可能是WEBINSPECT效果比较好一点。但是从易用性和中文支持方面看来,APPSCAN更优秀,完美支持中文。安全方面要求比较高,可以两种一起进行测试。
SQL注入测试,如果有条件查看
日志最好是查看日志。我们的是ORACLE数据库,比如select * from table where a=输入的值 这里就有一个SQL注入点,有经验的黑客,可以造SQL UNION查询等一些精妙的SQL语句出自己本查不到的一些数据.最好的修改方法是通过参数传递的方式,例:select * from table where a=? [?的值]这样的话,没有注入的风险。
其次,可以做过滤,把一些特殊字符过滤掉,比如说单引号括号等,这里面要特殊注意一点,任何时候都不要相信客户端的校验,客户端校验,那对于服务器来讲,是无效的,因为可以通过一些工具,避开客户端校验来提交参数。
XSS跨站攻击测试,也可以用扫描工具测试,但是覆盖往不全,所以不需要迷信扫描工具。
跨站攻击是对输入不严格或者过滤没做好造成的,比如说输入内容对< ' 等这些没有转义,就会有风险,测试的时候可以输入 "><script>alert('XSS');</script><"来测试是否有此方面的漏洞,测试的时候要对所有具有输入的地方进行此项测试,扫描工具有的地方是扫描不到的,这次项目中大部分注入攻击可以扫到,但是有一些持久性的XSS没有扫到,可以注入到
数据库中,这方面要特别小心,上传文件(这个地方比较容易忽略)的回显,输入的显示,都有可能是XSS的注入点。
还有一些BUG是校验没有考虑周到,暴露了服务器的信息,产生安全隐患,比如输入用户名和密码的地方,密码通过加密,可以用WEBSCRAPE拦截客户端提交的数据,然后进行篡改数据,致使页面产生500错误,而服务器没有对跳转到相关的错误页面,直接出来的500信息,暴露了服务器的信息。按照网页安全来讲,这是很不安全的,需要对网页的错误页面进行设置。
以前测试时候只知道不能输入特殊字符,却不知道为什么,这次总算是知道了,原来如此...安全责任任重道远。
还做了很多其它的安全测试方面的工作,写了这么多,下次再写其它的。都是点到为止,有兴趣的可以一起研究探讨。
这方面要
学习的东西还有很多,服务器、代码、数据库、中间件等等。
相关阅读:
- 如何防范SQL注入——测试篇 (fishy, 2009-12-23)
- 安全测试(一):安全测试简介 (fishy, 2009-12-24)
- 如何防范XSS跨站脚本攻击——测试篇 (fishy, 2009-12-31)
- XSS跨站脚本攻击:简述(转) (jiang8640, 2010-1-11)
- SQL注入 (fengzhulin, 2010-3-23)
- 跨站脚本攻击XSS攻击与防范指南 (yangkinki, 2010-11-09)
- 【安全测试】XSS漏洞定位和修复方法——htmlspecialchars() 函数 (ginnyguo330, 2011-8-25)
- 【安全测试】为什么要进行单引号的转义 (ginnyguo330, 2011-8-25)
- CSS or XSS攻击 (肖三少, 2012-5-31)
- 安全测试之XSS攻击原理 (dj7491916, 2012-6-14)
收藏
举报
TAG:
SQL注入
XSS