addslashes()与mysql_real_escape_string()在sql注入中的应用

0x01:

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(’)
双引号(")
反斜杠(\)
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。Addslashes()函数我们可以利用%df 进行绕过。(即所谓的宽字节注入)
使用 addslashes(),我们需要将 mysql_query 设置为 binary 的方式,才能防御此漏洞Mysql_query(“SETcharacter_set_connection=gbk,character_set_result=gbk,character_set_client=binary”,$conn);

0x02:

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。下列字符受影响:
\x00
\n
\r


‘’
\x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。如果 mysql 我们并没有设置成gbk,mysql_real_escape_string()依旧能够被突破。在使用 mysql_real_escape_string()时,如何能够安全的防护这种问题,需要将 mysql 设置为gbk 即可。设置代码:
Mysql_set_charset(‘gbk’,’$conn’)

猜你喜欢

转载自blog.csdn.net/weixin_43803070/article/details/89919080
今日推荐