JDBC | 存在sql注入式攻击的最差实践代码
来源:互联网 发布:淘宝宝贝详情页怎么改 编辑:程序博客网 时间:2024/05/22 19:01
package cn.zhd;
import java.io.*;
import org.apache.log4j.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class LoginDemo {
public void execute(String user,String pass){
boolean foo=false;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/students","root","");
Statement stam=con.createStatement();
//存在注入攻击漏洞:select * from login where user='' or'x'='x' or 'x'='' and '1'
ResultSet rs=stam.executeQuery("select * from login where user='" + user + "' and pass='"+ pass + "'");
while(rs.next()){
foo=true;
}
if(foo){
System.out.println("登陆成功");
}
else
{
System.out.println("用户名密码错误");
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Logger log=Logger.getLogger(LoginDemo.class);
try{
LoginDemo ld=new LoginDemo();
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
log.info("请输入用户名");
String bf_str=bf.readLine();
log.info("请输入密码");
String bf2_str=bf.readLine();
bf.close();
ld.execute(bf_str,bf2_str);
}catch(IOException e){
e.printStackTrace();
}
}
}
当输入用户名的时候输入:' or 'x'='x' or '2'='
密码随便输.....
成功登陆了吧.....
import java.io.*;
import org.apache.log4j.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class LoginDemo {
public void execute(String user,String pass){
boolean foo=false;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/students","root","");
Statement stam=con.createStatement();
//存在注入攻击漏洞:select * from login where user='' or'x'='x' or 'x'='' and '1'
ResultSet rs=stam.executeQuery("select * from login where user='" + user + "' and pass='"+ pass + "'");
while(rs.next()){
foo=true;
}
if(foo){
System.out.println("登陆成功");
}
else
{
System.out.println("用户名密码错误");
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Logger log=Logger.getLogger(LoginDemo.class);
try{
LoginDemo ld=new LoginDemo();
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
log.info("请输入用户名");
String bf_str=bf.readLine();
log.info("请输入密码");
String bf2_str=bf.readLine();
bf.close();
ld.execute(bf_str,bf2_str);
}catch(IOException e){
e.printStackTrace();
}
}
}
当输入用户名的时候输入:' or 'x'='x' or '2'='
密码随便输.....
成功登陆了吧.....
- JDBC | 存在sql注入式攻击的最差实践代码
- 存在sql注入式攻击的最差实践代码(Java新手注意了)
- 回首当年我们犯下的错误——存在sql注入式攻击的最差实践代码(Java新手注意了)
- js+asp版的防范SQL注入式攻击代码
- js版的防范SQL注入式攻击代码
- asp版的防范SQL注入式攻击代码
- 防范SQL注入攻击的代码
- 防范SQL注入攻击的代码
- 采用二进制代码的SQL注入攻击
- 采用二进制代码的SQL注入攻击
- SQL 的注入式攻击
- SQL注入式攻击代码分析
- SQL注入式攻击代码分析
- 检测SQL注入式攻击代码
- 注入攻击-SQL注入和代码注入
- JDBC相关的知识点+大数据处理+防止sql注入攻击
- PL/SQL最差实践
- PL/SQL最差实践
- 一直很安静
- 瑞星网络服务器Sender、Receiver设置
- toyan
- VS 2005中的Dataset
- 2006-09-15 我真的要变成野兽了
- JDBC | 存在sql注入式攻击的最差实践代码
- 一个人的聊天----邓无名
- 证书和签名--试用微软提供的证书测试工具系列
- OPENQUERY函数的用法
- 轻松破解路由表天书之经验谈
- OA流程表设计
- 关闭垃圾服务 让Win XP运行的更顺畅
- Oracle PL/SQL入门之慨述
- JavaScript方法和技巧大全