前言
在某个攻防演练项目里发现外网的资产少得可怜,对已知的资产扫了又扫还是发现不了可以利用的点。
通过相同源码的网站发现突破点,但是很快又陷入死胡同,说不定坚持一下就可能柳暗花明了呢?
第一天
通过相同的网站发现存在弱口令(目录不存在),通过查看接口发现管理员页面存在未授权访问,可以利用未授权获取管理员的密码
尝试利用上传还原文件进行 getshell ,但是功能不可用。又找到了一个上传图片的点,发现随意修改图片后缀都是 jpg 格式。经过测试发现是 Content-Type 导致的,修改 Content-Type 为 php 提示错误,修改为 image/gif 发现可以成功。经过和大佬交流:可能后端的代码是直接判断如果是 Content-Type: image/gif 就返回 .gif,代码写死没办法绕过。经过删除图片名字,发现了目录泄露。
上传不可用就直接找下SQL注入,发现查询日志的位置好像存在注入,使用 SQLMAP 跑了一下证明是有注入,但是找不到可以匹配到的数据库。
第二天
通过右键查看源代码发现存在一个 xxxxxx.php ,打开发现可以上传和导出。但是上传做了限制只能上传特定的后缀名,通过导出功能发现存在任意文件下载。
通过任意文件下载进行读取相关源码,发现之前提到的上传点都是做了限制。读配置文件发现使用的数据库是 sqlite ,利用目录泄露开始读取一个个文件,发现存在SQL注入,但是使用 query 没办法进行堆叠注入进行getshell,放弃查看注入。
上传和注入都没机会了只能看看存不存在RCE了,发现一个很明显的命令执行,但是会先运行 .sh 文件
先查看 .sh 文件是怎么样的再尝试构造命令,发现只要符合 if 语句就会重启服务器。
最后大佬给出了 Payload ,成功 getshell
|+echo+'<%3fphp+phpinfo()%3b%3f>'> /xxx/xxx/shell.php
因为 .sh 文件里面使用了 ` 反引号,所以会拼接成命令执行,同时不会满足 if 请求。
第三天
发现网站打不开了,想内网渗透,想得美。(大佬审计的RCE 我不会我不会…)