iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatis中怎么实现SQL注入攻击
  • 777
分享到

MyBatis中怎么实现SQL注入攻击

2023-06-20 14:06:48 777人浏览 薄情痞子
摘要

mybatis中怎么实现sql注入攻击,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、模糊查询Select * from&nbs

mybatis中怎么实现sql注入攻击,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


1、模糊查询

Select * from news where title like ‘%#{title}%'

在这种情况下使用#程序会报错,新手程序员就把#号改成了$,这样如果java代码层面没有对用户输入的内容做处理势必会产生SQL注入漏洞。

正确写法:

select * from news where tile like concat(‘%',#{title}, ‘%')

2、in 之后的多个参数

in之后多个id查询时使用# 同样会报错,

Select * from news where id in (#{ids})

正确用法为使用foreach,而不是将#替换为$

`id in``<foreach collection="ids" item="item" open="("separatosr="," close=")">``#{ids}` `</foreach>`

3、order by 之后

这种场景应当在Java层面做映射,设置一个字段/表名数组,仅允许用户传入索引值。这样保证传入的字段或者表名都在白名单里面。需要注意的是在mybatis-generator自动生成的SQL语句中,order by使用的也是$,而like和in没有问题。

二、实战思路

我们使用一个开源的cms来分析,java sql注入问题适合使用反推,先搜索xml查找可能存在注入的漏洞点–>反推到DAO–>再到实现类–>再通过调用链找到前台URL,找到利用点,话不多说走起

idea导入项目

Idea首页 点击Get from Version Control,输入https://gitee.com/mingSoft/MCMS.git

下载完成,等待Maven把项目下载完成

MyBatis中怎么实现SQL注入攻击

搜索$关键字

Ctrl+shift+F 调出Find in Path,筛选后缀xml,搜索$关键字

MyBatis中怎么实现SQL注入攻击

根据文件名带Dao的xml为我们需要的,以IContentDao.xml为例,双击打开,ctrl +F 搜索$,查找到16个前三个为数据库选择,跳过,

MyBatis中怎么实现SQL注入攻击

继续往下看到疑似order by 暂时搁置

MyBatis中怎么实现SQL注入攻击

继续往下看发现多个普通拼接,此点更容易利用,我们以此为例深入,只查找ids从前端哪里传入

MyBatis中怎么实现SQL注入攻击

搜索映射对象

Mybatis 的select id对应要映射的对象名,我们以getSearchCount为关键字搜索映射的对象

MyBatis中怎么实现SQL注入攻击

搜到了IContentDao.java,IContentDaoimpl.java和McmsAction.java,分别对应映射的对象,对象的实现类和前端controler,直接跳转到controler类

MyBatis中怎么实现SQL注入攻击

发现只有cateGoryIds与目标参数ids相似,需进一步确认,返回到IContentDao.java按照标准流继续反推

MyBatis中怎么实现SQL注入攻击

找到ids为getSearchCount的最后一个参数,alt+f7查看调用链

MyBatis中怎么实现SQL注入攻击

调转到ContentBizImpl,确认前台参数为categoryIds

MyBatis中怎么实现SQL注入攻击

返回到McmsAction,参数由BasicUtil.getString接收,

MyBatis中怎么实现SQL注入攻击

跟进BasicUtil.getString

MyBatis中怎么实现SQL注入攻击

继续跳到springUtil.getRequest(),前端未做处理,sql注入实锤

MyBatis中怎么实现SQL注入攻击

漏洞确认

项目运行起来,构造sql语句Http://localhost:8080/ms-mcms/mcms/search.do?categoryId=1%27)%20%20or+updatexml(1,concat(0x7e,(SELECT+%40%40version),0x7e),1)%23 得到mysql的版本5.7.27,验证注入存在。

MyBatis中怎么实现SQL注入攻击

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: MyBatis中怎么实现SQL注入攻击

本文链接: https://www.lsjlt.com/news/297225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis中怎么实现SQL注入攻击
    MyBatis中怎么实现SQL注入攻击,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、模糊查询Select * from&nbs...
    99+
    2023-06-20
  • 怎么预防sql注入攻击
    预防SQL注入攻击的方法包括以下几点:1. 使用参数化查询(Prepared Statements):使用预编译的SQL语句并将用户...
    99+
    2023-08-24
    sql
  • FastAPI中怎么防止SQL注入攻击
    要防止SQL注入攻击,可以通过以下方法在FastAPI中进行防御: 使用ORM(Object Relational Mappin...
    99+
    2024-05-10
    FastAPI
  • mybatis注解动态sql注入map和list方式(防sql注入攻击)
    目录网上的教程我的教程(防sql注入攻击)注入Map注入List封装foreachmybatis防止sql注入的循环map写法网上的教程 配置xml 注解中写xml...
    99+
    2024-04-02
  • MyBatis下SQL注入攻击的3种方式
    目录前言Mybatis框架下易产生SQL注入漏洞的情况主要分为以下三种:1、模糊查询2、in 之后的多个参数3、order by 之后二、实战思路三、总结前言 SQL注入漏洞作为WE...
    99+
    2024-04-02
  • 什么是SQL注入攻击,解释如何防范SQL注入攻击?
    1、什么是SQL注入攻击,解释如何防范SQL注入攻击。 SQL注入攻击是一种常见的网络攻击方式,攻击者通过在Web应用程序的查询语句中插入恶意代码,从而获取数据库中的敏感信息或者执行其他恶意操作。 为了防范SQL注入攻击,可以采取以下措施:...
    99+
    2023-08-30
    sql 数据库 面试
  • 怎么有效防止SQL注入攻击
    这篇文章主要介绍“怎么有效防止SQL注入攻击”,在日常操作中,相信很多人在怎么有效防止SQL注入攻击问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么有效防止SQL注入攻击”...
    99+
    2024-04-02
  • sql注入属于什么攻击ddos
    sql注入不属于攻击ddos,它是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,可使用htmlspecialchars()等函数进行转义以及对输入类型进行检测、类型转换等方法进...
    99+
    2024-04-02
  • 带你理解什么是sql注入攻击、xss攻击和cors攻击
    目录SQL注入SQL注入攻击的总体思路:SQL注入攻击实例:如何应对:XSS攻击非持久 XSS攻击:解决的具体方案:CORS攻击简单请求:非简单请求:SQL注入 SQL注入就是通过把...
    99+
    2023-05-16
    sql注入攻击 xss攻击 cors攻击
  • sql注入攻击指的是什么
    小编给大家分享一下sql注入攻击指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参...
    99+
    2024-04-02
  • sql注入攻击应用的现状是什么
    今天就跟大家聊聊有关sql注入攻击应用的现状是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  随着当今世界网络技术与信息技术高速发展,Web应...
    99+
    2024-04-02
  • 一文搞懂SQL注入攻击
    目录1. 前言2. SQL注入简介(1)SQL语言(2)SQL注入3. SQL注入步骤(1)发现漏洞(2)信息收集(3)攻击Web系统(猜解用户名和密码)(4)获取管理员权限4. 防范SQL注入(1)使用参数化查询或存储...
    99+
    2023-04-19
    SQL注入攻击 SQL注入
  • 如何防止sql注入攻击
    小编给大家分享一下如何防止sql注入攻击,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!怎么防止SQL注入攻击?SQL注入攻击可以通过数据库安全防护技术实现有效防护,数据库安全防护技术包括:数据...
    99+
    2024-04-02
  • sql注入攻击针对的是什么
    sql注入攻击针对的是数据库,以网站数据库为目标,利用web应用程序对特殊字符串不完全过滤的缺陷,通过精心构造字符串达到非法访问网站数据库获取机密或者在网站数据库非法执行命令的目的。...
    99+
    2024-04-02
  • SQL注入攻击的原理是什么
    小编给大家分享一下SQL注入攻击的原理是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql注入攻击的原理恶意用户在提交查询...
    99+
    2024-04-02
  • 如何在PHP中防止SQL注入攻击
    在Web应用程序中,SQL注入攻击是一种常见的攻击方式。它利用应用程序未对用户输入进行过滤或限制,将恶意SQL语句插入到应用程序中,从而导致数据库被攻击者控制和窃取敏感数据。对于PHP开发者来说,如何有效的防止SQL注入攻击是一个必须要掌握...
    99+
    2023-05-20
    PHP sql注入 防止攻击
  • sql注入攻击危害有哪些
    sql注入攻击危害有:泄露数据库中用户的隐私信息。数据库被恶意操作,数据库的系统管理员帐户被篡改。上传asp木马病毒,进行挂马攻击。通过操作数据库对特定网页进行篡改。破坏硬盘数据,瘫痪全系统。...
    99+
    2024-04-02
  • 防止SQL注入攻击的方法
    小编给大家分享一下防止SQL注入攻击的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! SQL注入是一种注入攻击,可...
    99+
    2024-04-02
  • django如何应对sql注入攻击
    django应对sql注入攻击的方法:使用django自带的数据库API,它会根据数据库的转换规则,自动转义特殊的SQL参数。在cursor.execute()的sql语句中使用“%s”,而不要在sql内直接添加参数,例如:from dja...
    99+
    2024-04-02
  • sql注入攻击种类有哪些
    sql注入攻击种类有:没有过滤转义字符、错误的类型处理、数据库服务器中的漏洞、盲目SQL注入式攻击等。没有正确过滤转义字符,在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句,例如:statement...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作