1、DNSLog注入
(一种注入新思路)
可以看到DNS的解析日志中包含了用户名。
基于此原理,可以手工构造注入点,让DNSlog显示库名、表名等,也可以使用自动化脚本Dnslogsqlinj进行获取。
2、SQL注入的防御
基于关键字(union,select,order by等)
字符转义(’ " ) \等)
杜绝sql语句拼接(参数化)——(预编译)
保证控制错误信息不返回到前台。
数据库权限控制——读写函数load_file等
数据库的表名列名复杂一些
数据加密(如MD5+加盐)
WAF(如免费的mod_security,安装在自己的容器中)
3、WAF绕过思路
编码;
大小写;
相同语义(掌握得比管理员多就行),
配合各操作系统特性、数据库特性;
过滤代码或漏洞本身(双写、转换进制、转换ascii码)、
基于协议的绕过、
网络结构的绕过(不经过waf,直接进入源地址)