浅析Java代码审计中的SQL注入漏洞

  • 1.注入漏洞简介
  • 2.SQL注入漏洞简介
  • 3.JDBC拼接不当造成SQL注入
    • 第一关:使用Statement
    • 第二关:使用PrepareStatement
  • 4.框架使用不当造成SQL注入
    • 第三关:使用MyBatis框架
    • 第四关:Hibernate框架
  • 5.结语

1.注入漏洞简介

注入漏洞,是指攻击者可以通过HTTP请求将payload注入某种代码中,导致payload被当作代码执行的漏洞。例如SQL注入漏洞,攻击者将SQL注入payload插入SQL语句中,并且被SQL引擎解析成SQL代码,影响原SQL语句的逻辑,形成注入。同样,文件包含漏洞、命令执行漏洞、代码执行漏洞的原理也类似,也可以看作代码注入漏洞。


2.SQL注入漏洞简介

SQL注入(SQL Injection)是因为程序未能正确对用户的输入进行检查,将用户的输入以拼接的方式带入SQL语句中,导致了SQL注入的产生。黑客通过SQL注入可直接窃取数据库信息,造成信息泄露


3.JDBC拼接不当造成SQL注入

JDBC有两种方法执行SQL语句,分别为PrepareStatementStatement。两个方法的区别在于PrepareStatement会对SQL语句进行预编译,而Statement方法在每次执行时都需要编译,会增大系统开销。理论上PrepareStatement的效率和安全性会比Statement要好,但并不意味着使用PrepareStatement就绝对安全,不会产生SQL注入。

第一关:使用Statement

小渣是一名菜鸡程序员,这天他收到了一封匿名黑客邮件,黑客声称已经获取了小渣数据库中所有用户的详细信息,并要求小渣对此负责,于是小渣委托同事大牛上机排查,锁定了下面这几行代码:

String sql = "select * from user where id = " + req.getParameter("id");
out.println(sql);
try {Statement st = con.createStatement();ResultSet rs = st.executeQuery(sql);while (rs.next()) {out.println("<br> id: " + rs.getObject("id"));out.println("<br> name: " + rs.getObject("name"));}
} catch (SQLException throwables) {throwables.printStackTrace();
}

大牛

浅析Java代码审计中的SQL注入漏洞相关推荐

  1. 代码审计中的SQL注入

    0x00 背景 SQL注入是一种常见Web漏洞,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.本文以代码审计的形式研 ...

  2. 网站安全测试与检测中 发现的OA系统中的SQL注入漏洞

    近日,SINE安全监测中心监控到泛微OA系统被爆出存在高危的sql注入漏洞,该移动办公OA系统,在正常使用过程中可以伪造匿名身份来进行SQL注入攻击,获取用户等隐私信息,目前该网站漏洞影响较大,使用此 ...

  3. java代码审计中的一些常见漏洞及其特征函数

    文章来源:https://xz.aliyun.com/t/1633 最近在先知上看到之前有篇关于java代码审计的文章总结的蛮好,记录以下特征函数,方便查阅,同时自己也会将在平时代码审计过程中积累的函 ...

  4. Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Sophos 公司为 Cyberoam 防火墙和路由器发布热补丁,修复一个 SQL 注入漏洞. Sophos 在2014年收购防火墙和 ...

  5. Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)

    漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697mod_accounting是Apache 1.3.x上的流 ...

  6. WordPress ProPlayer插件‘id’参数SQL注入漏洞

    漏洞名称: WordPress ProPlayer插件'id'参数SQL注入漏洞 CNNVD编号: CNNVD-201305-468 发布时间: 2013-05-22 更新时间: 2013-05-22 ...

  7. wordpress漏洞_多个WordPress插件SQL注入漏洞分析

    背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...

  8. 如何使用加密的Payload来识别并利用SQL注入漏洞

    写在前面的话 密码学具有诸多优点,信息的保密性同样离不开密码学,但是从历史经验来看,在保护应用和数据安全方面我们绝对不能过分依赖于密码学.在这篇文章中,安全教育培训专家SunilYadav将会讨论一个 ...

  9. 泛微e-cology9 SQL注入漏洞复现(QVD-2023-5012)

    1.产品简介 泛微协同管理应用平台e-cology是一套兼具企业信息门户.知识文档管理.工作流程管理.人力资源管理.客户关系管理.项目管理.财务管理.资产管理.供应链管理.数据中心功能的企业大型协同管 ...

最新文章

  1. 《团队项目开发之三对一维环形数组的求解》
  2. codeforces 383D
  3. 高级交叉报表例子程序(C#)中明细列统计数据错误改正!
  4. 这是我看过最好的Java编程入门视频教程!
  5. cocos2dx动作讲解
  6. OpenStack、Docker、KVM被评为最火的云开源项目
  7. HDU5977-Garden of Eden-树分治+FWT
  8. firstchild.data与childNodes[0].nodeValue意思
  9. HDU2564 词组缩写【文本】
  10. brother打印机清零步骤_兄弟打印机清零方法兄弟打印机清零方法步骤
  11. 激光雷达点云的特征表达
  12. 好用且种类多的Unity3d游戏特效素材推荐,都在这里
  13. 软件需求分析----实验室设备管理系统
  14. TCP/IP 系列之你真的知道什么叫做IP吗?
  15. 嵌入式c语言精华,【精华整理】C语言嵌入式系统编程修炼--键盘操作篇
  16. d3dx9_35.dll如何修复
  17. Linux 将文件移动到指定文件夹中
  18. J2ME开发小技巧——模拟器上的快捷键
  19. 分享一下使用机智云APP控制战舰V3
  20. 体育开展教学测试的工具软件是什么,我国体育教师学科内容知识(CK)测评工具研制及其运用研究...

热门文章

  1. 1119 Pre- and Post-order Traversals (PAT甲级)
  2. EO类与VO类--组装转换
  3. 微信好友信息统计-图、词云和热图
  4. 数学图形(2.17)pappus螺线
  5. 练习题源代码46——55
  6. 小白也能看懂:最全无线渗透测试与攻防+Fluxison钓鱼教程+路由器安全设置指南 2021.3.31
  7. LINUX内核第一霸
  8. 洛谷 1546 最短网络
  9. 软考高级系统架构设计师:论面向服务的架构及其应用
  10. DeepMind 新发布的聊天机器人很好,但还不够好