范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Mybatis中SQL注入攻击的3种方式,真是防不胜防

  前言
  SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。 一、Mybatis的SQL注入
  Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成。编写xml文件时,MyBatis支持两种参数符号,一种是#,另一种是$。比如:
  "queryAll"  resultMap= "resultMap" >
  SELECT * FROM NEWS WHERE ID =  #{id}
  #使用预编译,$使用拼接SQL。
  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
  "ids"  item= "item"  open= "(" separatosr= ","  close= ")" >
  #{ids}
  3、order by 之后
  这种场景应当在Java层面做映射,设置一个字段/表名数组,仅允许用户传入索引值。这样保证传入的字段或者表名都在白名单里面。需要注意的是在mybatis-generator自动生成的SQL语句中,order by使用的也是$,而like和in没有问题。 二、实战思路
  我们使用一个开源的cms来分析,java sql注入问题适合使用反推,先搜索xml查找可能存在注入的漏洞点-->反推到DAO-->再到实现类-->再通过调用链找到前台URL,找到利用点,话不多说走起
  1、idea导入项目
  Idea首页 点击Get from Version Control,输入https://gitee.com/mingSoft/MCMS.git
  下载完成,等待maven把项目下载完成
  2、搜索$关键字
  Ctrl+shift+F 调出Find in Path,筛选后缀xml,搜索$关键字
  根据文件名带Dao的xml为我们需要的,以IContentDao.xml为例,双击打开,ctrl +F 搜索$,查找到16个前三个为数据库选择,跳过,
  继续往下看到疑似order by 暂时搁置
  继续往下看发现多个普通拼接,此点更容易利用,我们以此为例深入,只查找ids从前端哪里传入
  3、搜索映射对象
  Mybatis 的select id对应要映射的对象名,我们以getSearchCount为关键字搜索映射的对象
  搜到了IContentDao.java,IContentDaoimpl.java和McmsAction.java,分别对应映射的对象,对象的实现类和前端controler,直接跳转到controler类
  发现只有categoryIds与目标参数ids相似,需进一步确认,返回到IContentDao.java按照标准流继续反推
  找到ids为getSearchCount的最后一个参数,alt+f7查看调用链
  调转到ContentBizImpl,确认前台参数为categoryIds
  返回到McmsAction,参数由BasicUtil.getString接收,
  跟进BasicUtil.getString
  继续跳到SpringUtil.getRequest(),前端未做处理,sql注入实锤
  4、漏洞确认
  项目运行起来,构造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注入审计的基本方法,我们没有分析的几个点也有问题,新手可以尝试分析一下不同的注入点来实操一遍,相信会有更多的收获。当我们再遇到类似问题时可以考虑:
  1、Mybatis框架下审计SQL注入,重点关注在三个方面like,in和order by
  2、xml方式编写sql时,可以先筛选xml文件搜索$,逐个分析,要特别注意mybatis-generator的order by注入
  3、Mybatis注解编写sql时方法类似
  4、java层面应该做好参数检查,假定用户输入均为恶意输入,防范潜在的攻击
  --- EOF ---
  来自:FreeBuf.COM,作者:sunnyf
  链接:https://www.freebuf.com/vuls/240578.html

