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' 恒成立的
即可被系统判定为 真 --> 登录成功
SQL注入演示的更多相关文章
- 利用SQL注入漏洞登录后台的实现方法
利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...
- 利用SQL注入漏洞登录后台的实现方法 。。。。转载
一.SQL注入的步骤 a) 寻找注入点(如:登录界面.留言板等) b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c) 将sql语句发送给数据库管理系统(DBMS) d) DBMS ...
- [转载]mysql绑定参数bind_param原理以及防SQL注入
假设我们的用户表中存在一行.用户名字段为username.值为aaa.密码字段为pwd.值为pwd.. 下面我们来模拟一个用户登录的过程.. <?php $username = "aa ...
- 利用SQL注入漏洞登录后台
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...
- Java学习之路- SQL注入
用户名: __________ 密码:——————— 假如没有使用预处理的Statement 对象 拼接字符串查数据库的话,易收到sql注入攻击: 例如说 : mysql 中 #代表的是单行注释 ...
- 常用数据库2 sqlite及SQL注入
知识内容: 1.sqlite数据库介绍 2.sqlite数据库操作 3.SQL注入 一.sqlite数据库介绍 1.sqlite数据库 sqlite数据库:轻量级的数据库,一般开发中使用sqlite数 ...
- mysql绑定参数bind_param原理以及防SQL注入
假设我们的用户表中存在一行.用户名字段为username.值为aaa.密码字段为pwd.值为pwd.. 下面我们来模拟一个用户登录的过程.. <?php $username = "aa ...
- Web安全篇之SQL注入攻击
在网上找了一篇关于sql注入的解释文章,还有很多技术,走马观花吧 文章来源:http://www.2cto.com/article/201310/250877.html ps:直接copy,格式有点问 ...
- SQL注入(SQL Injection)案例和防御方案
sql注入(SQL Injection):就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入攻击的主要危害包括:非法读取.篡 ...
- sql注入二
大家早上好!今天由我给大家带来<web安全之SQL注入篇>系列晨讲,首先对课程进行简单介绍,SQL注入篇一共分为三讲: 第一讲:“纸上谈兵:我们需要在本地架设注入环境,构造注 ...
随机推荐
- oeasy教您玩转vim - 17 - # 向上向下
向上向下 回忆上节课内容 和 f 相关的是跳到 向 前 跳到是 f 向 后 跳到是 F 和 t 相关的是贴靠 向 前 贴靠是 t 向 后 贴靠是 T 和 小写 相关的是 向前 向前 跳跃是 f 向前 ...
- 如何在.NET Framework,或NET8以前的项目中使用C# 12的新特性
前两天发了一篇关于模式匹配的文章,链接地址,有小伙伴提到使用.NET6没法体验 C#新特性的疑问, 其实呢只要本地的SDK源代码编译器能支持到的情况下(直接下载VS2022或者VS的最新preview ...
- 关于@Mapper与@MapperScan
o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'gggDao' and 'com.xxx.dao ...
- 写几个有用的lambda
List<String> list = Arrays.asList("app", "ban", "ora"); //循环输出 f ...
- 使用 $fetch 进行 HTTP 请求
title: 使用 $fetch 进行 HTTP 请求 date: 2024/8/2 updated: 2024/8/2 author: cmdragon excerpt: 摘要:文章介绍了Nuxt3 ...
- 【Python】Django学习1
按黑马程序员的美多商场作方向: https://www.bilibili.com/video/BV1nf4y1k7G3 一.应用创建.注册处理.配置 Pycharm 创建Django项目: 自应用注册 ...
- 【Vue】02 Component 组件 & Axios
Vue自定义组件: 不论任何注册组件的方式:template属性有且仅有一个根节点标签 就是说模版属性的标签只能有一个在最外面 <div id="container-element&q ...
- 树莓派3b+ 安装Ubuntu mate18.04系统 配置SSH 、 远程桌面realvnc
Ubuntu mate for 树莓派3b+ 系统下载: 下载地址: https://ubuntu-mate.org/download/ 这里用32位系统:(64位也可以的,虽然还是实验阶段的,不 ...
- MindSpore 计算框架 模型参数 和 优化器 参数的重新载入
本文主要内容源于: https://www.mindspore.cn/tutorial/training/zh-CN/master/use/load_model_for_inference_and_t ...
- 多节点高性能计算GPU集群的构建
建议参考原文: https://www.volcengine.com/docs/6535/78310 ============================================= 一直都 ...