现在通过mysql以及oracle来测试sql注入  漏洞

mysql中的注释#    oracle中的注释为--

所以注入漏洞就产生了

    //登录测试
public void login()throws Exception{
Scanner input=new Scanner(System.in);
System.out.println("登录名:");
String loginname=input.nextLine();
System.out.println("密码:");
String password=input.nextLine(); getConn();
/*
String sql="select *from student where name=? and password=?";
PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql);
ps.setObject(1,loginname);
ps.setObject(2,password);
System.out.println(sql);
ResultSet rs=ps.executeQuery();
*/ // * sql注入漏洞
String sql="select *from student where name='"+loginname+"' and password='"+password+"'";
System.out.println(sql);
Statement s=(Statement) conn.createStatement();
ResultSet rs=s.executeQuery(sql);
System.out.println(sql); boolean flag=false;
if(rs.next()){
flag=true;//如果进入到循环 说明有数据 则登录成功
}
if(flag){
System.out.println("登录成功");
}else{
System.out.println("登录失败");
}
rs.close();
closeConn();
}

就以上代码 ,执行main方法,调用该login()方法 进行验证登录

数据库

第一次 :输入正确的值  进行登录

结果很合理

第二次:输入错误的账号和密码

结果很合理  登录失败  因为数据库中查询不到该信息

第三次:利用注入漏洞登录

怎么回事  随便输入的内容  竟然登录成功

原因 :mysql中使用#作为了注释  所以 拼接的sql语句就发生了变化

红色和粉色的框子中 是查询条件  是永远成立的  #作为注释  那么它之后随便输入任何内容都相当于没写   所以这就是利用注释  然后出现的查询漏洞

mysql注入漏洞语句:' or 1=1 #   所以oracle的注入漏洞语句就是:' or 1=1 --(他们中的恒等式x=x是永远成立的)

所以我们就需要使用PreparedStatement对象  他就是statement对象的增强版

Statement对象sql注入漏洞的问题的更多相关文章

  1. 预处理prepareStatement是怎么防止sql注入漏洞的?

    序,目前在对数据库进行操作之前,使用prepareStatement预编译,然后再根据通配符进行数据填值,是比较常见的做法,好处是提高执行效率,而且保证排除SQL注入漏洞. 一.prepareStat ...

  2. jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

    day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一 ...

  3. 利用SQL注入漏洞登录后台

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...

  4. 使用参数化查询防止SQL注入漏洞(转)

    SQL注入的原理 以往在Web应用程序访问数据库时一般是采取拼接字符串的形式,比如登录的时候就是根据用户名和密码去查询: string sql * FROM [User] WHERE UserName ...

  5. 10年前,我就用 SQL注入漏洞黑了学校网站

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  6. 简单分析什么是SQL注入漏洞

    现在很多人在入侵的过程中基本都是通过SQL注入来完成的,但是有多少人知道为什么会有这样的注入漏洞呢?有的会随口说着对于字符的过滤不严造成的.但是事实是这样吗?我们学这些,不仅要知其然,更要知其所以然! ...

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

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

  8. 利用“参数赋值”防范SQL注入漏洞攻击

    <<年轻,无权享受>————送给每一个看到此文的同僚们 在这无精打采的炎夏 我躺在阳台上房东的旧沙发 回想几个月来遇到的问题 我不禁内心开始慌张喘着粗气 还有大把时间去打拼 没有到只 ...

  9. 什么是简单的分析SQL注入漏洞

    如今非常多人在入侵的过程中基本都是通过SQL注入来完毕的,可是有多少人知道为什么会有这种注入漏洞呢?有的会随口说着对于字符的过滤不严造成的. 可是事实是这样吗?我们学这些.不仅要知其然.更要知其所以然 ...

随机推荐

  1. Cocos2d-x3.0RC2 EditBox

    EditBox样例 将例如以下代码拷贝到新建的project中就能看到效果. HelloWorldScene.h #include "cocos2d.h" /*这里要引入头文件*/ ...

  2. HDU 5380 Travel with candy 单调队列

    pid=5380">链接 题解链接:http://www.cygmasot.com/index.php/2015/08/16/hdu_5380 题意: n C 一条数轴上有n+1个加油 ...

  3. nyoj--92--图像有用区域(模拟)

    图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑 ...

  4. B1968 [Ahoi2005]COMMON 约数研究 数论

    大水题,一分钟就做完了...直接枚举1~n就行了,然后在n中判断出现多少次. 题干: Description Input 只有一行一个整数 N(0 < N < 1000000). Outp ...

  5. 【转】不要使用SBJSON(json-framework)

    原文网址:http://blog.devtang.com/2012/05/05/do-not-use-sbjson/ 不知道为什么,在iOS开发中,有很多人使用 SBJSON (又被称作json-fr ...

  6. Git 工具 - 子模块

    子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使 ...

  7. WinForm——操作word文档

    解决方案资源管理器——引用——(右击)添加引用——COM 1. 安装Office,添加引用COM里面的 Microsoft Word 14.0 Object. Library 2. 导命名空间 usi ...

  8. 导入Excel时去除多余的空白行

    https://blog.csdn.net/shuishousuiyue/article/details/44773987 按着上面链接用的第一种方式,如下图所示:第二种方式要遍历每一个Excel单元 ...

  9. 适配器模式(adapter)C++实现

    意图:将一个类的接口转换成客户希望的另一个接口. 适用性:1.你想使用一个已存在的类,而它的接口不符合你的需求. 2.你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类协同工作. 类适配 ...

  10. wordpress插件推荐

    以下插件可以全部到后台插件中心安装,只需使用关键词搜索即可 安全插件:Wordfence Security 后台增加一道密码:Stealth Login Page 隐藏后台登录地址:WPS-Hide- ...