ACCESS 注入:
① 数字型:id=19
② 字符型:
typeid =games 正确: ‘and‘ 1 ’=’ 1 错误:' and '1'='2
查询语句:' and(查询语句)and ' '='
完整查询语句:select * from 表名 where 字段='games' and(查询语句)and ''=''
③ 搜索型:keyword=关键字
搜索型的注入原理是:
select * from 表名 where 字段 like '%关键字%' and (查询语句) and '%'='%'
判断是否可以注入:
1 搜索 keywords ’ 如果出错的话,有 90%的可能性存在漏洞;000
2 搜索 keywords%,如果同样出错的话,就有 95%的可能性存在漏洞;000
3 搜索 keywords% ’and 1=1 and ’%’=’(这个语句的功能就相当于普通 SQL 注入的
and 1=1)看返回的情况000
4 搜索 keywords% ’and 1=2 and ’%’=’(这个语句的功能就相当于普通 SQL 注入的
and 1=2)看返回的情况000
5 根据两次的返回情况来判断是不是搜索型文本框注入了0
注意:
要通过源码判断 search.asp 是否存在过滤字符。
%为通配符,代替任意个字符。
#为截断。
④ 偏移注入:
先来说说什么情况用偏移注入吧,条件如下:
1.注入表的字段数大于或等于目标表列的两倍最好,这样一般都能显示齐。
而一般 admin 表 3 个列以上吧(id,name,pass)……
2.你知道目标表的一个字段,比如 id,但是却不知道其他字段。
简单说下偏移注入原理:
1.Union 合并查询需要列相等,顺序一样;
2.select * from admin as a inner join admin as b on a.id=b.id 这句话请大家理解下,就是说把
admin 表记为 a,同时也记为 b,然后查询条件是 a 表的 id 列与 b 表的 id 列相等,返回所有
相等的行,显然,a,b 都是同一个表,当然全部返回啦。不理解的查一查语法吧。
3. *代表了所有字段,如你查 admin 表,他有几个字段,那么*就代表几个字段
举个例子:admin 有 5 列,那么 union select 1,2,3,* from admin 如果返回正常,就代表注入
的表有 8 列
详解:
他的是 28 个字段
加入 admin 表 5 个字段