mysql ii_Training: MySQL II

首先关于SQL的select语句

SELECT * FROM users WHERE username='$username'

*代表着搜索全部,from username为在username表中搜索,where限定username为输入的值

630a1761ca4f46299ec9e697f6dd5a06.png源代码截图

我们可以看到表有三个关键字,分别是userid,username和password,因此在后面的构造时,也应该构造这三个参数。

首先说原理(纠结了半天在大佬的博客里找到了答案):联合查询在数据库没有数据时会自己构建一个虚拟的数据。下面这个数据库联合查询的例子来自大佬的博文https://blog.csdn.net/SopRomeo/article/details/104682814fc67fb22ea03a07d998bbcff79fc9d14.png本来有的数据

b8054a05c2801d2d028de201d7ebb213.png联合查询

a2872f9ecf8797f2c529f4e9605e1a3c.png查询之后可以看到新的数据

所以尝试在username输入 xiaocaiji' union select 1,'splashwhale',md5('hahaha')#

password输入hahaha

splashwhale需要加''是因为构成select,前面的小菜鸡用一个'闭合了,后面的要自己完整

其中,xiaocaiji是一个肯定不存在的用户名,之后用'闭合引号,因为没有找到这个数据,所以会找到union select后面的数据。1是userid,改成2、3、4……也可以,splashwhale是username,hahaha是password,因为网页代码明确规定了password为md5格式,因此要用md5('hahaha'),当然,username和password可以自定义,只要保证password上下一致,最后用#注释掉后面的代码

(规范格式好像应该在最后在#之前应该加上;  )2e22c8fc473bcbd176b9138ac8e2a5a3.png要使用md5

完成注入后,我们成功登陆,但是并没有完成解题。fe6fa9afc50b482cca4fc5248bc35c98.png成功登陆

之后可以看到题目要求,Login yourself as admin,要用admin登陆,所以

curry' union select 1,'admin',md5('james')#

jamesc0284d01cb6f2e2694d54b083594d284.pngOK

解题成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值