安全面试常见问题任意文件下载

《网安面试指南》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect

1.1 任意文件下载漏洞

l 阅读本章节需要掌握的技术

HTTP请求协议基础

常用工具:

BurpSuite(强大的抓包改包工具)

1.1.1 漏洞原理

很多网站由于业务需求,往往需要提供文件(附件)下载的功能块,但是如果对下载的文件没有做限制,直接通过绝对路径对其文件进行下载,那么,恶意用户就可以利用这种方式下载服务器的敏感文件,对服务器进行进一步的威胁和攻击。

1.1.2 漏洞危害

通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等。

1.1.3 检测条件

网站正常运行;网站存在可以下载文件的功能。

1.1.4 检测方法

1、 查找网站存在可下载资源,可读取文件的接口。

2、 使用burpsuite进行数据包的抓取。

3、 寻找数据包中控制文件下载的参数,如

http://www.example.com/filedown.php?filename=testpic.png

4、 修改参数,尝试进行任意文件读取/下载

http://www.example.com/filedown.php?filename=../../../../../../../../../../etc/passwd

要注意的是,部分网站可能存在编码问题,所以构造的时候需要将 /转为url编码 %2f

http://www.example.com/filedown.php?filename=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd

任意文件下载常用路径

LINUX:

/root/.ssh/authorized_keys

/root/.ssh/id_rsa

/root/.ssh/id_ras.keystore

/root/.ssh/known_hosts

/etc/passwd

/etc/shadow

/etc/issue

/etc/fstab

/etc/host.conf

/etc/motd

/etc/sysctl.conf

/etc/inputrc 输入设备配置文件

/etc/default/useradd 添加用户的默认信息的文件

/etc/login.defs 是用户密码信息的默认属性

/etc/skel 用户信息的骨架

/sbin/nologin 不能登陆的用户

/var/log/message 系统的日志文件

/etc/httpd/conf/httpd.conf 配置http服务的配置文件

/etc/ld.so.conf

/etc/my.cnf

/etc/httpd/conf/httpd.conf

/root/.bash_history

/root/.mysql_history

/proc/mounts

/porc/config.gz

/var/lib/mlocate/mlocate.db

/porc/self/cmdline

WINDOWS:

C:\windows\system32\drivers\etc\hosts host文件

C:*\apache-tomcat-7.0.1/conf/context.xml、web.xml、server.xml、tomcat-users.xml

C:\boot.ini //查看系统版本

C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件

C:\Windows\repair\sam //系统初次安装的密码

C:\Program Files\mysql\my.ini //Mysql配置

C:\Program Files\mysql\data\mysql\user.MYD //Mysqlroot

C:\Windows\php.ini //php配置信息

C:\Windows\my.ini //Mysql配置信息

C:\Windows\win.ini //Windows系统的一个基本系统配置文件

1.1.6 修复建议

1、 净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。

2、 web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot应用. 由chroot创造出的那个根目录,叫做"chroot监狱"(所谓"监狱"就是指通过chroot机制来更改某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全,详细具体chroot的用法,可参考:http://blog.csdn.net/frozen_fish/article/details/2244870

3、 任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。

4、 要下载的文件地址保存至数据库中。

5、 文件路径保存至数据库,让用户提交文件对应ID下载文件。

6、 用户下载文件之前需要进行权限判断。

7、 文件放在web无法直接访问的目录下。

8、 不允许提供目录遍历服务。

9、 公开文件可放置在web应用程序下载目录中通过链接进行下载。

参考代码:

java 复制代码
public String download() throws Exception {

//获取文件id

String id = Struts2Utils.getRequest().getParameter("id");

try {

//通过id进行文件查询

DownloadFile downFile = fileService.findEntityById(Long.parseLong(id));

// 获取该附件的类型

byte[] bt = null;

bt = downFile.getContent();

HttpServletResponse res =Struts2Utils.getResponse();

res.reset();

res.setContentType("application/x-msdownload");

res.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(uacFile.getName(), "UTF-8"));

OutputStream out = res.getOutputStream();

out.write(bt);

out.flush();

out.close();

} catch (Exception e1) {

e1.printStackTrace();

}

return null;

}
相关推荐
CHENKONG_CK8 小时前
晨控CK-FR102ANS-EIP与基恩士KVX520系列PLC配置EtherNet/IP通讯连接手册
网络
@insist1238 小时前
系统规划与管理师-信息安全规划核心考点解析:概述与安全架构
安全·软考·安全架构·系统规划与管理师·软件水平考试·系统规划与管理工程师
草根站起来9 小时前
“双算法SSL证书”伪方案、国产SSL证书营销话术与等保绑定乱象批判
网络·网络协议·ssl
IT小白杨9 小时前
从移动指纹到App隔离:TikTok Shop跨境电商账号安全管理实战
安全·新媒体运营·业界资讯·指纹浏览器
Bobolink_9 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
humors2219 小时前
【分享】火绒恶意网址自定义规则,根据互联网应急中心部分威胁预警恶意代码制作
网络·安全·规则·火绒安全·恶意网址·应急中心
工程管理笔记10 小时前
工程发票与资金管理系统:蓝燕云进销项发票台账功能
安全
广州灵眸科技有限公司11 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
星恒讯工业路由器12 小时前
VLAN在工业网络中为何越来越重要
网络·信息与通信·vlan·交换机·工业网络·网络隔离
rcms1527026921813 小时前
HITEK A1052100N-01 以太网端口模块
网络