记录下SQL注入案例

SQL 注入

大扫除时发现了几年前的笔记本,稍微看了下过去的笔记。SQL注入这玩意虽说是很老的问题了,在 mybatis 等优秀的 ORM 框架里面早已经通过预编译技术解决了。但是突然发现自己早已经忘记怎么复现这个问题了。刚好记录下。

    Object test1(@Param("query") String query);
    Object test2(@Param("query") String query);
    Object test3(@Param("query") String query);
    Object test4(@Param("query") String query);
    <select id="test1" resultType="java.lang.Object">
        select s.*
        from chs_transform_diag s
        where s.diag_code = '${query}'
    </select>
    <select id="test2"  resultType="java.lang.Object">
        select s.*
        from chs_transform_diag s
        where s.diag_code LIKE '%${query}%'
    </select>
    <select id="test3"  resultType="java.lang.Object">
        select s.*
        from chs_transform_diag s
        where s.diag_code = '#{query}'
    </select>
    <select id="test4"  resultType="java.lang.Object">
        select s.*
        from chs_transform_diag s
        where s.diag_code LIKE '#{query}'
    </select>

测试参数

  1. 1 or 1 = 1
  2. 'or'1'='1
    当使用 $ 符号时看 xml 文件里面的 sql 有没有拼 ' 符号,拼了的话就用第二个,基本就这样了。
posted @ 2023-02-26 16:34  临渊不羡渔  阅读(59)  评论(0编辑  收藏  举报