SQL注入演示

风陵南·2022-09-16 23:37·51 次阅读

SQL注入演示

  SQL注入演示

 创建一个简易的登录系统/**

  tb_user  用户表

 

复制代码
* 用户登录系统(需在数据库中创建tb_user表 )
     */
    @Test
    public void testUserLogin() throws Exception{
        // 1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2.获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/db_0915?characterEncoding=utf8&useSSL=true";
        String username = "root";
        String password = "1234";
        Connection conn = DriverManager.getConnection(url,username,password);
        //  接收用户名和密码
        //原本登录方式  String name = "zhangsan";  //   用户输入用户名
        //         String pwd = "123";         //   用户输入密码
     //使用SQL注入
     String name = "iaojsfona";  // 用户名乱写
     String pwd = "' or '1' = '1 ";  //最简单的sql注入  

        String sql = "select * from tb_user where username = '" + name +
                                        "' and password = '" + pwd + "'";

        // 获取stmt对象
        Statement stmt = conn.createStatement();

        // 执行sql语句
        ResultSet rs =  stmt.executeQuery(sql);

        // 判断登录成功
        if(rs.next()){
            System.out.println("登录成功~");
        }else{
            System.out.println("登录失败~");
        }
    }
复制代码

 

 

 

 

   原理:

    ·String sql = "select * from tb_user where username = '" + name + "' and password = '" + pwd + "'";

    把  String pwd = "' or '1' = '1 ";   带入进去

    String sql = "select * from tb_user where username = '" + name + "' and password = '" + "' or '1' = '1 " + "'"

    SQL语句变为了--      select * from tb_user where username = 'asdgadgadg' and password = '' or '1' = '1'      恒成立的

    即可被系统判定为 真  -->  登录成功

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @   风陵南  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示