DVWAsql注入代码审计
DVWAsql注入代码审计
先看一下low级别的sql注入

通过输入userID可以查询出用户名
看一下源码

接收到提交之后保存接收到的id值为$id

后面id的值没有经过处理直接拼接到sql语句中

通过mysqli_query()函数提交到数据库中,

从而造成了sql注入

Medium级别的

中级的是通过post方法提交
在id处也使用了<select>标签控制用户输入

在获取到id值后通过mysqli_real_escape_string()函数过滤特殊符号

转义之后再出拼接到sql语句中提交到数据库
通过<select>标签可以阻挡普通用户输入,但是可以通过burosuite抓包修改

再看一下mysqli_real_escape_string()函数


很显然,转义的字符不全面,也没有过滤一些危险的关键字,比如union select等
虽然转移了单引号双引号,并不影响产生sql注入,在拼接sql语句时,并没有对id进行单引号双引号闭合,可以进行数字型注入


High级别
使用js,点击后跳转,防御了自动化的注入

但是代码中也没有进行防护

还可以进行注入


Impossible

使用了PDO技术,防止了sql注入,原理:
https://www.cnblogs.com/lizhaoa/p/776554.html
https://blog.csdn.net/weixin_42720263/article/details/84542734

浙公网安备 33010602011771号