mysql注入学习总结

学习sql注入已经有段时间了,大部分还是mysql的注入。今天做个总结,最近的学习中记录的一些知识也可以帮助一些和我一样的小白。

首先针对各种注入方法和类型,理解起来很繁琐,容易混乱,下面是我的记忆框架,不是很全面,欢迎大佬指出。

注入类型:

(下方为举例,,实际上任何我们可控,过滤不严且带入数据库执行)

?id=1‘ 字符型 主要有单引号闭合,双引号闭合,取决与后台语句的书写方法

?id=1 数字型号 大部分不用加闭合,后台是修改语句,并且id在最后一位的个别时可能要闭合一下括号 

注入位置:

http头注入 在http头的的注入点,常出现在UA,referer,cookie

二次注入 特殊字符被过滤后失去作用但保留下来存储到数据库里,再次被调用时未经过过滤使用

post注入 表单提交后带入数据库时没有经过过滤

注入方式:

联合注入 联合查询注入

报错注入 利用extractvalue,updatexml等语句

布尔型盲注 利用length,substr,ascii进行注入

时间注入 利用if,sleep搭配布尔注入执行,在页面无错误显示,但确实存在注入点时使用

堆叠注入 限制比较多mysql支持,但是需要php函数支持

基础绕过类型:

二次编码注入 后台代码错误的对参数进行了二次url解码时,过滤在第一次时使用导致过滤不完全并在第二次解码时产生的漏洞

base64编码 后台先过滤再解码产生漏洞

宽字节注入 数据库为gbk编码,利用gbk汉字编码绕过转义符号

相互组合使用,也可能单个出现,以上不是全部但大体的记忆方式是一样的。

waf基础绕过:

/*!*/ 内联注释

/**/注释代替空格

--+dddddd%0a 参数污染,注释后换行

&& 代替and

|| 代替or

以上就是对mysql注入的学习总结,越学习越发觉得闭合才是最关键的地方,可能是因为我太菜了吧;

mysql注入学习总结

上一篇:Centos7实现MySQL数据库备份与恢复


下一篇:Mybatis(动态sql标签)