sql注入问题

小白一枚,在学习黑客攻防技术宝典时,看到如何查明sql注入,有以下内容:
1. 提交一个单引号作为目标查询的数据。观察是否会造成错误或者结果是否与原始结果不同
2. 如果发现错误或者其它异常,同时提交2个单引号,看会出现什么情况。如果这个输入使错误或者异常消失,web程序可能易于受到sql注入
3. 为了进一步核实漏洞是否存在,可以使用sql连接符建立一个等同于“良性”输入的字符串。如果web程序以和处理“良性”输入相同的方式处理专门设计的输入,那么它可能易于受到攻击。在一个易于受到攻击的web程序中,可以注入以下等同于FOO的输入:
mysql:' 'FOO(注意两个引号之间有一个空格)

问题:
看作者的意思是通过以上3步来查明sql注入漏洞,那么什么情况下会出现1中的情况,而不出现2和3中的情况?什么情况下会出现1,2中的情况,而不出现3中的情况?即第2,3步的意义是?
望高手指点,谢谢!

第1个回答  2018-01-30
通过程序代码拼接的sql是动态构造的,由一个不变的基查询字符串和一个用户输入字符串连接而成。例如一个攻击者在前端文本框中输入字符串“name' OR 'a'='a”,那么构造的查询就会变成:SELECT * FROM XXX WHERE _file = 'name' OR 'a'='a';
可以见得附加条件 OR 'a'='a' 会使 where 从句永远评估为 true,因此该查询在逻辑上将等同于一个更为简化的查询:SELECT * FROM items;
你说的1、2、3步骤总结到最后就是输入上述的那种字符串本回答被提问者和网友采纳
第2个回答  2021-04-27

8.26:web安全基础及手工判断sql注入漏洞点

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网