技术开发 频道

web威胁类型学习笔记

  【IT168 评论】

  做安全测试,首先要了解所测的那些漏洞的形成原理,学习并笔记之。

  1.孤立资源泄漏

  孤立资源——在整个web应用中没有一个链接直接指向该资源,但却在该应用范围内存在,通过某URL请求可以直接访问到。如下图例子,很显然暴露了站点的数据库结构!

  web应用在良好的编码风格和雷同架构下,会出现很多相似的地方。见名知义给了开发者们便利,也一样给了攻击者便利。谁都知道test可能是一个测试页面,logs目录下可能是一些日志文件,于是攻击者也知道这个规律,穷尽所有猜测就可以形成字典,即使这个字典不够完整,可以利用模式匹配。

  2.参数操纵

  Web应用程序总是需要用户交互,需要用户提供一些数据。攻击者则总是会提供一些超出期望的数据,让web应用程序抛异常。虽然大多web站点都不会出现将包含了内部信息的错误报告到浏览器。但这并没有解决根本的问题,Web应用仍然存在安全威胁。

  如SQL盲注。如果/xxx.jsp?id=1与/xxx.jsp?id=1 and 1=1的返回结果没有差别,而/xxx.jsp?id=1 and 1=2则返回报错,那么这里很有可能存在SQL Injection漏洞,进一步,使用(以mysql数据库为例)/xxx.jsp?id=1 and (select SUBSTRING((select user from mysql.user limit 1),1,1))=’a',可以破解出一个数据库用户名。

  XPath注入,如同针对数据库的SQL注入,XPath就是针对XML文档的注入,只是XML中只有字符串。如上面的例子,如果请求访问的是XML文档,则尝试/xxx.jsp?id=1′ and ‘1′=’1′。

  文件提取,核心的思路是利用了操作系统的父路径——“..”,通过一级级访问上级目录从而访问到web范围以外服务器操作系统中的其他文件。

  XSS,有Reflected XSS,一般表现为攻击者构造包含XSS的URL,再利用一些社会工程学手段骗得受害者点击。有Stored XSS,如果包含XSS的代码被存入了网站数据库中,而且,页面查询显示这笔数据时没有做过额外的处理,那么只要浏览这张页面,就会遭到攻击。有DOM-based XSS,类似Reflect XSS,不同的是由应用程序客户端已有的脚本来实现,比如url为/xxx.jsp?name=yyy的请求,在回转的页面中,直接用JavaScript的输出函数window.execScript(getUrlParam(“name”));直接输出包含了代码的变量并得到执行。

  会话劫持,是指攻击者以某种形式获得他人的session id,并以他人身份访问资源。

  3.其他

  CSRF,简单来说,正常登录的用户访问A站点,访问到某个链接,而这个链接所指向的页面,先构造好A站点某个表单的请求,接着提交请求,最后locate到A站点或其他地方,在正常用户看来,只是做了一个页面跳转,而在期间,他不自知的提交了某个表单的请求,比如发了一条垃圾评论(很可能包含了攻击者的那个特别链接)。之所以称为跨站,是因为伪造的请求在另一个完全不搭界的站点上完成。

  Phishing,说白了就是网站伪造欺诈,从而简单的获得用户的个人信息。

  DoS,一句话,恶意请求的数量过多,导致正常请求不能处理而被拒绝。

0
相关文章