sql注入

20.java-JDBC连接mysql数据库详解

走远了吗. 提交于 2020-01-14 17:55:49
1.JDBC介绍 jdbc (java database connectivity) 为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成。 JDBC需要用到的类和接口有: DriverManager、Connection、Statement、ResultSet 2. mysql-connector-java下载 本机的mysql版本是5.7.26 win32的,所以本章访问mysql都以该版本为例: 然后进入 https://dev.mysql.com/downloads/connector/j/ 下载mysql-connector-java.jar包,用于连接mysql 如下图所示,只有8.0.19版本,那我们下载它就好了,反正不管64位还是32位都能访问: 下载解压后,就有个mysql-connector-java-8.0.19.jar: 接下来就来测试,能不能访问 3.JDBC使用过程 3.1 通过DriverManager. registerDriver( Driver driver)来注册驱动程序 需要注意,new Driver的时候,需要选择com.mysql.cj.jdbc.Driver: 因为com.mysql.jdbc.Driver已经被弃用了. PS: 也可以直接将 DriverManager. registerDriver

SQLMap基本使用方法及简单介绍

情到浓时终转凉″ 提交于 2020-01-14 17:49:29
SQLMap介绍 SQLMap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定URL的SQL注入漏洞,SQLMap支持的数据库有MySQL、Oracle、Microsoft Access、PostgreSQL、Microsoft SQL Server、IBM DB2、SQLite、Sybase和Firebird等。SQLMap主要使用了以下五种SQL注入技术。 联合查询注入:在可以使用Union的情况下的注入 报错注入:在页面可以返回错误信息,或者把注入的语句的结果直接返回到页面中 堆查询注入:可以同时执行多条语句时的注入 基于布尔类型的盲注:可以根据返回页面判断条件真假的注入 基于时间的盲注:在不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断 SQLMap的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。 SQLMap基本命令 在SQLMap中可以使用 sqlmap.py -h来查看SQLMap的参数以及用法 1、判断该url是否存在注入 假设目标是http://127.0.0.1/sql/Less-1/?id=1,判断其是否存在注入的命令如下所示 sqlmap.py -u "http://127.0.0.1/sql/Less-1/?id=1"

实时计算在贝壳的实践

南楼画角 提交于 2020-01-14 15:38:46
本文由贝壳找房的资深工程师刘力云将带来Apache Flink技术在贝壳找房业务中的应用,通过企业开发的实时计算平台案例的分享帮助用户了解Apache Flink的技术特性与应用场景。 **摘要:**Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。本文由贝壳找房的资深工程师刘力云将带来Apache Flink技术在贝壳找房业务中的应用,通过企业开发的实时计算平台案例的分享帮助用户了解Apache Flink的技术特性与应用场景。 业务规模及演进 下图为贝壳找房的业务场景示意图。最上层为贝壳找房公司最为主体的四大业务:二手房交易、新房交易、租赁业务及装修业务。四大业务运营将产生图示中间部分的四大数据即楼盘字典、交易数据、用户行为日志与后端服务日志。图示最下部分代表公司实时数据采集、实时数据计算的业务模块,本文中的案例将重点介绍数据实时计算部分的设计、实现及应用内容。 发展历程 在2018年初,随着公司埋点治理规范的推进,我们建设了DP实时数据总线,统一承接各种埋点数据流的标准化处理,并对外提供清洗后的实时数据。随着维护的实时任务增加,面临着实时数据流稳定性以及任务管理方面的挑战,于是贝壳大数据部着手研发了Hermes实时计算平台,提供统一的实时任务管理平台。 在2018年10月,我们推出了SQL V1编辑器来方便用户开发实时计算任务

【安全】SQL注入(未完)

六眼飞鱼酱① 提交于 2020-01-14 11:23:20
1 SQL注入原理 用户名使用“ 'or 1=1–”登录,密码随意填写或不填 正常执行 select count(*) from admin where username='admin' and password='password' 输入特殊用户 select count(*) from admin where username=' ' or 1=1--'and password=' ' 此时password被注释,而前面永远为真,也就可以顺利完成登录。 同样可以利用这种方式执行其他命令 ' or 1=1 ; drop table admin --’ 因为SQLServer支持多语句执行,所以这里可以直接删除admin表 SQL注入漏洞的形成原因: 用户输入的数据被SQL解释器执行 2 注入漏洞分类 2.1 数字型注入 当参数为整型时,如id、年龄、页码等,如果存在注入漏洞,则可以认为是数字型注入。 假设有URL HTTP://www.xxx.com/test.php?id=8 可以猜测SQL语句为: select * from table where id = 8 测试步骤如下: 1. URL: HTTP://www.xxx.com/test.php?id=8' SQL: select * from table where id = 8' 这样的语句肯定出错

Spring学习笔记-Day4

