1. 首页
  2. 渗透测试

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

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

文件操作漏洞

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

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

文件上传

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

image.png

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

image.png

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

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

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

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

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

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

再来说不在web目录的,上传的时候关注下请求包的几个参数,有没有pathfilepathfilenamefile_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

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

文件删除

实战没怎么遇到过这个洞

  1. 删除配置文件
  2. 删除安装锁(造成重装)
  3. 删除waf文件include waf.php

文件包含

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

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

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


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

原创文章,作者:Y4er,未经授权禁止转载!如若转载,请联系作者:Y4er

联系我们

在线咨询:点击这里给我发消息

QR code