浙江文成箱包出口订单增长超预期文成箱包制造企业赶订单潘聪聪供图中新网温州3月16日电(张益聪徐露露季志远)随着旅游市场复苏,箱包出口迎来了反弹式增长。2023年开年以来,在浙江温州文成县黄坦镇,箱包制造企业赶订首开仁信女职工乐享手作皮具本报讯(记者刘欣欣)近日,首开集团仁信公司工会组织女职工开展主题为体验匠心之旅,感受生活之美的手作皮具制作活动。活动在仁信公司手工坊举办,30余名女职工参与其中。活动伊始,仁信公司万宝龙全新匠心皮具系列与春夏眼镜系列,爱马仕2023春夏新品创意天马行空是日美好事物万宝龙推出全新匠心皮具系列与春夏眼镜系列万宝龙推出了全新匠心系列皮具,独特的叠搭设计意趣十足又不失个性。该系列均采用触感柔软的皮质打造,继承了品牌一贯的卓越设计和非凡品质,并融合了美丽蓝山樱花绽放春意浓花团锦簇似云霞红网时刻新闻3月2日讯(通讯员赵彬盘俊杰)阳春三月,春暖花开。连日来,蓝山县各地樱花相继绽放,春意盎然,生机勃勃,人们纷纷走出家门踏青赏花拍照留影,乐享美好春光。在湘江源瑶族乡坪源蓝山县企业奋力冲刺一季度开门红红网时刻新闻2月26日讯(通讯员刘文斌)开局即冲刺起步即加速。进入一季度以来,蓝山县各大企业抢效率赶订单,开足马力奋力冲刺一季度开门红。2月25日,笔者走进永州嘉益皮具有限公司生产益智解谜游戏Storyteller今日登陆SteamNS平台益智解谜游戏Storyteller现已登陆SteamNS平台,Steam特惠52。2元,目前多半好评,支持中文。感兴趣的玩家可以由此进入商店页面。宣传片httpswww。bilib正式发布!华为擎云一场数字化的浪潮正席卷而来。伴随着新一轮科技革命和产业变革突飞猛进,数字经济近年来在我国快速发展,动能加速释放。数字经济与实体经济深度融合发展,成为诸多行业的必行之路。据行业分析机新技术与行业不断诞生融合,科技企业如何穿越周期实现高增长?编辑子蕊校对TinaRita策划Eason3月11日12日,第一新声成功举办数字新未来2022年高科技高成长企业年度峰会。邀请到近50位嘉宾,分享了最新的趋势独角兽科技公司的进与退新能源车大洗牌来了!4份财报透露关键信号近期,造车新势力上市公司陆续发布了2022年财报。随着销量规模的提升,理想汽车蔚来汽车小鹏汽车零跑汽车在2022年均实现了营收的增长。其中,蔚来汽车和理想汽车由于品牌定位及产品定价供热计量温控一体化解决方案Heatingenergysaving供热节能智慧供热主要依托大数据人工智能云计算和互联网等技术通过对供热相关数据采集及分析,对热源热网末端的各个供热环节进行智能调控,从而进一步实AK蝾螈肉鸽射击游戏AKxolotlSteam页面上线今日(3月24日),肉鸽射击游戏AKxolotlSteam页面上线,游戏支持简体中文,年内发售,感兴趣的玩家可以进入商店页面。游戏预告游戏介绍最可爱最致命且唯一一款以手持AK的蝾螈
10种家常丸子做法,过年必备1。莲藕肉丸食材莲藕猪肉胡萝卜蒜姜葱小米椒做法1。首先洗净食材,切肉沫,切碎藕和胡萝卜,切蒜末,姜片葱花,小米椒圈2。肉沫少许食盐1勺料酒1勺生抽1勺蚝油葱花适量葱姜水拌匀,然后加世界各国的元旦习俗新年,总是给人们带来美好的祝愿。在这个辞旧迎新的日子里,世界各地的人们都在用自己独特的方式迎接新年。新一年,总是给人们带来美好的祝福。在这除旧迎新的日子里,世界各国的人们都以其别出有关新加坡签证,一篇说个明白有关新加坡签证,一篇说个明白!新加坡签证一共6个种类1商务签2旅游签3长期访问签4探亲访友签5学生准证6就业准证1商务签证主要针对来新加坡从事商务活动的人员,要求新加坡方面的公司发威尼斯游轮的各方面影响前言游轮是最受欢迎的旅行方式之一,穿越威尼斯历史中心的游轮已成为标志性,了解威尼斯游轮的背景,利用文化与技术以及社会理论,三种方式进行研究,揭示游轮通过城市空间,如何影响威尼斯和泻山路石光色,树花水鸟声山山不在高,有仙则名。在深圳,最出名的是梧桐山,但是我却最爱爬阳台山,整个上山下山4个小时左右时间,我也有我独爱的路径,从大浪入口进去,沿着台阶拾级而上,过了三个陡峭的坡道之后就能12月11日,行走祁阳,细数我们不能错过的美景冬意渐浓,欲冷还暖的天气仿佛是在有意策动我们的脚步走向户外12月11日跟随祁阳村镇银行杯陶铸故里红军行远离城市喧嚣,放下生活烦扰一起用奔跑的姿态致敬先烈弘扬革命精神浯溪碑林浯溪碑林深秋季节里的西藏转不完的圣水篇作者摄影莫国良在深秋的季节里,进入西藏旅行转山转水转佛塔。在短短的20余天难忘的西藏旅行的日子里,行走了将近6000公里,由此也是见识了西藏的数不完圣水。在此与大家分享沿途所见到的湖人要想进入总决赛,必须以戴维斯为核心建立战术核心北京时间12月5日上午11点,湖人VS奇才在进击的浓眉带领下,最终湖人以130119战胜奇才!其中最近戴维斯的表现真是拦不住啊,手感非常火爆,成为了今日赢下奇才的核心。戴维斯全场出云南最美的角落(一)腾冲香格里拉丽江彩云之南,一个去了三趟都没有完整了解她的地方。云南,之所以取名云南,在历史上有三种说法,一是彩云南现说,当时建县时,云南驿村北面的龙兴和山出现五彩云霞,县城在彩云之南称云南二是云山五千降到两千,12G256G麒麟核心2K屏,这四款手机售价变亲民相信大家对手机价格跳水已经习以为常了,现在手机更迭的速度太快啦,半年开一次新机发布会,很多旧机型都会在新机发布会后降价,虽然是旧机型,但是很多手机的配置还是很能打的,中上等的配置,5517!一战轰破3纪录,浓眉成绝对核心,湖人彻底好起来了这个赛季,湖人由于赛季初的糟糕表现,球队战绩对比赛季初没有任何改变,球队休赛期虽然做出了人员补强,但球队缺少投射的问题依然明显存在,威少虽然进入替补席后表现对比与詹姆斯同时首发的时