一、Low联合查询注入单引号1、闭合与判断注入点测试输入框是单引号闭合、双引号闭合还是整数型。payload1 和 1 一个判断单引号一个双引号报错是因为单引号破坏了原sql语句的闭合所以闭合方式为单引号2、探测列数payload1 order by 3# 如果这个正常当把数字加到4时出现报错说明有3列但是这个例子只有2列3、寻找显示位既然现在知道有了2列那就看看这2列中哪一列会被打印在页面上payload1 union select 1,2#看到有俩个回显接下来看一下数据库名称以及它的版本号版本大于5.0就可以爆库找出数据了4、结构化拔出数据1.查表名payload1 union select 1, convert(group_concat(table_name) using latin1) from information_schema.tables where table_schemadatabase()#查到一个访客记录薄还有一个用户表我的payload是因为union俩边的字符集不一致然后我用的是convert()函数把我注入部分转换成latin1就可以注入成功了2.查列名payload1 union select 1,convert(group_concat(column_name) using latin1) from information_schema.columns where table_nameusers#看到这个用户表里面有user和password感觉是用户名和密码3.得到用户名和密码payload1 union select user,password from users#密码是用md5加密的直接找个在线md5解码网站就可以得到密码md5在线解码网站https://www.cmd5.com/二、Medium联合注入查询数字看到这样的页面就该明白没法直接注入然后就用burpsuite抓包看一下post注入也能用hackbar去解但是我都抓包了所以就直接用bp吧联合注入还是那四件套第一就是判断是那种注入类型把包发送到重放器里一个一个试然后发现是数字型第二步就是查列数order by2列成功3列失败所以是2列第三步就是寻找显示位就是看这2列谁能回显数据发现俩列都可以然后就是查库查版本最后一步就是根据数据库的性质准备爆库先查表名再查可疑表的字段名查字段名的时候它提示我语法错误是因为下拉菜单提交 POST 请求且过滤了单引号所以要把users用16进制绕过最后得到用户名和密码三、High第一步判断闭合和列数发现是单闭合俩列第二步寻找显示位看到有俩个回显接下来看一下数据库名称以及它的版本号现在可以直接爆破了后面的都大差不差就不过多赘述了直接上截图了查表名查可疑表的字段名查可疑字段里的内容最后得到用户名和密码