深信服应用层安全培训-Web渗透测试系列-X-文课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《深信服应用层安全培训-Web渗透测试系列-X-文课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深信 应用 安全 培训 Web 渗透 测试 系列 课件
- 资源描述:
-
1、Web渗透测试系列_X_WebShell上传1.整体框架2.WebShell上传探测阶段3.WebShell上传利用阶段4.执行WebShell5.WebShell提权6.防御与逃逸7.常用工具8.总结培训提纲整体框架概述WebShell上传主要包括探测和利用阶段,具体如下: 探测阶段:该阶段主要是搜集可测试点,以方便下一步的利用。 利用阶段:该阶段主要是利用探测的漏洞上传并执行WebShell。WebShell上传渗透测试框架WebShell上传探测阶段WebShell上传探测阶段原理说明收集过程原理说明上传探测阶段没有什么原理,主要是搜集可探测点,常见的可测试点包括应用程序上传功能(诸如上
2、传头像、附件上传等)、用户可控的输入点或者参数(页面POST表单部分、url参数、sql注入点等)、HTTP开启的方法(诸如WebDAV)等,收集可测试点的过程中,应尽量确保覆盖范围,不遗漏每一个可测试点,搜集过程推荐使用WVS工具spider功能。收集过程利用WVS的spider工具收集可测试点,如下图:spider发现了危险的上传目录(红框1处)、开启了WebDAV方法等漏洞,根据扫描结果方便接下来依据不同结果进行利用。另外有些可测试点WVS的spider是爬不出来,包括内敛sql注入点、不允许爬虫扫描的上传目录等,这些只能靠手工探测。WebShell上传利用阶段简介直接上传WebShel
3、l绕过客户端检测上传WebShell绕过服务端文件扩展名检测上传WebShell绕过服务端MIME类型检测上传WebShell绕过文件内容检测上传WebShell绕过服务端目录路径检测上传WebShell利用服务器漏洞上传WebShell利用sql注入上传WebShell利用WebDAV上传WebShell利用.htaccess文件上传WebShell直接上传WebShell探测到上传点后,接下来进入上传WebShell步骤,假如服务器端对用户提交参数或者文件没有进行过滤或者过滤不当,则能够直接上传WebShell,那么接下来进入执行WebShell步骤即可。绕过客户端检测上传WebShell
4、客户端检测即通过用户请求返回页面部分的js脚本验证用户的输入,该检测在客户端检测,具有该检测方法的明显表现是在用户上传文件到服务器之前客户端js会进行检测,假如不符合检测要求会提示相应错误,接下来举例说明,并列举出相应的绕过方法。绕过客户端检测上传WebShell服务器端含有检测js脚本的文件UPLOAD_CS_1.aspx代码如下图上图红框1处是服务器端返回用户请求页面中用于检测客户端上传文件类型的js脚本,该客户端验证要求只能上传.txt和.docx两种类型,红框2处是使用onmouseover事件触发check_file函数。绕过客户端检测上传WebShell输入:http:/IP/UP
5、LOAD_CS_1.aspx,同时上传1.jpg文件,页面返回如下图:绕过客户端检测上传WebShell上图中鼠标刚放到“上传文件”按钮便弹出了一个警告对话框,由此易知这种情况是客户端js检验,查看返回页面的的源代码:如上图可以确定此种情况是客户端js验证。绕过客户端检测上传WebShell接下来使用代理工具绕过客户端验证,例如上传1.asp文件,先将文件名改为1.txt,代开burpsuite代理工具,点击“上传文件”按钮,burpsuite截获如下图:绕过客户端检测上传WebShell把上图红框处1.txt改为1.asp,然后点击“forward”按钮,查看服务器端Files文件夹,如下图
6、。从上图可以得出结论利用代理工具成功绕过客户端验证绕过服务端文件扩展名检测上传WebShell服务器端文件扩展名检测是指服务器端应用程序通过检测用户上传文件的后缀名从而做出允许或者阻止的一种方法,该方法包含黑名单和白名单两种形式,具体如下: 黑名单检测:一般是建立一个专门的blacklist文件,里面枚举常见的危险文件后缀。 白名单检测:一般是定义一个允许或者阻止用户上传文件类型的后缀的文件,里面枚举相应的文件后缀。绕过黑名单检测方法文件名大小写绕过 用向AsP、Aspx之类的文件名绕过黑名单检测;名单列表绕过 用黑名单里没有的名单进行攻击,iis默认执行.asp、.asa、.cer,有时候黑
7、名单过滤不全没有过滤掉像后缀为asa、cer之类的,但这些文件可以像asp文件一样执行,此时可以使用这些后缀绕过黑名单。绕过黑名单检测方法特殊文件名绕过 比如发送的HTTP包里把文件名改成test.asp. 或test.asp_(下划线为空格),这两种命名方式在windows系统里是不被允许的,所以需要在代理工具burpsuite进行修改,然后绕过验证后,会被windows系统自动去掉后面的点和空格,但注意Unix/Linux系统没有此特性。0 x00截断 在许多语言的常用字符串处理函数中,0 x00被认为是终止符,比如应用只允许上传jpg图片,那么可以构造文件名为2.asp%00.jpg,.
8、jpg绕过了应用的上传文件类型判断,但对于服务器来说,此文件因为%00字符截断的关系,最终会以2.asp存入路径里。绕过白名单检测方法0 x00截断 基于白名单检查主要使用0 x00截断绕过,同黑名单0 x00截断绕过,接下来举例说明。服务器端白名单检测文件为UPLOAD_CS.aspx.cs,部分代码如下图绕过白名单检测方法上图红框处枚举了允许上传gif、GIF、swf、SWF后缀文件,该部分为该代码的白名单检测部分,同时该文件用白名单规定了不允许上传后缀文件,如下图如上图可以看出使用了白名单规定了不允许上传后缀为asp、aspx以及dll的文件,接下来实验使用%00绕过验证,具体如下绕过白
9、名单检测方法输入:http:/IP/UPLOAD_CS_2.aspx,如果直接上传2.asp文件,页面返回如下图上图显示上传后缀为asp的文件失败,把上传文件名改为2.asp.%00.jpg,继续上传,页面返回如图绕过白名单检测方法上图显示上传后缀为asp的文件失败,把上传文件名改为2.asp.%00.jpg,继续上传,页面返回如图从上图可以得出结论成功上传2.asp%00.jpg文件,.jpg绕过了应用的白名单检测,但对于服务器来说,由于后台某些函数作用(诸如CreateTextFile()),此文件会被%00字符截断,最终会以2.asp存入路径里。绕过服务端MIME类型检测上传WebShe
10、ll有时候仅仅对文件名后缀进行判断并不能有效阻止恶意文件的上传(比如某服务器只允许上传jpg文件格式,不允许上传后缀为php等文件,但是把后缀为php改为后缀为jpg上传到服务器,某些情况下也能执行上传文件),因此对文件格式进行检测十分必要,也就是服务器端MIME类型检测。服务器端MIME类型检测asp、aspx利用response对象的ContentType属性,php利用$_FILESuserfiletype 、jsp也使用response对象的ContentType属性(与asp类似)。绕过服务端MIME类型检测上传WebShell接下来以aspx为例通过检测http包的content-
11、type字段的值来判断上传文件是否合法,实验使用的服务器端文件为mime.aspx,部分代码如下图。上图红框处使用POSTFile对象的ContentType属性,限定只允许上传application/zip类型。绕过服务端MIME类型检测上传WebShell输入:http:/IP/mime.aspx,上传文件2.asp文件,页面返回如下图。上图返回错误页面,提示“不支持的mime文件”,接下来使用burpsuite拦截请求,如下图。绕过服务端MIME类型检测上传WebShell修改图上图中红框处为application/zip,再次上传2.asp文件,查看files文件夹(该文件夹为上传文件
12、默认目录),页面返回下图。上图页面返回显示2.asp文件上传成功。绕过文件内容检测上传WebShell文件内容检测即通过检测特定文件某些特殊标志位来判断是否是允许上传的文件,比如以后缀为jpg图片文件为例,该文件头有一组特殊二进制数标识 FF D8 FF E0 00 10 4A 46 49 46(这些二进制数也叫文件幻数),那么就可以通过判断上传文件的文件头来验证文件的类型。其实检测文件幻数只是检测的一项内容,还可以对文件相关信息、文件渲染加载后检测,面对这些检测,可以把一句话木马注入图片文件最后面,这样既实现了代码注入也不会破坏图片结构,具体步骤如下: 代码注入图片 引用创建的文件 使用客户
13、端连接一句话木马代码注入图片首先准备图片picture.jpg,然后把asp一句话木马(诸如)插入图片最后,如下图所示上图红框1出为标识jpg文件的幻数,红框2处为植入的一句话木马,把该图片上传到服务器端。引用创建的文件同时创建一个引用包含一句话木马的图片的文件picture.asp,代码如下: 把该文件上传到服务器端(这里之所以先上传jpg文件,再上传一个引用上传jpg的asp文件,主要目的是为了隐藏一句话木马的目的)。使用客户端连接一句话木马客户端代码c1.html代码如下图:其中Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等
14、操作。使用客户端连接一句话木马该代码主要是服务器端一句话木马s1.asp接收c1.html第一个textarea里的值生成一个newmm.asp大马文件,同时利用lP.writetext request(CMD)接收第二个textarea大马内容写入newmm.asp文件里,这样直接访问newmm.asp文件,即获得了WebShell。使用浏览器打开客户端c1.html,如图下图所示使用客户端连接一句话木马上图红框处为海洋2005木马,点击提交后,访问上传木马,如下图。如上图可知上传WebShell成功。绕过服务端目录路径检测上传WebShell服务器端目录路径检测即对用户提交目录路径参数进行
15、检测,有时候检测不够严谨而导致可以用%00截断进行攻击,该漏洞的本质同黑名单检测%00截断本质一样,但该漏洞要求服务器端应用程序具有处理用户提交的目录路径参数函数,不具有通用性,这里仅介绍下原理。以fckeditor php = 2.6.4 任意文件上传漏洞为例,存在漏洞代码如下图绕过服务端目录路径检测上传WebShell输入:/fckeditor264/filemanager/connectors/php/connector.php?Command=FileUpload&Type=Image&CurrentFolder=fuck.php%00.gif HPPT/1.0CurrentFolde
16、r这个变量的值会传到上图有漏洞代码ServerMapFolder($resourceType, $folderPath, $sCommand)中的形参$folderPath里,而$folderPath在这个函数中并没做任何检测,就传入CombinePaths()函数,同时变量CurrentFolder中%00后面的会被截断,实际上传的是fuck.php。利用过滤不完全上传WebShell利用过滤不完全把一句木马写入服务器端是目前得到WebShell的最为主要的方法之一,该方法分为两步,具体如下: 上传一句话木马:常见的一句话木马分为asp一句话、aspx一句话、php一句话以及jsp一句话,它
17、们工作原理大致类似,这里以asp一句话木马为例,代码为: 使用客户端连接上传大马:客户端代码使用绕过文件内容检测上传c1.html。上传一句话木马使用上传页面上传一句话木马如下:上图为上传WebShell的上传页面。使用客户端连接上传大马使用浏览器打开客户端c1.html,如下图上图红框处为海洋2005木马,点击提交后,访问上传木马,如图下从上图可知获得了一个WebShell,其实小马上传成功后是不需要再上传大马了,通过POST表单方式传递给小马照样可以执行大马(即大马在内存中执行),且隐藏性更强。利用服务器漏洞上传WebShell解析漏洞产生是由于web server本身特性功能设计存在缺陷
18、造成的漏洞,如果加以利用,将会变成威力巨大的武器,本节内容如下: IIS6.0解析漏洞1 IIS6.0解析漏洞2 IIS7.0/7.5解析漏洞 Apache文件解析漏洞 Nginx解析漏洞IIS6.0解析漏洞1此洞原理是处理文件扩展名出错,导致将/.*asp/目录下的所有文件都作为asp文件进行解析。此外具有此特性的不单单是类似/.*asp/目录,还包括/.* cer /、/.* asa /、/.* cdx /、/.* cer (此种类型浏览器直接输入不允许,需要借助burpsuite工具)、/.* asa 、/.* cdx 目录,本例子以/.*asp/目录举例。IIS6.0解析漏洞1假如服务
19、器端存在一个文件名为test.asp目录,且在该目录建立实验文件2.jpg,代码如下图:输入:http:/IP/test.asp/2.jpg,页面返回如下图所示。从上图可知2.jpg文件被IIS6.0解释执行了。IIS6.0解析漏洞2该漏洞的原理是IIS6.0不能正确够解析文件名包含分号(;)的文件,因此诸如2.asp;xx.jpg类似的文件会被解析成2.asp可执行文件,从而导致脚本被执行。此外具有此特性的不单单是类似2.asp;xx.jpg,还包括2.cer;xx.jpg、2.asa;xx.jpg、2.cdx;xx.jpg类型,本例子以2.asp;xx.jpg类型举例。服务器端新建立一个文
20、件名为2.asp;xx.jpg的文件,内容与漏洞1中2.jpg文件内容一样,输入:http:/IP/2.asp;.jpg,页面返回如下图。从上图可知2.asp;xx.jpg文件得以执行。IIS7.0/7.5解析漏洞IIS7.0/7.5是对php 解析时有一个解析漏洞,只要在url后面追加上字符串/任意文件名.php就会按照php的方式去解析,其实这个漏洞是出自php-cgi的漏洞,与IIS7.0/7.5本身无关,具体例子如下。服务器端test.jpg代码为:输入:http:/IP/test.jpg/noexist.php,会将test.jpg当做php进行解析,其中noexist.php是不存
21、在的文件(但后缀必须是.php),页面返回如下图所示从上图可知test.jpg中的代码得到了执行。Apache文件解析漏洞Apache对于文件名的解析是从后往前解析的,直到遇见一个apache认识的文件类型为止,比如phpshell.php.rar.rar,由于apache不认识.rar文件类型,所以会一直遍历后缀直到.php,然后认为这是个php类型的文件,这样的话可以上传一个包含一句话木马文件名类似phpshell.php.rar.rar的文件,访问该文件将会被当成php文件解析执行,具有此漏洞的版本包括:Apache 2.2.11、Apache 2.2.17、Apache 2.2.6、A
展开阅读全文