03上传漏洞基础与进阶.ppt

上传人:灯火****19 文档编号:134947639 上传时间:2020-06-10 格式:PPT 页数:80 大小:2.97MB
返回 下载 相关 举报
03上传漏洞基础与进阶.ppt_第1页
第1页 / 共80页
03上传漏洞基础与进阶.ppt_第2页
第2页 / 共80页
03上传漏洞基础与进阶.ppt_第3页
第3页 / 共80页
03上传漏洞基础与进阶.ppt_第4页
第4页 / 共80页
03上传漏洞基础与进阶.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《03上传漏洞基础与进阶.ppt》由会员分享,可在线阅读,更多相关《03上传漏洞基础与进阶.ppt(80页珍藏版)》请在金锄头文库上搜索。

1、上传漏洞 王朋涛 深信服北京安全团队 上传整体框架WebShell上传探测WebShell上传利用执行WebShellWebShell提权防御与逃逸常用工具总结 培训提纲 上传整体框架 上传整体框架 WebShell上传主要包括探测和利用阶段 具体如下 探测阶段 该阶段主要是搜集可测试点 以方便下一步的利用 利用阶段 该阶段主要是利用发现的上传漏洞上传并执行WebShell WebShell上传渗透测试框架 WebShell上传探测 WebShell上传探测 收集可测试点 常见的可测试点包括应用程序上传功能 诸如上传头像 附件上传等 用户可控的输入点或者参数 页面POST表单部分 url参数

2、sql注入点等 HTTP开启的方法 诸如WebDAV 等 收集可测试点的过程中 应尽量确保覆盖范围 不遗漏每一个可测试点 收集可测试点 利用WVS的spider工具收集可测试点 如下图 利用WVS的spider工具收集可测试点 如下图 spider发现了危险的上传目录 红框1处 开启了WebDAV方法等漏洞 根据扫描结果方便接下来依据不同结果进行利用 WebShell上传探测 WebShell上传利用 WebShell上传利用 上传方法 直接上传WebShell绕过客户端检测上传WebShell绕过服务端文件扩展名检测上传WebShell绕过服务端MIME类型检测上传WebShell绕过文件内

3、容检测上传WebShell绕过服务端目录路径检测上传WebShell利用服务器漏洞上传WebShell利用sql注入上传WebShell利用WebDAV上传WebShell利用 htaccess文件上传WebShell 直接上传WebShell探测到上传点后 接下来进入上传WebShell步骤 假如服务器端对用户提交参数或者文件没有进行过滤或者过滤不当 则能够直接上传WebShell 那么接下来进入执行WebShell步骤即可 WebShell上传利用 绕过客户端检测上传WebShell客户端检测即利用响应页面js脚本检测用户输入的一种方法 该方法在客户端进行 其明显特征是在用户上传文件到服务

4、器之前进行检测 假如不符合要求 会提示相应错误 WebShell上传利用 绕过客户端检测上传WebShell服务器端含有js检测脚本的文件UPLOAD CS 1 aspx 代码如下图上图红框1处为检测用户上传文件的js脚本 该脚本限制只能上传 txt和 docx两种类型 红框2处是利用onmouseover事件触发check file函数 WebShell上传利用 绕过客户端检测上传WebShell输入 http IP UPLOAD CS 1 aspx 同时上传1 asp文件 页面返回如下图 WebShell上传利用 绕过客户端检测上传WebShell鼠标刚点击 上传文件 按钮便弹出了一个警告

5、对话框 查看返回HTML页面的源代码 WebShell上传利用 绕过客户端检测上传WebShell使用代理工具绕过客户端验证 例如上传1 asp文件 先将文件名改为1 txt 打开burpsuite代理工具 点击 上传文件 按钮 WebShell上传利用 绕过客户端检测上传WebShell把上图红框处1 txt改为1 asp 然后点击 forward 按钮 查看服务器端Files文件夹 如下图 WebShell上传利用 绕过服务端文件扩展名检测上传WebShell服务器端文件扩展名检测是利用服务器端应用程序检测用户上传文件的后缀名 从而做出允许或者阻止的一种方法 该方法包含黑名单和白名单两种形

