天涯论坛

 找回密码
 立即注册
搜索
查看: 17|回复: 2

码码字,通俗易懂的说说php审计sql宽字节注入

[复制链接]

3056

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109012
发表于 2024-11-3 10:37:01 | 显示全部楼层 |阅读模式

昨个介绍的那四位导致宽字节注入的屌丝,不知兄弟们是不是还记得。

啥?忘了?我感觉有必要把昨天的再温馨一边,发射------->

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

兄弟们都看不下去了,码的教程既然是mysql开头函数的教程,这难道是在说1995年的技术吗,别介,吾觉得是能够做参考的,至于2017年的技术,别急,咱必定要码全了码仔细了,先回顾下之前mysql开头的哪些函数的辉煌时代。

----------------------------------华丽的分割线--------------------你是体会不到我到底有多美

----------------------------------------

addslashes这个函数昨天已然干掉了,今的闯关任务便是搞定mysql_real_escape_string,而后能够成功晋级了哈。

mysql_real_escape_string他会去转义sql语句中的特殊字符,并要去思虑当前的字符集(这句话要晓得,他会去思虑咱们设置的字符编码了)

,这么厉害吗?官方说了,能够安全用于mysql_query查找。呦呵,碾压addslashes了,好,翠花,上例子:

和昨天的那个例子比较,只是把addslashes函数替换成为了mysql_real_escape_string,那结果呢,翠花,上结果:

根据昨天的老办法为何注入成功了,难道官方骗了咱们,接着看:

代码中运用了set name设置了字符集,但官方说了举荐咱们用mysql_set_charset。因此咱们首要要明白的是她们之间区别在哪?set name功效是什么,它会告诉服务器我用的字符编码是谁谁谁,我期盼你返回我的结果字符编码和我一致。那样,mysql_set_charset呢,他是设置我连接数据库时的编码(便是说mysql_set_charset没设置,mysql_real_escape_string是没生效的),且他不仅持有set name的能力,还多出来一个功能,多出来的那个功能是什么?往下看:

上文中所了,mysql_set_charset会去思虑咱们设置的字符集,没错,这便是多出来的一个功能,他会按照咱们的字符集采用区别的策略。瞬间高挑上了有木有。

说这么多,代码怎么改,好,让翠花给咱们展示一下修改后的代码:

so easy了,只加个mysq_set_charset就可第1个参数是字符集,第二个参数是链接。

翠花的下一道菜,相信大众晓得了,请看:

查找成功了。那宽字节注入第1个防御办法就诞生了:运用mysql_set_charset(gbk)设置编码,而后运用mysql_real_escape_string()函数进行参数过滤。

但,还有一个广泛的问题。

在很久很久以前,大众写的cms有非常多都有用到addslashes这个函数,那岂不是来一个什么%df%27就容易拿下了吗,是的,但咱们要修复是不可能把addslashes都修改成mysql_real_escape_string,有人说所有搜索替换呗,这个办法不可能一帆风顺的,那怎样处理

很简单:将character_set_client设置为binary二进制就可

咱们只需要做一个动作,便是在sql语句前指定一下连接的形式是二进制:mysql_query("SET character_set_connection=gbk,character_set_results=gbk,character_set_client=binary",$conn);

这个动作什么意思?一句话:mysql接受到客户端数据后,会认为其编码是character_set_client,而后会将其转化为character_set_connection的编码,查找结果后会以character_set_results的编码返回客户端。

ok,宽字节第二个防御办法诞生了:character_set_client设置成binary,所有数据以二进制形式传递,都是0101那种了,敢问还会存在宽字节注入问题吗。

码字好累,先来装个逼休憩下:

四大屌丝(并非天王)搞定两个了,mysql_real_escape_string是不是有实力,咱们还要看mysql_set_charset有设置,的话就直接ko了。

代码审计办法请参考上篇的结尾处。

相信到这兄弟们都基本认识宽字节注入了,下回了再一起唠唠pdo和其他两个天王。

-----------------------------------------你敢说我的这个分割线不美?

------------------------------------------------------------------------

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

--------------回见!





上一篇:PHP代码审计之SQL注入-第二回
下一篇:PHP代码审计之TaoCMS(SQL注入+SSRF 0day)
回复

使用道具 举报

2953

主题

3万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979403
发表于 2024-11-9 11:22:44 | 显示全部楼层
论坛是一个舞台,让我们在这里尽情的释放自己。
回复

使用道具 举报

3053

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065832
发表于 2024-11-10 21:19:41 | 显示全部楼层
认真阅读了楼主的帖子,非常有益。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 20:15 , Processed in 0.117925 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.