1.base64编码,单引号,报错型,cookie型注入
(1)本关和Less(20)相似,只是cookie的uname值经过base64编码。
(2)登录后页面:
圈出来的地方显然是base64加密过的,解码得到:admin,就是刚才登录的uname,所以猜测:本题在cookie出加密了字符串;
查看php文件确实如此,所以只需要上传payload的时候base64加密一下就行了。
(3)先抓包一下:
(4)看到cookie是YWRtaW4%3D,和页面显示的不一样 但是明显%3D是=号urdecode的结果,接下来构造paylaod进行测试:
admin' and 1=1 --+ //明文
YWRtaW4nIGFuZCAxPTEgLS0r //密文
看到红矩形的提示,应该构造 ')这种的
进过多次测试,--+在此不好用,需要用#来注释
2.爆破
(1)爆库:-admin') union select 1,2,database()#
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw==
接下来的三句查询语句,和Less(20)一样,注意运#注释,而不是用--+,只要用base64加密后写入cookie,就可已完成注入。