SQL注入中二阶注入原理

1.sql注入中二阶注入原理?.

二阶注入是用户输入被存储后(如数据库或文件),再次被读取并输入到sql查询语句中,从而导致注入攻击。
1.插入恶意数据,进行数据库插入数据时,对特殊字符进行了转义处理,在写入数据库时保留了原来的数据。
2.引用恶意数据,开发者默认存入数据库的数据都是安全的,进行查询时,之间从数据库中读取恶意数据,没有校验
对输入进行了预处理或参数化查询,不直接将恶意代码插入到用户输入的地方,而是将恶意代码插入到数据库其他位置。

  • SQL注入绕过
    1、注释符过滤绕过:-- # //
    2、大小写、双写绕过
    3、内联注释绕过
    4、编码绕过:引号如果被过滤可以使用16进制绕过、ascii编码、
    5、空格过滤绕过:可以替代空格的有/
    / 、()、`、tap
    6、符合进行过滤:and=&&、or=||、xor=|、not=!
    7、过滤等号(=)绕过:like、rlike模糊匹配
    8、过滤大于号小于号:greatest(n1、n2、n3...)返回n中做大值;least(n1、n2、n3...)返回最小值
    9、过滤引号绕过:编码、宽字节注入
    10、过滤逗号绕过:from for、
  • SQL注入防御
    1、预编译
    2、检查数据类型
    3、设置黑名单
    4、使用参数化查询
    5、对用户输入进行严格过滤和转义
    6、为数据库分配最小的权限,限制其对数据库的操作
    7、使用web应用防火墙、云端防护等
    8、定期安全审计、更新数据库配置
    9、自定义错误页面
posted @ 2024-12-04 17:37  予遂计划  阅读(23)  评论(0编辑  收藏  举报