6、式 具体如下 黑名单检测 一般是建立一个专门的blacklist文件 里面枚举常见的危险文件后缀 白名单检测 一般是定义一个允许或者阻止用户上传文件类型的后缀的文件 里面枚举相应的文件后缀 WebShell上传利用 绕过黑名单检测方法文件名大小写绕过 诸如AsP Aspx之类的后缀绕过黑名单检测 黑名单列表绕过 用黑名单里没有的后缀文件进行攻击 iis默认执行 asp asa cer 有时候黑名单过滤不全 没有过滤掉像后缀为asa cer之类的文件 但这些文件可以像asp文件一样执行 此时可以使用这些后缀绕过黑名单 WebShell上传利用 绕过黑名单检测方法特殊文件名绕过 比如发送的HTTP

7、包里把文件名改成test asp 或test asp 下划线为空格 这两种命名方式在windows系统里是不被允许的 所以需要在代理工具burpsuite进行修改 然后绕过验证后 会被windows系统自动去掉后面的点和空格 但注意Unix Linux系统没有此特性 0 x00截断 在许多语言的常用字符串处理函数中 0 x00被认为是终止符 比如应用只允许上传jpg图片 那么可以构造文件名为2 asp 00 jpg jpg绕过了应用的上传文件类型判断 但对于服务器来说 此文件因为 00字符截断的关系 最终会以2 asp存入路径里 WebShell上传利用 绕过白名单检测方法0 x00截断 基于

8、白名单检查主要使用0 x00截断绕过 同黑名单0 x00截断绕过 下图服务器端白名单检测文件为UPLOAD CS aspx cs 部分代码如下图 WebShell上传利用 绕过白名单检测方法下图使用白名单规定了不允许上传后缀为asp aspx以及dll的文件 WebShell上传利用 绕过白名单检测方法输入 http IP UPLOAD CS 2 aspx 如果直接上传2 asp文件 页面返回如下图 WebShell上传利用 绕过白名单检测方法把上传文件名改为2 asp 00 jpg 继续上传 页面返回如图 从上图可以得出结论成功上传2 asp 00 jpg文件 jpg绕过了应用的白名单检测

9、但对于服务器来说 由于后台某些函数作用 诸如CreateTextFile 此文件会被 00字符截断 最终会以2 asp存入路径里 WebShell上传利用 绕过服务端MIME类型检测上传WebShell有时候仅仅对文件名后缀进行判断并不能有效阻止恶意文件的上传 比如某服务器只允许上传jpg文件格式 不允许上传后缀为php等文件 但是把后缀为php改为后缀为jpg上传到服务器 某些情况下也能执行上传文件 因此对文件格式进行检测十分必要 也就是服务器端MIME类型检测 服务器端MIME类型检测asp aspx利用response对象的ContentType属性 php利用 FILES userfi

10、le type jsp也使用response对象的ContentType属性 与asp类似 WebShell上传利用 绕过服务端MIME类型检测上传WebShell接下来以aspx为例通过检测http包的content type字段的值来判断上传文件是否合法 实验使用的服务器端文件为mime aspx 部分代码如下图 上图红框处使用POSTFile对象的ContentType属性 限定只允许上传application zip类型 WebShell上传利用 绕过服务端MIME类型检测上传WebShell输入 http IP mime aspx 上传文件2 asp文件 页面返回如下图 上图返回错误

11、页面 提示 不支持的mime文件 接下来使用burpsuite拦截请求 WebShell上传利用 绕过服务端MIME类型检测上传WebShell改图上图中红框处为application zip 再次上传2 asp文件 查看files文件夹 该文件夹为上传文件默认目录 页面返回下图 WebShell上传利用 绕过文件内容检测上传WebShell文件内容检测即通过检测特定文件某些特殊标志位来判断是否是允许上传的一种方法 以后缀为 jpg图片文件为例 该文件头有一组特殊二进制数标识FFD8FFE000104A464946 这些二进制数也叫文件幻数 那么就可以通过判断上传文件的文件头来验证文件的类型

