SQL Injection
(LOW)
我们直接在存在SQL注入的框内输入ID ,当我输入 1 时,这里直接反回了ID为 1 的用户名。
我们打开代码查看。可以看到代码对接受的 ID 并未过滤,并直接将接收的 ID 带入 SQL语句进行查询!并将结果打印在了页面。
(MEDIUM)
当我们在中安全级别时,输入单引号 ,我们可以看到页面返回了语法错误的提示,并将我输入的单引号用右斜线进行转义。
我们打开中级别代码进行查看。可以看到此时代码使用了 mysql_real_escape_string() 函数进行了转义!但我们仔细观察可以发现,在查询的SQL语句内,之前的ID被加的单引号被去除了!这就说明,这里我们带入的查询并不需要带入特殊字符,例如:单引号等。
最后,我们来看看高等级的代码。可以看到高等级的代码对我们输入的语句,先是进行了是否为字符的判断,接着进行转义,最后带入查询并且查询的ID为字符型。这样就有效防止了SQL注入的发生!
转载请注明:即刻安全 » (四)DVWA之SQL注射漏洞源码审计