SQL注入

下面这个视频讲的不错,今天听舍友提起这个概念,有点兴趣,可以用来水一篇博客,咳咳。

想复现一下sql注入的场景,但是问了问AI,想在项目中用JPA或者Mybatis-plus都采用参数化查询,并且在程序中有前端后端多重防线,SQL注入不太可能。

看来这个SQL注入也是个之前的东西了,现在都防着他呢。

但是这怎么能难倒我呢,我找了个大二写的项目,采用servlet,mysql,html,Tomcat完成。在登录时,并没有其他特殊的拦截。下面复现一下两个经典场景:

https://www.bilibili.com/video/BV1ZR4y1Y745/?spm_id_from=333.337.search-card.all.click&vd_source=63a104bcfd8f53a73bc4a826571ad45b

image

  // ========== 安全版本(使用预编译语句,防止SQL注入) ==========
    // @Select("select * from employee where username = #{username} and password = #{password}")
    // Employee getEmployee(@Param("username") String username, @Param("password") String password);

    // ========== 易受SQL注入攻击的版本(用于安全测试学习) ==========
    @Select("select * from employee where username = '${username}' and password = '${password}'")
    Employee getEmployee(@Param("username") String username, @Param("password") String password);

这里采用的是
用户名: admin' -- 密码: 任意密码 注意用户名这是'+空格+--+空格

image

这里采用的是
用户名: admin' OR '1'='1 密码: 任意密码

image

登录成功后的页面:

image

posted @ 2026-01-06 20:29  雨花阁  阅读(17)  评论(0)    收藏  举报