本文将在本地环境下,开展SQL注入漏洞实验,涉及的软件包括:DVWA、phpStudy、FireFox、BurpSuitePro。
1、Low级别的漏洞利用。未对参数ID的格式进行检查。以下参数构造即可查询整个表的所有数据。
2、Medium级别的漏洞利用。该安全级别代码利用mysqli_real_escape_string()函数,对参数中携带的单、双引号等特殊字符进行转义。构造参数去掉引号,仍然注入成功。
3、High级别的漏洞利用。该安全级别代码仅仅限制SQL语句返回一条结果。但可通过“#”注释掉后面的限制语句,仍可利用返回整表数据。
4、Impossible级别。该安全级别代码首先校验token,接着判断参数是否为数值,最后采用占位符形式拼写SQL,防止注入,最后判断是否只查询出一条数据。
DV