我看到了全世界最好看的眼睛。 揉眼睛的手还有双眼皮。

发布新日志

  • 2007十大Web安全漏洞 跨站脚本攻击XSS居首

    2008-05-26 14:02:25

    OWASP 2007十大Web安全漏洞第一至第十名分别为:
    1.年初曾发生在知名文件阅读器Adobe Acrobat Reader上的跨站脚本攻击(Cross Site scrīpting,XSS);
    2.疑似使微软英国网站被骇的隐码攻击(Injection Flaw,包括SQL Injection及Command Injection)居次;
    3.第三位则是Web应用程序引入外部恶意程序的恶意文件执行攻击(Malicious File Execution);
    4.应用程序可任意访问文件的Insecure Direct Object Reference;
    5.让合法使用者执行恶意程序指令却可能被允许的Cross-Site Request Forgery(CSRF);
    6.错误信息泄露机密数据的Information Leakage and Improper Error Handling;
    7.身份验证功能缺陷的Broken Authentication and Session Management;
    8.敏感数据加密不安全或无加密的Insecure Cryptographic Storage;
    9.传输数据未加密Insecure Communication;
    10.因无权限控制导致可直接存取数据的Failure to Restrict URL Access。

    OWASP台湾分会主席黄耀文在新闻稿中表示,该安全漏洞报告乃经由OWASP的资深安全专家,依Web安全弱点的严重性、与是否易于被黑客采用等依据所选出,作为网站开发人员开发时的安全参考。

    在Web 2.0流行风潮下,新的网页应用程序开发与相关技术(如AJAX)的应用,成为网站欲出奇致胜的重点,但在网站经营者争相提供创新网页服务的情况下,网页应用程序的安全性也成为新的问题。

    厂商则建议企业采用网页应用防护设备设备来检测网站漏洞。
    例如阿码科技(Armorize Technologies)即推出网页应用程序原始码检测器CodeSecure Verifier,以自动静态分析(Automated Static Analysis)技术,提供网页应用程序开发人员从开发过程到上线后的开发生命周期的原始程序代码分析。

    至于NetContinuum、F5与Check Point等厂商,则是推出网页应用防火墙(Web Application Firewall),或将其功能整并入如UTM等网络安全硬件中,以阻隔针对网页应用而来的攻击的方式,达到保护网页应用安全性的目标。

     

  • Web安全测试

    2008-05-21 08:59:27


    安全测试方面应该参照spi的web安全top 10来进行.

    目前做软件测试人员可能对安全性测试了解不够,测试结果不是很好。如果经验不足,测试过程中可以采用一些较专业的web安全测试工具,如WebInspect、Acunetix.Web.Vulerability.Scanner等,不过自动化web安全测试的最大缺陷就是误报太多,需要认为审核测试结果,对报告进行逐项手工检测核对。

    对于web安全的测试用例,可以参照top 10来写,如果写一个详细的测试用例,还是比较麻烦的,建议采用安全界常用的web渗透报告结合top10来写就可以了。

    现在有专门做系统和网站安全检测的公司,那里做安全检测的人的技术都很好,大多都是红客。

    再补充点,
    网站即使站点不接受信用卡支付,安全问题也是非常重要的。Web 站点收集的用户资料只能在公司内部使用。如果用户信息被黑客泄露,客户在进行交易时,就不会有安全感。

    目录设置
    Web 安全的第一步就是正确设置目录。每个目录下应该有 index.html 或 main.html 页面,这样就不会显示该目录下的所有内容。我服务的一个公司没有执行这条规则。我选中一幅图片,单击鼠标右键,找到该图片所在的路径"…com/objects/images"。然后在浏览器地址栏中手工输入该路径,发现该站点所有图片的列表。这可能没什么关系。我进入下一级目录 "…com/objects" ,点击 jackpot。在该目录下有很多资料,其中引起我注意的是已过期页面。该公司每个月都要更改产品价格,并且保存过期页面。我翻看了一下这些记录,就可以估计他们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。
    SSL
    很多站点使用 SSL 进行安全传送。你知道你进入一个 SSL 站点是因为浏览器出现了警告消息,而且在地址栏中的 HTTP 变成 HTTPS。如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0 以下版本的浏览器,这些浏览器不支持SSL。当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制?超过限制时间后出现什么情况?
    登录
    有些站点需要用户进行登录,以验证他们的身份。这样对用户是方便的,他们不需要每次都输入个人资料。你需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。用户登录是否有次数限制? 是否限制从某些 IP 地址登录? 如果允许登录失败的次数为3,你在第三次登录的时候输入正确的用户名和口令,能通过验证吗? 口令选择有规则限制吗?
    日志文件
    在后台,要注意验证服务器日志工作正常。日志是否记所有的事务处理? 是否记录失败的注册企图? 是否记录被盗信用卡的使用? 是否在每次事务完成的时候都进行保存? 记录IP 地址吗? 记录用户名吗?
    脚本语言
    脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录。其他只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用

  • sql注入,中文处理方法

    2008-03-28 17:02:55

    在注入中碰到中文字符是常有的事,有些人一碰到中文字符就想打退堂鼓了。其实只要对中文的编码有所了解,“中文恐惧症”很快可以克服。

    先说一点常识:

    Access中,中文的ASCII码可能会出现负数,取出该负数后用abs()取绝对值,汉字字符不变。

    SQLServer中,中文的ASCII为正数,但由于是UNICODE的双位编码,不能用函数ascii()取得ASCII码,必须用函数unicode ()返回unicode值,再用nchar函数取得对应的中文字符。

    了解了上面的两点后,是不是觉得中文猜解其实也跟英文差不多呢?除了使用的函数要注意、猜解范围大一点外,方法是没什么两样的。
  • SQL注入通过函数来判断数据库类型

    2008-03-28 15:15:00

    SQL注入通过函数来判断数据库类型
    某日,发现一目标存在SQL注入,且过滤了select等相关敏感字段,用工具暂无法判断数据库类型。
    后发现调用某些SQL函数也可判断数据库类型,虽然SQL语句大部分是通用的。但一些内置的函数还是有一定的区别。

    len和length
    在mssql和mysql以及db2内,返回长度值是调用len()函数;在oracle和INFORMIX则是通过length()来返回长度值。
    换句话说。

    当你使用and len('a')=1的时候,返回正常页面时,可以推断当前的数据库类型可能是mssql,或mysql,或是db2。反之则可能会是oracle和informix。

    @@version和version()
    在mysql内,可以用@@version或是version()来返回当前的版本信息。但无法判断是mysql还是mssql时,可以用version()函数来构造判断。
    换句话说:

    version()>1 返回与@@version>1 相同页面时,则可能是mysql。如果出现提示version()错误时,则可能是mssql。

    substring和substr
    在mssql中可以调用substring。oracle则只可调用substr

    SUBSTRING('abc',1,1)=a 返回成功,刚可能是mssql。使用substr('abc',1,1)=a 返回成功,则可能为oracle


    Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1221838

Open Toolbar