12、其实检测文件幻数只是检测的一项内容 还可以对文件相关信息 文件渲染加载后检测 面对这些检测 可以把一句话木马注入图片文件最后面 这样既实现了代码注入也不会破坏图片结构 具体步骤包括 代码注入图片 引用创建的文件 使用客户端连接一句话木马 WebShell上传利用 代码注入图片先准备图片picture jpg 然后把asp一句话木马 诸如 插入图片最后 如下图所示 上图红框1出为标识jpg文件的幻数 红框2处为植入的一句话木马 把该图片上传到服务器端 WebShell上传利用 引用上传的文件同时创建一个引用包含一句话木马的图片的文件picture asp 代码如下 把该文件上传到服务器端 这里之

13、所以先上传jpg文件 再上传一个引用上传jpg的asp文件 主要目的是为了隐藏一句话木马的目的 WebShell上传利用 使用客户端连接一句话木马客户端代码c1 html代码如下图 其中Adodb Stream是ADO的Stream对象 提供存取二进制数据或者文本流 从而实现对流的读 写和管理等操作 WebShell上传利用 使用客户端连接一句话木马该代码作用是连接服务器端一句话木马 然后上传大马 使用浏览器打开客户端c1 html 如下图所示 WebShell上传利用 使用客户端连接一句话木马上图红框处为海洋2005木马 点击提交后 访问上传木马 如下图 WebShell上传利用 绕过服务端

14、目录路径检测上传WebShell服务器端目录路径检测即对用户提交目录路径参数进行检测的一种方法 有时候检测不够严谨而导致可以用 00截断进行攻击 该漏洞的本质同黑名单检测 00截断本质一样 但该漏洞要求服务器端应用程序具有处理用户提交的目录路径参数函数 不具有通用性 这里仅介绍下原理 以fckeditorphp 2 6 4任意文件上传漏洞为例 存在漏洞代码如下图 WebShell上传利用 绕过服务端目录路径检测上传WebShell输入 fckeditor264 filemanager connectors php connector php Command FileUpload Type Im

15、age CurrentFolder fuck php 00 gifHPPT 1 0CurrentFolder这个变量的值会传到上图有漏洞代码ServerMapFolder resourceType folderPath sCommand 中的形参 folderPath里 而 folderPath在这个函数中并没做任何检测 就传入CombinePaths 函数 同时变量CurrentFolder中 00后面的会被截断 实际上传的是fuck php 如上图可知上传WebShell成功 WebShell上传利用 利用过滤不完全上传WebShell利用过滤不完全把变形或者加密木马写入服务器端是目前得到

16、WebShell的最为主要的方法之一 该部分属于木马逃逸 在后面进行详细介绍 WebShell上传利用 利用服务器漏洞上传WebShellWeb服务器解析漏洞产生是由于webserver本身特性功能设计存在缺陷造成的漏洞 各主流服务都曾被爆文件解析漏洞 如下 IIS6 0解析漏洞1 IIS6 0解析漏洞2 IIS7 0 7 5解析漏洞 Apache文件解析漏洞 Nginx解析漏洞 WebShell上传利用 IIS6 0解析漏洞1此洞原理是处理文件扩展名出错 导致将 asp 目录下的所有文件都作为asp文件进行解析 此外具有此特性的不单单是类似 asp 目录 还包括 cer asa cdx cer 此种类型浏览器直接输入不允许 需要借助burpsuite工具 asa cdx 目录 本例子以 asp 目录举例 假如服务器端存在一个文件名为test asp目录 且在该目录建立实验文件2 jpg 代码如下图 WebShell上传利用 IIS6 0解析漏洞1输入 http IP test asp 2 jpg 页面返回如下图所示 从下图可知2 jpg文件被IIS6 0解释执行了 WebShell上

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号