£可爱£侵袭症+ 提交于 2020-01-14 11:16:52
4.1 Spring JDBC 4.1.1 Spring jdbc Template的解析 JdbcTemplate继承自抽象了JdbcAccessor,同时实现了JdbcOperations接口。 (1)JdbcOperations接口定义了再JdbcTemplate类中可以使用的操作集合,包括增删改查等操作 (2)JdbcTemplate类的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性: DataSource:主要功能是获取数据库连接,具体实现时还可以引入对数据库连接的缓冲池和分布事务的支持,它可以做诶访问数据库资源的标准接口。 SQLExceptionTranslator:负责对SQLException进行转译工作。通过必要的设置或者获取SQLExceptionTranslator中的方法可以使JdbcTemplate在需要处理SQLException是委托它来完成相关的转译工作。 4.1.2 SpringJDBC的配置 SpringJDBC模块主要由4个包组成,分别是core(核心包)、DataSource(数据包)、object(对象包)和support(支持包)。 Spring对数据库的操作都封装在这几个包中,如果想要使用SpringJDBC,据需要对其进行配置。在Spring中

sql注入---盲注入

家住魔仙堡 提交于 2020-01-14 04:33:49
盲注入 DVWA 测试一: Security : low 判断注入点为字符型注入 1' and (length(database()))=4 – a 得到数据库表长度为4 第一个字节为d,剩下的以此类推 DVWA 测试二: Security : medium 由于没有输入信息只有提交,所以需要工具辅助,打开BP进行抓包 判断到注入点为整型注入 得到数据库表长度为4 得到数据库表名的首字母为d,以此类推 DVWA 测试三: Security : high 判断注入点为字符型注入 通过输入 1' and (length(database()))=4 -- a 得到数据库长度为4,继续输入1’ and (ascii(substr(database(), n ,1)))=100 判断数据库名的每个字母 来源: CSDN 作者: 1Orange 链接: https://blog.csdn.net/qq_39993791/article/details/103885313

Mybatis框架相关知识详解

旧巷老猫 提交于 2020-01-14 03:17:03
Mybatis框架 1、什么是Mybatis? 2、Mybatis的优点 3、Mybatis的缺点 4、Mybatis框架的适用场合 5、#{}和${}的区别是什么 6、实体类中的属性名和表中的字段名不一样,怎么办? 8、编写模糊查询like语句 9、Dao接口的工作原理 10、Mybatis分页原理 11、Mybatis的映射形式 12、使用MyBatis的mapper接口调用时有哪些要求? 13、resultType与resultMap的区别 14、在mapper中如何传递多个参数? 15、Mybatis的Executor执行器 16、Mybatis的动态sql 17、Mybatis的关联查询和实现方式以及区别 18、Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系 19、Mybatis的接口绑定以及其实现方式 20、Mybatis缓存 21、Mybatis延迟加载 22、Mybatis的基本工作流程 23、Mybatis实行一对多的操作方式 24、Mybatis实行一对一的操作方式 1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能

JDBC java数据连接 读取properties 数据库连接池 预编译

好久不见. 提交于 2020-01-14 01:03:55
1.创建连接,下载MySQL驱动(JDBC接口的实现类,就是一个jar包) public class Demo01 { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1. 注册驱动 告诉虚拟机使用的是哪个数据库软件 Class.forName("com.mysql.jdbc.Driver"); //2. 获取连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/newdb3", "root", "root"); System.out.println(conn); //3. 创建SQL执行对象 Statement stat = conn.createStatement(); //4. 执行SQL语句 String sql = "create table jdbct1 (id int primary key,name varchar(10))"; stat.execute(sql); System.out.println("执行完成!"); //5. 关闭资源 conn.close(); } } public class Demo02 { public

Druid数据源配置多个数据库

大城市里の小女人 提交于 2020-01-13 01:54:52
言简意赅 pom.xml文件引入jar包 < ! -- jdbc连接数据库 -- > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - jdbc < / artifactId > < / dependency > < ! -- mysql -- > < dependency > < groupId > mysql < / groupId > < artifactId > mysql - connector - java < / artifactId > < / dependency > < dependency > < groupId > com . alibaba < / groupId > < artifactId > druid < / artifactId > < version > 1.1 .16 < / version > < / dependency > application.properties # # # #配置多个数据库 : 用户信息存储数据库 : xcn_admin_database xcn_admin_database . druid . url = jdbc : mysql : / /

web安全 sql注入

家住魔仙堡 提交于 2020-01-12 21:39:37
一、原理 SQL注入的本质就是把用户的输入参数,未加过滤的当作sql被数据库执行。 二、分类 1、常见的sql注入按照参数类型可分为两种: 数字型和字符型。 当发生注入点的参数为整数时,比如 ID,num,page等,这种形式的就属于数字型注入漏洞。同样,当注入点是字符串时,则称为字符型注入,字符型注入需要引号来闭合。 2、也可以根据数据库返回的结果,分为回显注入、报错注入、盲注。 回显注入:可以直接在存在注入点的当前页面中获取返回结果。 报错注入:程序将数据库的返回错误信息直接显示在页面中,虽然没有返回数据库的查询结果,但是可以构造一些报错语句从错误信息中获取想要的结果。 盲注:程序后端屏蔽了数据库的错误信息,没有直接显示结果也没有报错信息,只能通过数据库的逻辑和延时函数来判断注入的结果。根据表现形式的不同,盲注又分为based boolean和based time两种类型。 3、按照注入位置及方式不同分为: post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,无论此种分类如何多,都可以归纳为以上两种形式。 来源: https://www.cnblogs.com/shwang/p/12184727.html