Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL约束攻击的原理和复现

MySQL约束攻击的原理和复现方式

作者:bouIevard

这篇文章主要介绍了MySQL约束攻击的原理和复现方式,具有很好的参考价值,希望对大家有所帮助,

MySQL约束攻击的原理和复现

在MySQL数据库中,数据是有字符长度限制的。

对于下面这个数据库:

 username和password的限制都是设置为15个字符。

当尝试注册一个超过15字的字符串时,系统就会报错。

这是由于在MySQL环境变量sql_mode中添加了STRICT_TRANS_TABLES字样,规定了严格模式。

但如果有些数据库没有设置严格模式,系统就会对输入的非法字符串进行转换,

出现了SQL约束攻击

在SQL注册的时候,是不能够注册已经存在的用户名的(即使在后面加空格也不可以),但是可以考虑创建一个名字叫‘admin 1’的超长字符串用户,在SQL比对时,它显然是和admin不同的(因为末尾有一个1,所以空格是有效的),但是在非严格模式下,SQL会去掉后面多余的字符,将“admin ”注册到用户中,

数据库就变成了这样:

发现数据库中出现了两个admin,然后再使用admin、mypass登陆,由于比对的时候,末尾的空格是被忽略掉的,所以就成功登入了admin。

总结

如有错误或未考虑完全的地方,望不吝赐教

您可能感兴趣的文章:
阅读全文