常见漏洞 sql注入 原理: SQL注入攻击是通过将恶意的SQL查询语句插入到应用的输入参数中,欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息 分类: 1、注入类
常见漏洞
sql注入
原理:SQL注入攻击是通过将恶意的SQL查询语句插入到应用的输入参数中,欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息
分类:
1、注入类型:字符型, 数字型
2、提交方式:GET ,POST, COOKIE
3、获取信息的方式:基于报错,盲注,基于回显
防御:
1、校验用户输入,过滤特殊字符
2、进行参数绑定,限制用户输入
3、使用SQL语句预处理,对SQL语句首先进行预编译,然后进行参数绑定,最后传入参数。
判断方式:
1、单引号判断法
2、and 1=1 and 1=2 同真为真,其余为假
3、or 1=1 or 1=2 同假为假,其余为真
注入方法:
https://blog.csdn.net/weixin_43915762/article/details/87909751
宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?
原理:
mysql数据库在使用宽字节(GBK)编码时,会认为两个字符是一个汉字(前一个ascii码要大于128(比如%df),才到汉字的范围),而且当我们输入单引号时,mysql会调用转义函数,将单引号变为\’,其中\的十六进制是%5c,mysql的GBK编码,会认为%df%5c是一个宽字节,也就是’運’,从而使单引号闭合(逃逸),进行注入攻击%df‘
会被PHP当中的addslashes
函数转义为%df\‘
,“\”既URL里的“%5C”,那么也就是说,%df‘
会被转成%df%5C%27
倘若网站的字符集是GBK,MYSQL使用的编码也是GBK的话,就会认为%df%5C%27
是一个宽字符。也就是“縗’”
绕过方法:参考文章
报错注入