码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java代码审计安全篇-常见Java SQL注入


    前言:

            堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油

    注意:

    本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望各位博主 师傅 大佬 勿喷,还希望大家指出错误

    1.SQL语句参数直接动态拼接

    常见的的执行语句为Statement执行SQL语句

    例如下面这段代码:

    1. <% //驱动程序名
    2. String driverName = "com.mysql.jdbc.Driver";
    3. //数据库用户名
    4. String userName = "root";
    5. //密码
    6. String userPasswd = "root";
    7. //数据库名
    8. String dbName = "javasqltest";
    9. //表名
    10. String ID = '1'
    11. //联结字符串
    12. String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="
    13. + userName + "&password=" + userPasswd;
    14. Class.forName("com.mysql.jdbc.Driver").newInstance();
    15. Connection connection = DriverManager.getConnection(url);
    16. Statement statement = connection.createStatement();
    17. String sql = "SELECT * FROM people where id = " +ID ;
    18. ResultSet rs = statement.executeQuery(sql);
    19. %>

     打印出来的结果如图下所示

    数据库数据:

     

    我们发现 像这种情况就是由SQL语句参数直接动态拼接成的,这样的话参数ID可控并且可以执行sql语句的拼接,存在明显的SQL注入漏洞

    String sql = "SELECT * FROM  people where id = " +ID ;  

    我们测试验证 一下 传入参数为  

    1 and 1= 1

     

    果然存在漏洞,这样就有个严重 的问题 当输入1 or 1 = 1就会打印所有的表的数据 ,造成数据泄露

     1 or 1=1
     修复:

    预编译处理

    哈哈 ,先写到这里 ,剩下的明天在更新 加油啊 

     

     

  • 相关阅读:
    MySQL备份与恢复
    net-java-php-python-校园二手图书销售网站计算机毕业设计程序
    阿里云大数据分析师职业认证
    GreenPlum AOCO列存读IO原理
    Linux第二课:Ubuntu 操作入门(内含:1Ubuntu 下打开终端+2 Linux 文件属性+3 设置屏幕+4 系统关机与重启+5.文件浏览器)
    (一)Jmeter安装与简单使用 #1024程序员节|用代码,改变世界#
    Vue(三)——过滤器,内置指令,自定义指令,组件
    单例模式详解
    笔记1.2 计算机网络结构
    【高并发】通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程
  • 原文地址:https://blog.csdn.net/m0_63138919/article/details/136490736
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号