宽字节注入

目录

1、魔术引号

什么是魔术引号?

如何开启魔术引号?

这是低版本做法:magic_quotes_gpc

这是高版本做法:addslashes()

如何绕过魔术引号?

(一)找不需要闭合的点

(二)仔细查看作用域

(三)宽字节注入

2、宽字节注入例题讲解

3、如何用Sqlmap跑宽字节注入?

 Sqlmap常见命令

4、如何用Burp跑宽字节注入?

①直接去改Hex

②传参汉字


1、魔术引号

PHP有攻击就会有防御,我们做SQL注入的时候会遇到下面这样的情况:

select*from news where id='1'

正常情况下,像这样的SQL语句我们的注入点都是在id传参,就是在语句中1这个地方,如果说我们要在这个地方做SQL注入,我们需要怎么做?

我们需要闭合单引号然后注释掉后面单引号,还有一个方法就是添加一个单引号和后面这个单引号凑成一对;  

目的是让我们的输入跳出单双引号,因为在单引号和双引号里我们所写的一切都是字符串


什么是魔术引号?

PHP有个函数叫做魔术引号,魔术引号就是对用户的传参进行处理的,它会对POST、GET、COOKIE传递过来的参数加一个转义符号"\",加了这个符号就可以防止注入;

单引号(')、双引号(")、反斜线(\)等字符都会被加上反斜线,那这个时候就无法闭合了;

select*from news where id='1'

遇到像上面这样的语句,你写单引号闭合它会给你转义掉,你写转义符号它会把你的转义符号转义掉,但魔术引号就可以避免这样的情况;


如何开启魔术引号?

phpstudy有自带的开启方式,我们先将phpstudy开启;

找到magic_quotes_gpc(魔术引号开关);

点击magic_quotes_gpc,然后再点击启动之后就会出现这样的页面; 

这时候出现一个弹框,会发现我们没有开启成功;

这是因为版本限制,PHP的高版本是不存在这个东西的,在PHP5.4这个版本已经把魔术引号取消了,取消掉不代表不能用,只不过是把它转化为一种函数了,就不在配置文件里面打开,如图:

在点击切换版本,选中5.3.29版本;

然后点击启动,就会出现这样的界面;

之后选magic_quotes_gpc

打开网站根目录;

在www目录下新建一个php文件,自定义命名;

会出现一个弹框,点击是即可,是不影响的;

然后双击打开a.php,输入代码;

<?php
echo $_REQUEST[8];
?>

输入好代码之后,Ctrl+S保存,然后打开My HomePage

会出现这样的页面;将index.php改为a.php; 

回车之后会出现这样的界面,出现了报错,它不知道8是什么;

我们来查一下,比如说8=123;

它就会输出123;

如果我们输8=123',会是什么样?

会发现当你多输一个'(单引号)的时候,就会多一个反斜杠(\);

当你多输一个"(双引号)的时候,也会多一个反斜杠(\); 

当你输一个\(反斜杠)的时候,还是会多一个反斜杠(\);  

我们修改一下语句,看看能否写SQL注入;

<?php
$a = "select*from news where id='$_REQUEST[8]'";
echo $a;
?>

如下图,这样子的话做SQL注入就比较难了; 

注入点在123这里,我们要去写单引号闭合,但是单引号无法闭合了,那么这里就不存在SQL注入,所以说加了魔术引号之后,这会是一种死局。

这是低版本做法:magic_quotes_gpc

方法一:直接修改配置文件,可以通过其他选项菜单——Php扩展及设置——参数开关设置——magic_quotes_gpc

方法二:通过其他选项菜单——打开配置文件——php_ini去搜索关键词,这样也能找到它,相当于它是修改了配置文件;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入和宽字节注入都是常见的安全漏洞类型。下面我将简要介绍这两种注入方式。 1. SQL注入: SQL注入是一种在应用程序中利用不正确处理用户输入的漏洞,攻击者可以通过在用户输入中插入恶意的SQL代码来执行非授权的数据库操作。这可能导致数据泄露、数据篡改、绕过认证、获取系统权限等问题。 预防SQL注入的措施包括: - 使用参数化查询或预编译语句来处理数据库查询,而不是直接拼接用户输入的数据。 - 对用户输入进行严格的验证和过滤,避免将未经处理的输入直接传递给数据库查询。 - 最小化数据库用户的权限,并且仅分配最低必要的权限。 2. 宽字节注入宽字节注入是一种特定于某些数据库和编码方式的注入攻击方法。它利用了某些编码方式对特殊字符的处理不当,从而绕过了应用程序对输入进行过滤和验证的机制。攻击者可以通过插入宽字节字符来篡改SQL语句或绕过认证。 预防宽字节注入的措施包括: - 使用合适的编码方式,例如UTF-8,以避免特殊字符被误解释。 - 进行输入验证和过滤,确保特殊字符被正确处理,不会导致SQL语句的非预期解析。 - 定期更新数据库和应用程序框架,以修复已知的宽字节注入漏洞。 总的来说,要防止SQL注入和宽字节注入安全漏洞,应该采取综合性的安全措施,包括输入验证、参数化查询、最小权限原则、使用最新版本的软件以及定期进行安全审计和漏洞扫描。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值