首页
学习
活动
专区
圈层
工具
发布

DVWA系列之3 medium级别SQL

可以发现,这里对用户输入的id参数进行了过滤,主要方法是使用了mysql_real_escape_string()函数,这个函数可以将$id变量中的单引号’、双引号”、斜杠\等字符进行转义,因而我们再输入之前的...需要说明的是,在PHP中还有一个与mysql_real_escape_string()功能类似的函数:addslashes(),这两个函数的功能都是对特殊字符进行转义,那么到底用哪个函数更好一些呢?...有人说mysql_real_escape_string()函数需要事先连接数据库,可能会报错,所以推荐使用addslashes();也有的人说addslashes()过滤不够严格,推荐使用mysql_real_escape_string...在DVWA中很明显是推荐使用mysql_real_escape_string(),那么我们就相信DVWA好了。 下面我们分析一下这里该如何绕过过滤,继续进行注入呢?

61120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    8个与安全相关的PHP函数

    1. mysql_real_escape_string() 这个函数对于在PHP中防止SQL注入攻击很有帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询以前已经是安全的了...但现在mysql_real_escape_string()这个函数基本不用了,所有新的应用开发都应该使用像PDO这样的库对数据库进行操作,也就是说,我们可以使用现成的语句防止SQL注入攻击。...2. addslashes() 这个函数和上面的mysql_real_escape_string()很相似。...默认情况下, magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据 自动运行 addslashes()。...不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致 双层转义。

    1.1K120

    【作者投稿】宽字符注入详解与实战

    具体分析一下原理: 正常情况下GPC开启或者使用addslashes函数过滤GET或POST提交的参数时,我们测试输入的',就会被转义为\'; 若存在宽字节注入,输入%df%27时,经过单引号的转义变成了...SQL语句是SELECT * FROM news WHERE tid='{$id}',根据文章的id把文章从news表中提取出来,在$sql之前,我们只用了限制函数addslashes函数,对$id进行转义...故只要低位的范围中含有0x5c的编码,就可以进行宽字节的注入 利用mysql_real_escape_string解决问题 一些cms把addslashes替换为mysql_real_escape_string...报错说明我们錦被iconv从utf-8转换成gbk后,变成了%e5%5c,而后面的'被addslashes变成了%5c%27,这样组合起来就是%e5%5c%5c%27,两个%5c就是\,正好把反斜杠转义了...矫正人们对于mysql_real_escape_string的误解,单独调用set name=gbk和mysql_real_escape_string是无法避免宽字符注入问题的。

    1.8K00

    对PHP安全相关的函数

    mysql_real_escape_string( string sqlQuery ) : ●转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。...addslashes() : 在将一些数据插入到数据库中时,这个函数会非常有用,它可以在单引号前加上反斜杠,使得数据在插入时不会出现错误。...如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。 2....对于PHP magic_quotes_gpc=off 的情况 必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库...【stripslashes() :删除由 addslashes() 函数添加的反斜杠。】 htmlentities() : 一个非常有用的用来处理输出的函数。

    1.2K20
    领券