实战某项目SQL注入引发的思考

Posted peterpan0707007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战某项目SQL注入引发的思考相关的知识,希望对你有一定的参考价值。

数据包:

技术图片

测试参数:username,测试payload:

‘ or ‘1‘=‘1

‘ or ‘1‘=‘2

响应结果都未发生任何变化,借助sqlmap测试,结果一样:

技术图片

 尝试在or前面进行简单的fuzz,结果为:

技术图片

发现‘ or 1=1 or ‘1‘=‘1可以直接登录系统,也就是说此处是存在sql注入的,构造payload,借助sqlmap检测 

技术图片

技术图片

进一步分析,or 1=1 为true,说明后边or ‘1‘=‘1语句在数据库中执行结果为false,猜测也许在or ‘1‘=‘1后边还有其它未知的字符,尝试用burp测试了下,未找到。那既然这样,当时就想到直接后边and ‘1‘=‘1应该也行吧(无脑image),结果发现是错误的,查了下资料,and的优先级大于or,所以如果‘ or 1=1 and ‘1‘=‘1,会先执行 1=1 and ‘1‘=‘1 ,显然这个结果是false,然后or false,结果也是个false喽。

最后贴个sql运算符的优先级顺序图吧: 

 

技术图片

 

以上是关于实战某项目SQL注入引发的思考的主要内容,如果未能解决你的问题,请参考以下文章

记一次SQL注入实战

Pikahu-SQL注入模块(Sql inject)(实验实战篇)

项目实战 | SQL注入的“格局”

实战绕过两层waf完成sql注入

实战手工注入某站,mssql注入

实战 | SQL注入-BOOL盲注-一个小细节