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

 

posted @ 2020-10-10 10:10  Tankcz  阅读(258)  评论(0)    收藏  举报