外链论坛

 找回密码
 立即注册
搜索
查看: 18|回复: 0

PHP代码审计之SQL注入-第二回

[复制链接]

3104

主题

176

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098713
发表于 2024-11-3 10:26:52 | 显示全部楼层 |阅读模式

嗨喽,我知众君期待已久,今日特此再现美文一篇,来来,欢呼声在哪里?

OK,收。回归正传了啊,说起第1回的基本sql注入,等等是谁在喊:第1回的sql注入已然分分钟搞定了。

那行,今日要说的是sql注入中的宽字节注入,帅哥美女们请收起大众的疑惑,坐好小板凳,听我细细说来:

首要必定要明白何为宽字节,通俗点说:一个汉字用gbk占两个字节,用utf8占三个字节,所说宽字节注入就理解成利用字节区别引起的问题就ok了

接下来,我要为你们介绍几位大名鼎鼎的名人了,哈,她们分别是addslashes、mysql_real_escape_string、mysql_escape_string、magic_quote_gpc,这是啥?四大天王吗?

nonono,它们为了防止sql注入,会将有些什么单引号了,双引号了哪些对sql有影响的特殊符号进行实体转义,便是加了一个斜杠,这些函数详细转移那些符号,哥们们能够去搜一下,码字很辛苦,此处我就省了。

平白无故为何要介绍她们呢,有发掘第1回说的那个基本sql注入已经被这四大屌丝(并非天王)容易搞定了。

第1回的成功就这般被搞定了?来,看例子:

这代码大众熟练了,在第1回的代码基本上加了个addslashes函数,那样效果怎样,请看:

我勒个去,那个单引号给我加了个斜杠,转义了。那接下来怎么搞?两个办法1,斜杠前加斜杠,相当于转义斜杠,单引号生效。2,去掉斜杠,单引号生效。

我去,好办法,当然实践前必须要明白个道理,这个道理很重要,我通俗的说,大众多读几遍,否则原理就欠好理解了。

其宽字节是利用mysql的特性,mysql它在用gbk编码的时候,它会认为两个字符是一个汉字,且前一个字符的ascii码要大于128。

不睬解?不急,那我再多码点字来解释下,必须要明白ascii码为么要大于128,这个编码大于128会怎么样,先看张图:

这是ascii表的最后一条数据,最后一个是127,便是前127个都是字符,超过127怎么办,那欠好意思,我就不可把你当字符了,那当什么,把你当成汉字。

还是刚才那个例子,这次我不输入单引号了,我输入了一个%df%27,输入了个啥?别急,先看下代码:

重视我加的那个mysql_query("set names gbk");,它会设置字符为gbk,它是导致宽字节的始作俑者。看下结果:

斜杠没了,这个单引号此时是生效的。为何,结合刚才让大众多读几遍的那个原理来看:

首要,要明白,咱拜访的url中经常都是一堆%什么的特殊字符,非常多很长的网址,那都是url编码将字符转换的结果。其次%df的ascii的编码是大于128的,非要用%df吗,非,只要ascii大于128就可那样,就变成为了%df\%27了,此时候mysql就把%27\当作汉字了,便是那个繁体字,而单引号就生效了,在url编码中%27是单引号。

那,宽字节是不是有概念了呢,相信兄弟们都懂了。

四大屌丝才说了一个addslashes函数,码字码累了,瞧瞧时间快下班了,在码一会,其它屌丝下回接着码。

此时此刻,相比非常多人心中都有疑问了,咱们写程序都是utf8啊,谁还用gbk,你的程序要是用的utf8编码,那这个宽字节注入能够忽略,要是gbk,嘿嘿,危险了。

其实宽字节注入很普遍,大众发掘非常多cms系统都有两个版本,一个是gbk,一个是utf8,有的是为了照顾以前的用户,因此始终在用gbk,有的是专门就弄自己的gbk编码。因此,这个在各大cms中经平常

当然,有攻便有防,至于防御,在咱们把所有的类型所有码完之后,再来个大大的总结。

那针对咱们今天说的这个addslashes函数怎么做审计呢?

ok,认真了,干货来了:其实非常简单,项目全局搜索以下几个关键字:1,SET NAMES. 2,character_set_client=gbk. 3,mysql_set_chatset(gbk). 从字面就晓得她们呢都是用来设置字符编码的。

来一条华丽的分割线:

最后,倘若大众喜欢网络三毛,欢迎wx关注,不定时发布关于审计、攻防、安全、渗透方面的知识。





上一篇:PHP 代码审计之 SQL 注入
下一篇:码码字,通俗易懂的说说php审计sql宽字节注入
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 09:45 , Processed in 2.197028 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.