美文网首页
第二篇 原理篇(2)上传 xss

第二篇 原理篇(2)上传 xss

作者: 留白_bb77 | 来源:发表于2019-04-26 22:26 被阅读0次

    解析漏洞

    IIS6.0在解析文件时存在以下两个解析漏洞。

    1.当建立*.asa、 *.asp 格式的文件夹时,其目录下的任意文件都将被IIs当作asp文件来解析。

    2.当文件为* .asp;1.jpg时,IIS 6.0同样会以ASP脚本来执行

    Apache在解析文件时有一个原则:当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名为止,如果都不认识,则会暴露其源代码。

    绕过客户端检测

    当单击“提交”按钮后, Form表单将会触发onsubmit事件, onsubmit事件将会调用checkFile函数。checkFile 函数将会检测文件扩展名是否合法,并返回一个布尔值。如果checkFile函数返回true,则表单提交,反之,将弹出对话框提示“文件不合法",文件将无法提交到服务器。

    1.使用firebug删除onsubmit事件

    2.使用burpsuite修改扩展名,在HTTP协议中有请求头Content-Length,代表实体正文长度,如果此时的filename 修改也就意味着实体正文长度增加或者减少了,这时就应该修改Content-Length请求头

    绕过服务器检测

    黑名单:1.大小写 

    2.从黑名单中找到Web开发人员忽略的扩展名

    3.在Windows系统下,如果文件名以“.”或者空格作为结尾,系统会自动去除“.”与空格,利用此特性也可以绕过黑名单验证。

    白名单

    mime验证

    目录验证  在文件上传时,程序通常允许用户将文件放到指定的目录中,然而有些Web开发人员为了让代码更“健壮”,通常会做-一个操作,如果指定的目录存在,就将文件写入目录中,不存在则先建立目录,然后写入

    截断上传攻击

    文本编辑器上传漏洞 

    敏感信息暴露  黑名单策略错误 任意文件上传漏洞

    上传漏洞最终的形成原因主要有以下两点:

    1.目录过滤不严,攻击者可能建立畸形目录:

    2.文件未重命名,攻击者可能利用Web容器解析漏洞。

    修复

    1.接收文件及其文件临时路径。

    2.获取扩展名与白名单做对比,如果没有命令,程序退出。

    3.对文件进行重命名。

    xss类型

    反射型  

    存储型(持久型)  

    DOM XSS全称为Document Object Model,即文档对象模型,DOM通常用于代表在HTML、XHTML和XML中的对象。使用DOM可以允许程序和脚本动态地访问和更新文档的内容、结构和样式。

    通过JavaScript可以重构整个HTML页面,而要重构页面或者页面中的某个对象,JavaScript就需要知道HTML文档中所有元素的“位置”。而DOM为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。根据DOM规定,HTML文档中的每个成分都是一一个节点。

    DOM的规定如下。

    1.整个文档是一一个文档节点;  

    2.每个HTML标签是-一个元素节点:

    3.包含在HTML元素中的文本是文本节点:

    4.每一个HTML属性是一个属性节点:

    5.节点与节点之间都有等级关系。

    HTML的标签都是-一个个节点,而这些节点组成了DOM的整体结构:节点树

    检测xss

    手工检测

    1.可得知输出位置

          输入一些敏感字符,例如“<、>、”、’、()”等,在提交请求后查看HTML源代码,看这  <些输入的字符是否被转义。

          在输出这些敏感字符时,很有可能程序已经做了过滤,这样在寻找这些字符时就不太容易,这时可以输入“AAAAA<>"”&"字符串,然后在查找源代码的时候直接查找AAAAA或许比较方便。

          2.无法得知输出位置

          非常多的Web应用程序源代码是不对外公开的,这时在测试Xss时就有可能无法得知输入数据到底在何处显示,比如,测试某留言本是否存在xss,那么在留言之后,可能需要经过管理员的审核才能显示,这时无法得知输入的数据在后台管理页面处于何种状态,例如:

          在<div>标签中: <div>XSS Test </div>

          在<input>标签中: <input type="text" name="content" value= "XSS Test" 1>

    对于这种情况,通常会采用输入“”/>XSs Test"来测试。

    软件自动检测

    xss利用

    xss会话劫持

    xss framework

    xss getshell

    xss 蠕虫

    修复

    htmlspecialchars()、 htmlentities0函 数可以把一些预定义的字符转换为HTML实体。

    & (和号)成为&amp:

    ”(双引号)成为&quot;  <

    ' (单引号)成为&#039;

    < (小于)成为&It;

    > (大于)成为&gt。

    编码(HTML css  js)

    httponly阻止客户端脚本访问cookie

    相关文章

      网友评论

          本文标题:第二篇 原理篇(2)上传 xss

          本文链接:https://www.haomeiwen.com/subject/hwxcnqtx.html