常见数据库参考:
https://blog.csdn.net/gengkui9897/article/details/89294936
数据库语法学习:
https://www.w3school.com.cn/sql/sql_syntax.asp
常见数据库的区别:
https://blog.csdn.net/qq_34193883/article/details/86996995
https://blog.csdn.net/yuxiangaaaaa/article/details/71642218
三大数据库SQL注入参考:
https://websec.ca/kb/sql_injection
下面介绍比较常见的关系数据库注入总结
MYSQL
mysql注入总结来自:https://www.cnblogs.com/spend/p/13111451.html
下面是主要内容:
注入类型:
(下方为举例,,实际上任何我们可控,过滤不严且带入数据库执行)
?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
MSSQL(SQL SERVER)
直接参考:
https://blog.51cto.com/maxvision/1691962
ACCESS
access只有一个库,是一个表的集合。
仅供参考:https://blog.51cto.com/obnus/410505
ORACLE
仅供参考:
https://www.cnblogs.com/pshell/articles/7473713.html
http://www.javashuo.com/article/p-tolkxxho-cu.html
总结
由于自己总结太过繁琐,所以我选择搜集文章来诠释各种技术,希望对各位有帮助,切记仅供参考。