sql存在漏洞,容易被恶意攻击导致数据篡改,泄露=====本质,就是or语句," 'or' 1=1",1=1一定成立,所以一定能进入数据库====

package com.esd.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class sql注入 {
    public static void main(String[] args) {
//        login("huang","123456");本来的写法
        login(" 'or' 1=1"," 'or'1=1");
    }
    public static void login(String username,String password){
        Connection conn= null;
        Statement st=null;
        ResultSet rs=null;
        try{

             conn = JdbcUtils.getConnection();
             st = conn.createStatement();
//            SELECT * FROM users WHERE `name`='huang' AND`password`='123456'
            String sql="SELECT * FROM users WHERE `name`='"+username+"' AND`password`='"+password+"'";//'huang'>>'"username"',,,'password'>>'"password"'
             rs = st.executeQuery(sql);
            while(rs.next()){
                System.out.println(rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {

            JdbcUtils.release(conn,st,rs);
        }
    }
}

本来写法:指定了name和password

or写法,把这个数据库所有的数据全部爬出来了

 

posted on 2022-05-18 01:02  阿霖找BUG  阅读(24)  评论(0)    收藏  举报