首页 » SEO优化 » php宽字符中文技巧_码码字通俗易懂的说说php审计sql宽字节注入

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

访客 2024-12-08 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常量表技巧_PHP 常量详解教程

PHP 常量常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。注释...

SEO优化 2024-12-09 阅读0 评论0

phpsap接口技巧_懂开拓和会开拓的差异

在SAP领域,做开拓的人很多,会ABAP的也不少,但至心懂ABAP,懂开拓的人却不多。很多人从事开拓行业,只是纯挚为了开拓而开拓,...

SEO优化 2024-12-09 阅读0 评论0