java-sec-code学习4-SQL注入

embedded/2024/10/19 8:02:08/

javaseccode4SQL_0">java-sec-code学习4-SQL注入

case1

URL: http://127.0.0.1:8080/sqli/mybatis/vuln01?username=joychou%27%20or%20%271%27=%271
直接来看源代码:
在这里插入图片描述
直接获取请求参数username并且通过直接拼接的方式连接到SQL查询语句,随后再statement.executeQuery()方法中执行SQL语句。
因此,实际上sql语句就变成了select * from users where username='joychou' or '1'='1'这使得后面的where条件始终为真,查询出了所有的用户信息。
在这里插入图片描述

修复案例

修复案例是通过预编译方式来防止SQL注入攻击的,主要的做法就是通过prepareStatement来实现预编译,同时设置参数填充位置。
在这里插入图片描述

预编译错误案例

这是预编译的错误使用案例,简单的通过使用预编译方法来执行sql是不够的,因为传入预编译处理时就已经是恶意的SQL语句了,而不是等待占位填充的语句。
在这里插入图片描述
因此,使用预编译,需要结合SQL语句占位和赋值实现,例如上面的修复案例。
在这里插入图片描述

mybatis案例一

路由对应/mybatis/vuln01
在这里插入图片描述
可以看到这里时利用了mybatis中的mapper来实现sql查询。具体可以查看一下UserMapper类:
在这里插入图片描述
相关的sql查询方法都已经在里面了,可以看到SQL查询语句为select * from users where username = '${username}',这里漏洞点在于mybatis中的占位符用的是$符号
正确的使用方法应该是使用#号来进行占位,如果是order by后的占位,则最好根据情况通过if-elseif-else来分情况实现。


http://www.ppmy.cn/embedded/128686.html

相关文章

Vscode+Pycharm+Vue.js+WEUI+django火锅(7) 傍着Copliot战WEUI Picker

https://doc.vux.li/zh-CN/components/picker.html里面看了Picker的说明,觉得还是用AI方便快捷。于是祭出了Copliot.第一问.hi Copliot,给一个vue weui picker 实现示例 Copliot: 你可以使用 vue-weui 库来实现 WeUI 样式的 Picker 组件。以下是一个简…

awk命令学习记录

awk命令 awk命令 表示将一行数据按特定分割符分割成多列,而从而选取特定列数的数据,默认分割符为空格,连接符默认也是空格 // 1. 更换分割符 awk -F : 1.txt // 1.txt为你的文件名 // 2. 打印多列 awk {print $1,$2} // $0为整行&#xff…

复习:React 中的 Diff 算法,原理是什么

React中的Diff算法,其原理主要用于比较新旧虚拟DOM树的差异,并生成更新补丁以最小化DOM操作。以下是React Diff算法原理的详细解释: 一、Diff算法的基本概念 Diff算法,即差异查找算法,在React中主要用于计算虚拟DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而…

JAVA地狱级笑话

为什么Java开发者总是不怕黑暗? 因为他们总是有null指针来照亮路。 Java程序员最讨厌的音乐是什么? Garbage Collection旋律,节奏总是让他们烦躁。 为什么Java中的HashMap很擅长社交? 因为它总是能快速找到key对应的朋友。 Java开…

基于Flink+Hologres搭建实时数仓

Apache Paimon是一种流批统一的数据湖存储格式,结合Flink及Spark构建流批处理的实时湖仓一体架构。Paimon创新地将湖格式与LSM技术结合起来,给数据湖带来了实时流更新以及完整的流处理能力。借助实时计算Flink版与Apache Paimon,可以快速地在…

深入理解计算机系统--计算机系统漫游

对于一段最基础代码的文件hello.c&#xff0c;解释程序的运行 #include <stdio.h>int main() {printf ( "Hello, world\n") ;return 0; }1.1、信息就是位上下文 源程序是由值 0 和 1 组成的位&#xff08;比特&#xff09;序列&#xff0c;8 个位被组织成一组…

光伏行业如何借助ERP领跑绿色经济?

在全球能源结构转型和绿色能源转型的大背景下&#xff0c;现在光伏行业呈现出技术创新、市场需求扩大、产能调整和竞争加剧等特点&#xff0c;也预示行业的持续成长和未来的发展潜力。但企业仍然需要不断提高技术水平和管理水平以应对激烈的市场竞争&#xff0c;SAP ERP制定符合…

网络层协议

一、IP&#xff08;Internet Protocol&#xff09; 1、互联网协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;&#xff1a;TCP/IP协议族的核心&#xff0c;负责在不同网络之间传输数据包。为每个数据包分配一个唯一的IP地址&#xff0c;规定数据包在网络中的路由…