SQL注入,XML注入,代码注入,CRLF注入
SQL注入主要有两个关键条件:
1、用户能够控制输入
2、原本程序要执行的代码,拼接了用户的输入的数据
主要有盲注,timing attack
盲注值得是在服务器没有回显时完成注入攻击。
timingattack 是根据返回时间的长短来判断注入是否成功。
自动化注入工具
sqlmap 采用的是python开发的
在数据编码的问题上,有可能因为程序所使用的字符集的不同,导致了注入。
所以要统一数据库、操作系统、web应用所使用的字符集,以避免各层对字符的理解存在差异。
正确的防御SQL注入:
找到所有的SQL注入漏洞
修补这些漏洞
防御SQL注入的最佳方式是使用预编译语句,绑定变量。
使用安全的存储过程对抗SQL注入
操作系统应该采用最小权限原则,不应该给web应用过高的权限,来防止SQL注入。