记一次实战给朋友站点测试
本文由“合天智汇”公众号首发 作者:h0x
一、前言
本篇文章为给朋友网站测试的过程,主要记录测试中的思路。期间用了差不多两个周末,期间断断续续,整篇没啥奇淫技巧,大佬略过。
PS:截至投稿前,已将漏洞详细报告提交朋友,并验证已经修复。
![](https://pic4.zhimg.com/v2-acdbad625bfe07f78c843aea8e522294.jpg)
二、信息收集
通过朋友给的域名进行子域名爆破,得到如下:
![](https://pic1.zhimg.com/v2-1b906d1d23fbed205363dde91704092e.jpg)
查询成功:www.abc.cn-139.1.2.3
查询成功:API.abc.cn-47.1.1.1
查询成功:home.abc.cn-47.1.1.1
查询成功:hd.abc.cn-139.1.2.3
查询成功:oc.abc.cn-47.1.1.1
![](https://pic4.zhimg.com/v2-6877586a26fe435285925f75af1081bb.jpg)
其中www.abc.cn为官网,139开头的为阿里云服务器,通过手工测试并未发现漏洞,使用扫描器会被封IP。47开头的应该为本地服务器映射到公网的IP地址,测试重点为47开头的站点。
访问api.abc.cn为API接口站点,如下
![](https://pic3.zhimg.com/v2-981929eb0236a4f14a43c116edb492aa.jpg)
访问home.abc.cn则跳转到https://oc.abc.cn/login/login.html
![](https://pic4.zhimg.com/v2-bd30f002262d6e8509bc8311468f94cf.jpg)
测试SQL注入,并不存在,存在验证码,暴力破解未尝试,扫目录也无有价值的信息。
![](https://pic3.zhimg.com/v2-7256c3af37e6a66b8263b98efd338655.jpg)
访问manager为Tomcat管理登录页面,访问app为登录界面
![](https://pic4.zhimg.com/v2-85640d84c32785b9e752fedd9196d232.jpg)
通过对上面子站点的初步踩点,因为API站点接口较多,优先测试API接口,功能越多的地方越容易出错。
三、API接口测试
发现API接口功能很多,顺手进行测试,大部分为401,未登录
![](https://pic2.zhimg.com/v2-57270b8819342f7a96ac24542805cacf.jpg)
![](https://pic1.zhimg.com/v2-f96675d692e4dcd8c5307ac2a17e130a.jpg)
接下来就是逐个进行测试,测了半天,终于发现一个未授权访问,可任意文件下载,此为突破口,如下
![](https://pic4.zhimg.com/v2-0219e274686ffee17c19221870390d09.jpg)
测试下载passwd文件,构造访问以下地址
![](https://pic3.zhimg.com/v2-b5e82feb0233595bbac56e5d5eecc1b7.jpg)
![](https://pic2.zhimg.com/v2-f4c52cb671a1f7519d2aee83caff7c73.jpg)
继续尝试获取敏感信息,下载bash_history文件,可以查看历史命令
![](https://pic3.zhimg.com/v2-a9e1ea117e1e3aa0629effa858e377e1.jpg)
![](https://pic2.zhimg.com/v2-7d8eac5fe6ce8aa4d81c969de900b842.jpg)
通过对历史命令的查看,获取到两个可能存在敏感信息的文件,如下:
/etc/mail.rc
/backup/mysql_bask.sh
继续利用任意文件下载上述两个文件
![](https://pic1.zhimg.com/v2-b8f3843f05eb074948e4abddb168981d.jpg)
![](https://pic4.zhimg.com/v2-5f5bc8ed90f846b1169330569950eb13.jpg)
如上成功获取邮箱账号密码及数据库root账号密码,但公网并未开放数据库端口,无法连接数据库进行利用。
接下来本地设置账号密码,即可登录邮箱。
![](https://pic3.zhimg.com/v2-5bded742a9a9317fab2f9a75ba2249d2.jpg)
通过对邮件进行搜索,发现以下信息
![](https://pic1.zhimg.com/v2-fdbfe61eff3bcaf57cdef82a7d22f4d3.jpg)
用上述网站的账号密码,成功登录网站后台管理,但权限较低,测试了文件上传等,并未存在漏洞。
![](https://pic4.zhimg.com/v2-534c309b0f65a1db3c234c5bdec4737f.jpg)
由于当时较晚,第一周测试到此结束,主要利用API接口的未授权任意文件下载,获得敏感信息,未获取到shell,但还是向朋友炫耀了成果。
![](https://pic3.zhimg.com/v2-88d3b7a0479397ed70dcdc359ccfd0a9.jpg)
四、文件上传
第二个周末,由于上周只找到一个任意文件下载,没拿到shell,感觉还可以再突破一下。于是让朋友不要修复先,我再尝试下,他回复限制了API页面的访问。
![](https://pic3.zhimg.com/v2-55dd14f3ec025b3de0a92f4f47dbeaa7.jpg)
于是再访问API站点,页面如下
![](https://pic3.zhimg.com/v2-bbf69d4d2d951eeb0831d60bf0bd41a5.jpg)
去访问任意文件下载的接口
![](https://pic4.zhimg.com/v2-d853f2aea44fcaa3fbc38f6c59428649.jpg)
发现仍旧可以访问,此处是没有填要下载的文件,所以报错,通过下载历史命令文件,查看朋友的配置修改,发现其配置了nginx配置文件
![](https://pic3.zhimg.com/v2-ce64c1683d06ca3e226a56095c56b971.jpg)
然后下载nginx配置文件
![](https://pic1.zhimg.com/v2-fac810039e5d090ce9bf89d47b3e3303.jpg)
发现其修改的配置,允许18的ip访问该页面,禁止其他所有;只禁止访问首页,但仍旧可以访问接口地址,所以仍旧可以进行任意文件下载。于是对18的IP进行全端口扫描,发现其中一个端口访问则是API界面。
![](https://pic4.zhimg.com/v2-a9cee1e62a0b74920c13c0810b333a14.jpg)
![](https://pic3.zhimg.com/v2-4b9b9c49076593f0e9fa85b91c874aa2.jpg)
于是又可以去测试接口了,在一番测试后,发现一处任意文件上传接口,如下
![](https://pic3.zhimg.com/v2-1d495e45963b8630c51ac6367567caab.jpg)
![](https://pic1.zhimg.com/v2-38a3f96941bb11c072ae1a45e2b1efe0.jpg)
此处可以任意文件上传,但返回的地址是D盘下,Linux的服务器,怎么会返回D盘目录的地址,此处测试了很久,无法找到该文件路径。问了下朋友,他们是否有Windows的服务器,他回复都是Linux的。
![](https://pic2.zhimg.com/v2-6c2d5b1def06167f1a24ef4d6306f1d0.jpg)
五、SQL注入
由于上述文件上传一直都找不到地址,便继续往下测试,因为他们的API接口功能很多,很多都是要登录才能访问的,很花费时间,但还是被我找到一个SQL注入。
正常访问页面返回
![](https://pic1.zhimg.com/v2-21b16224898ecd3f0b749f11762e6e33.jpg)
加个单引号,返回
![](https://pic3.zhimg.com/v2-868844a83c247b3a12166c6a67a31fb0.jpg)
使用Sqlmap进行测试
![](https://pic2.zhimg.com/v2-c786a79686f005222cdd5097a053ad58.jpg)
想通过SQL注入获取用户密码,尝试登录上传拿Shell,看了一下密码应为自写加密,无法解密
![](https://pic3.zhimg.com/v2-527a43c461fb800d56f39e40c28834ec.jpg)
且Linux一般目录权限较严格,测试了下并未成功写Shell,到这里发现SQL注入好像并达不到我的Getshell目的。
六、文件上传getshell
梳理一下当前的思路,有个任意文件下载、有任意文件上传(但找不到路径)、有SQL注入(无法获取密码),目的是获取网站的Shell。
往往有些时候可以利用的点越多思路可能就会越乱,一方面想去找上传的路径,另一方面又想去SQL注入写Shell,也测试去下载Tomcat的用户配置文件,想登录Tomcat管理部署war,但下载了发现是默认配置。
![](https://pic2.zhimg.com/v2-9f0a8ecf0e1f45909dc83d668244d84c.jpg)
还下载了一些配置文件进行分析
![](https://pic2.zhimg.com/v2-7107142c70dbd618db039d29f27be25d.jpg)
但仍旧没找到突破口,于是只能继续分析API功能接口,发现一处指定文件夹上传,瞬间充满了希望
![](https://pic2.zhimg.com/v2-0b0f7f0c487b851070cbabad2012fc23.jpg)
![](https://pic4.zhimg.com/v2-a6cf505c1e5cea83f1bcb54080e06101.jpg)
返回地址很友好,访问
![](https://pic2.zhimg.com/v2-77457d1f0f863b7d1d11fec0afa79b29.jpg)
使用工具进行连接,当前为root权限,服务器为内网IP,成功Getshell
![](https://pic2.zhimg.com/v2-14b1a0e5198eb91b95bc84a8a56521dc.jpg)
然后看看目录,发现了D的路径,但之前的文件并未上传成功到该路径。
![](https://pic1.zhimg.com/v2-1cd84e276c71486f0f8fa58f6d4eb5a3.jpg)
七、总结
本文从信息收集到任意文件下载、到文件上传、SQL注入,最后拿到一个站点的shell,并无太多亮点,主要还是细心和耐心,因为API的功能接口确实有点多,几乎都是每个大概去看了,总体来说,还是运气比较好。
相关实验:
Springboot未授权访问
(Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息从而导致信息泄露的事件发生。)
声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!
合天智汇:合天网络靶场、网安实战虚拟环境