0x01 前言
某日闲来无事,上fofa搜了xx系统,想着碰碰运气,类似这样
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225612527-1364655911.jpg)
0x02 测试过程
随便挑了一个站点打开
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225613163-1439267662.jpg)
Em…,试试运气,反手admin admin就进去了,是一个管理系统
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225613562-313120700.jpg)
然后根据网站的功能点,随便点击几个,发现除了常规的操作也没啥了,翻了一会,发现有一个文件下载操作
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225613876-1349432502.jpg)
好家伙,藏得挺深,抓包看看,请求的地址好像是一个文件
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225614402-159575045.jpg)
fileName改成../etc/passwd看看,好家伙,报错了
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225614938-1294885574.jpg)
看来应该不是这个路径,随后依次尝试了../../etc/passwd和../../../etc/passwd都是500错误,到了../../../../etc/passwd的时候就能访问到了
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225615472-1186122569.jpg)
再看看能不能读历史命令,如果可以读历史命令,可以看看有没有网站备份文件或者网站安装包,嘿嘿,改路径为/root/.bash_history,访问!….500错误
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225615994-2012918871.jpg)
看来应该是权限不够。没办法了,从其他地方入手吧。
接下来可以F12看看网站源代码,用源代码中标志性的语句或者文件去fofa搜索相同的系统,说不定会有root权限,大概像这样
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225616528-1337144661.jpg)
有了相同的系统之后,再次尝试弱口令
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225616920-100761018.jpg)
可能是最近运气不错吧,弱口令又进去了。嘿嘿
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225617369-1237355266.jpg)
接下来尝试刚刚的操作,下载../../../../etc/passwd文件看看
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225617822-1470359648.jpg)
再试试读历史命令/root/.bash.history
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225618270-857525528.jpg)
可以读到历史命令,慢慢翻,最终发现有网站源码
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225618653-1742935129.jpg)
反手下载下来
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225618998-757262743.jpg)
解压一下
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225619315-1947083995.jpg)
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225619680-1165688496.jpg)
JSP的站,没学过java的我裂开了,先跟着历史命令把环境搭起来,于是在自己服务器上部署了一样的系统。
没学过java,自动化java审计工具还收费,就手工一个方法一个方法康康把
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225620165-708289661.jpg)
找了大半天,都快想放弃了…
不过这套系统有mysql,先看看数据里面的结构吧。大概长这样
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225620586-481103708.jpg)
随后在管理网站用户的表里面发现了一个系统自带的账户(这里用账户x表示),账户x比admin权限还要高
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225621169-770288268.jpg)
把密码放到cmd5查一下
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225621575-1976315723.jpg)
要钱?我穷的一批,没钱,反手找好师傅查一查,好师傅很快啊,就回了消息
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225621999-891368438.jpg)
随后我用这个账户x登录自己搭建的系统,发现在网站是根本查不到这个账户存在的,也就是说可能是开发商留下的。嘿嘿,有了这个账号,其他系统都可以登录了。
随后发现系统有一个上传点可以上传文件,既然都到白盒了,那么可以部署一个文件实时监控工具,看看发生变化的文件,也可以看看等会要上传的文件是否上传了。
这里使用了FileMonitor来监控文件
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225622414-783233812.jpg)
上传文件、抓包改后改后缀.jsp
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225622849-1570156655.jpg)
提示上传失败
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225623276-2048107424.jpg)
看看文件监控,已经能上传上去了
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225623680-1104630029.jpg)
后缀可控,但是文件名不可控,这可麻烦了,一般文件名都是以时间戳或者有特定的算法命名,再多上传几次看看,看起来也没啥规律啊
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225624147-1308714869.jpg)
翻看一下下载的网站源码中的class文件。再看看请求的地址
![Image](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225624647-881685.png)
应该是upload类里面的Uploadfile方法(没学过Java,不知道对不对,别喷~)
找到了Uploadfile方法一行一行的看,头晕啊,但是最后还是找到了生成文件名的方法=-=
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225625149-1811091206.jpg)
让我看看UUID.randomUUID().toString()是个啥
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225625633-667069781.jpg)
三部分组成:当前日期和时间+时钟序列+全局唯一的IEEE机器识别号(网卡mac地址)
突然想了想,前两个估计还能想办法得到,但是最后一个网卡的mac地址,就很难了,任意文件下载是下载不到带有网卡mac地址的文件的,又一条路被堵死了
过了几个小时,又发现一个上传点
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225626147-800504049.jpg)
文件监控起来
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225626548-1854421406.jpg)
直接传马
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225627041-1428346929.jpg)
回显了地址
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225627401-450524635.jpg)
冰蝎成功连上成功
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225627845-114544922.jpg)
最后如法炮制,利用系统自带的账号登录系统,然后用第二个上传点传马即可。
![](https://img2020.cnblogs.com/blog/1049983/202201/1049983-20220119225628330-1035735350.jpg)