首页 » PHP教程 » php宽字符技巧_码码字通俗易懂的说说php审计sql宽字节注入

php宽字符技巧_码码字通俗易懂的说说php审计sql宽字节注入

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

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

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

php宽字符技巧_码码字通俗易懂的说说php审计sql宽字节注入

兄弟们都看不下去了,码的教程既然是mysql开头函数的教程,这难道是在说1995年的技能吗,别介,吾以为是可以做参考的,至于2017年的技能,别急,咱一定要码全了码详细了,先回顾下之前mysql开头的那些函数的辉煌时期。

php宽字符技巧_码码字通俗易懂的说说php审计sql宽字节注入
(图片来自网络侵删)

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

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即可,第一个参数是字符集,第二个参数是链接。

翠花的下一道菜,相信大家都知道了,请看:

查询成功了。
那宽字节注入第一个防御方法就出身了:利用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多个if语句技巧_PHP IfElse 语句

PHP 条件语句当您编写代码时,您常常须要为不同的判断实行不同的动作。您可以在代码中利用条件语句来完成此任务。在 PHP 中,供应...

PHP教程 2024-12-16 阅读0 评论0

大数据资产,新时代企业核心竞争力之钥

随着信息技术的飞速发展,大数据已成为推动社会进步的重要力量。在新时代,企业如何有效利用大数据资产,成为提升核心竞争力、实现可持续发...

PHP教程 2024-12-16 阅读0 评论0