sql注入问题批量处理

问题:SQL注入修改,历史代码全是${};无法修改的比如表名,列名,动态排序之类的不改,其他的都要修改完成

背景:新公司第一个任务就是SQL注入的修改,历史sql全部都是${},一个个调整不太合适只能批量修改。查了一下,基本分为 like '%${}%';= ${} ; in (${});to_char(${})之类的.需要注意的是每个都有可能有多种情况,比如 = ${} 有 =${} 和 = '${}'两种可能,in 有 in ${} ;in (${});in('${}')可能,主要是代码传递的时候,有些人只是在中间拼接了单引号,有些人两端都拼接了单引号,还有的人把括号也拼起来了。扫描出来是有1900多个问题,一个个解决也不太现实,只能批量修改

实现:利用idea的替换功能对数据批量替换,已in 为例,搜索in\s*\(\s*\$\{(.*?)}\s*\),替换成in
        <foreach item="item" collection="$1.split(',')" open="(" separator="," close=")">
            replace(#{item},'''')
        </foreach>

注意需要勾选上正则匹配,in\s*\(\s*\$\{(.*?)}\s*\)表示in+任意空格+(+任意空格+${+匹配组+}+任意空格+),匹配组用()包起来,替换的时候可以用$1来获取这个值,需要多个匹配组的话,替换时依次$1,$2既可,传的参数再使用replace切掉单引号。这个确认过前后端交互不会有单引号,所有特殊字符都会被去掉。replace替换MySQL并不支持默认为空(截图当时是用的oracle测试,oracle不写的话默认转成空),所以要写成replace(#{},'''','')单引号转义要写两次,表示把字符串中的单引号改成空

这种基本就可以批量替换,还有要注意一点,sql标签有一个属性叫statementType配置成"STATEMENT"的时候代表不接收入参,这样的话把${}改成#{}会报错。去掉这个属性既可

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
傀儡SQL注入批量扫描工具是一种用于检测和扫描网站是否存在傀儡SQL注入漏洞的软件工具。傀儡SQL注入是一种常见的网络安全漏洞,攻击者可以利用该漏洞来获取数据库中的敏感信息,或者更严重的情况下,完全控制受攻击的网站。 这种工具的工作原理是自动化扫描一系列的URL链接,检查这些链接是否存在傀儡SQL注入漏洞。工具会自动发送带有特殊注入代码的请求,以尝试从数据库中获取未经授权的数据。如果网站存在注入漏洞,工具将会提供相应的警报或报告。 使用傀儡SQL注入批量扫描工具的好处是可以快速发现并修复潜在的漏洞。通过自动化扫描,工具可以在短时间内检查大量的URL链接,从而节省了人工扫描的时间和精力。同时,工具还可以提供详细的报告,包括漏洞的类型、位置和可能的危害程度,帮助网站管理员更好地了解漏洞的风险,并采取相应的措施进行修复。 然而,傀儡SQL注入批量扫描工具只是发现漏洞的工具,不能替代人工的安全评估和修复过程。因此,在使用这种工具时,网站管理员仍然需要监测并验证扫描结果,确保没有误报或漏报。此外,修复漏洞也需要采取正确的措施,例如升级软件、过滤输入等,才能有效地防范傀儡SQL注入攻击。 总之,傀儡SQL注入批量扫描工具在网络安全领域发挥着重要的作用,可以帮助网站管理员快速发现和修复潜在的傀儡SQL注入漏洞,从而提高网站的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值