网站地图    收藏   

主页 > 后端 > 网站安全 >

sql注入解析(三)数据库类型 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 上一篇:http://www.2cto.com/Article/201209/153278.htmlmysql、mssql和oracle数据库都有自己特有的一些命令,我们可以根据它们确定我们要注入的数据库类型。mysql与mssql中select @@version返回当前数据库...

上一篇:http://www.2cto.com/Article/201209/153278.html

mysql、mssql和oracle数据库都有自己特有的一些命令,我们可以根据它们确定我们要注入的数据库类型。mysql与mssql中select @@version返回当前数据库的版本,oracle中 select banner from v&version 返回数据库版本。 不同数据库构造字符串的访问也不一样。如,要构造字符串“yeetrack”, oracle 中的命令是 ‘yee’||’track’ ,mssql中的命令是 ‘yee’+'track’, mysql中的命令是 ‘yee’ ‘track’,中间是个空格。

Oracle数据库:

1.、对于一个查询的URL,例如http://www.yeetrack.com/wordpress/?p=54,首先试探这个URL需要返回的列数,构造URL  http://www.2cto.com /wordpress/?p=54%20union%20select%20null%20from%20dual–,查看返回结果,如果错误说明返回列数不为1,增加null的个数,http://www.yeetrack.com/wordpress/?p=54%20union%20select%20null%20null%20from%20dual–,直到结果不发生错误为止。

2、 确定了返回的列数,再来确认每一列的类型,依次将null改为’a',查看返回结果,返回a则正确;出现异常再修改’a'的位置,直到正确为止。

3、找到了一个正确的类型,就可以探测数据库的信息了。查询当前用户拥有的数据库的全部对象,select object_name, object_type from user_object.根据返回的信息,找到感兴趣的表,再探测该表的列。select column_name from user_tab_columns where table_name=’tablename’, 最后探测该表的数据, select username, password from user–

MSSQL数据库:

1、 同oracle数据库。

2、 同oracle数据库。

3、 探测数据库的信息,select name from sysobjects–,找到感兴趣的表,就可以提出表的字段和信息了。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论