第21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大
21关的突破口在cookie,用户登录成功后,将用户名进行base64加密后,保存在cookie中
点击提交按钮的时候,会从cookie中获取保存的用户名,使用base64解密后,查询数据库,来验证用户是否处于登录状态,我们可以修改cookie的值,从而进行SQL注入
先输入正确的用户名和密码,登录成功后刷新页面,并使用代理软件(Burp Suite)拦截请求,可以看到Cookie中保存了base64加密后的用户名
我们将用户名进行解密(先使用url解码,再使用base64解码),可获得编码前的用户名
我们将构造好的payload使用base64加密后再提交
1') and updatexml(1,0x7e,1) -- a
加密后
MScpIGFuZCB1cGRhdGV4bWwoMSwweDdlLDEpIC0tIGE=
报错成功,接下来修改payload脱库即可