SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,
导致数据库信息泄漏的一种漏洞。
SQL注入攻击流程 第一步:注入点探测 自动方式:使用web漏洞扫描工具,自动进行注入点发现 手动方式:手工构造SQL注入测试语句进行注入点发现 第二步:信息获取 通过注入点取得期望得到的数据 1.环境信息:数据库类型,数据库版本,操作系统版本,用户信息等 2.数据库信息:数据库蜜罐,数据库表,表字段,字段内容等(加密内容破解) 第三步:获取权限 获取操作系统权限:通过数据库执行shell,上传木马
注入点类型 分类根据:输入的变量传入到SQL语句是以什么类型拼接的 数字型:user_id=$id 字符型:user_id=‘$id‘ 搜索型:text LIKE ‘%{$_GET[‘search‘]}%‘"
SQL注入防范措施
代码层面
对输入进行严格的转义和过滤
使用预处理和参数化(Parameterized)
网路层面
通过WAF启用防范SQL Inject
云端防护(360网站卫士,阿里云盾)