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信息,暴露了服务器的信息。按照网页安全来讲,这是很不安全的,需要对网页的错误页面进行设置。
   以前测试时候只知道不能输入特殊字符,却不知道为什么,这次总算是知道了,原来如此...安全责任任重道远。
   还做了很多其它的安全测试方面的工作,写了这么多,下次再写其它的。都是点到为止,有兴趣的可以一起研究探讨。
   这方面要学习的东西还有很多,服务器、代码、数据库、中间件等等。

TAG: SQL注入 XSS

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-31  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 3189
  • 日志数: 3
  • 建立时间: 2012-04-05
  • 更新时间: 2012-08-05

RSS订阅

Open Toolbar