渗透经验分享之文件操作漏洞拓展

上文分享了注入相关的东西,注入也可以对文件进行操作,本文是对文件操作漏洞的拓展。

文件操作漏洞

  1. 文件上传
  2. 文件读取
  3. 文件写入
  4. 文件删除
  5. 文件包含

一般java站点存在文件系列的洞比较多(除了文件包含)。

文件上传

在哪最容易发现上传点?注册登陆用户头像、发布文章发布产品js中的文件上传接口、一些编辑器,甚至还有扫目录扫出来的 /uploader
路径,访问出现这种405的uploader一般就是上传。比如:

渗透经验分享之文件操作漏洞拓展

这个时候本地构造POST表单就行了,file参数靠猜,有的时候任意参数就行,有的时候post提交过去会报错缺失什么参数,随机应变。

渗透经验分享之文件操作漏洞拓展

一般上java的站点扫出来这种uploader比较多,都是上传写的servlet接口。

上传其实upload-labs里的绕过姿势已经非常全面了。拿到一个上传点,首先应该判断能不能正常上传、白名单还是黑名单、怎么校验的在哪校验的,这些没什么好讲的。聊一些比较恶心的文件上传。

  1. 上传不返回路径
  2. 上传不在web目录

上传不返回路径多出现在 市长邮箱
投诉举报
这类功能中,其实这种功能本来就没打算给你返回路径。我的思路一般是找注入点,只要没返回路径的文件上传并且返回给你一个ID给你当作凭据的(此处只是举例,类推),肯定保存路径在数据库中。找到注入就等于找到了文件路径。

如果没有注入呢?找找日志。比如tp的日志是有规律的,你可以传一个非法文件名 1.;
,在tp的日志中报错,说不定就有路径。这个我自己是真实碰到的,一个laravel的框架,在laravel.log中报错返回了错误文件名的文件路径,猜出来了shell的路径。

如果没有日志呢?猜。形如 /Files/
/uploads/
目录,猜要有根据的猜,观察网站图片和文件地址,以此拼接你的shell文件名,多数以时间戳命名,bp爆破下就行了。

再来说不在web目录的,上传的时候关注下请求包的几个参数,有没有 path
filepath
filename
file_prefix
,甚至测一下 ../../1.jpg
文件名。如果上传不能跨目录其实你就应该转移关注点了。找文件包含、文件读取。

上传不在web目录的站,有这种功能的很多都有文件读取的洞,因为传上去的文件总归是要下回来的,找找形如 download?path=1.jpg
这种。拓展思路,举一反三。

另外就是文件包含了,没啥可说的。

文件读取

限制条件有两个

  1. 限制前缀
  2. 限制后缀

不限制前缀的时候可以通过 file
协议读文件,php可以通过伪协议读文件,当限制前缀的时候Linux其实还好,可以通过 ../
跳目录,但是windows没办法通过 ../
跳盘符。

限制后缀就比较恶心了,php好像可以用 #
?
符号去绕过。具体看 chybeta师傅的文章
吧。

确定是文件读取之后,如何进一步拿权限?个人习惯先读 /etc/passwd
,权限够大直接读 /etc/shadow
,然后根据 /etc/passwd
读每个用户的 .bash_history
,读中间件的配置文件,以此判断web的绝对路径。然后逐个读源码,java的话可以读一下war包,搞到代码之后就变得 so easy
了。

举个例子:文件读取读到了旁站的war包,旁站是一个监控,就一个登陆框,而war包中配置文件里写死了密码,刚好登陆进去直接可以执行命令rce。

weblogic的话可以直接读console账号密码,登陆console部署war包getshell。

反正就是文件读取=60%中间件特性+10%猜+30%运气。

文件写入

文件写入拿shell很简单,直接指定web目录和内容就行了。但是这个一般上会有限制,比如内容检测(不能写php标签之类),文件名检测(不能写 .php
)。

  1. 写计划任务 或许
    为一个好的选择
  2. 覆盖原有配置文件(比如覆盖安装)
  3. ssh

文件写入好像没什么好说的,先就这样,想到什么补充什么。

文件删除

实战没怎么遇到过这个洞

include waf.php

文件包含

文件包含多为php站点,所以伪协议读文件这些都是基本操作。不过有一说一,除了ctf中碰到过文件包含,实战中没遇到过。

具体看chybeta师傅的文章-php文件包含漏洞

需要提一嘴的是phar可以伪装为图片,你可以传一个1.jpg,绕过内容检测,然后用 phar://
协议包含。还有就是smb包含,php缓存文件包含。

或许渗透变化万千的思路才是我真正喜欢他的原因。

文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。

原文 

https://y4er.com/post/pentest-idea-sharing-file/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 渗透经验分享之文件操作漏洞拓展

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址