记一次DVWA的SQL注入测试
sql注入截取函数
- MID(column_name,start[,length]) 第一个参数为要处理的字符串,start为开始位置,length为截取的长度。
- substr(string, start, length) 第一个参数为要处理的字符串,start为开始位置,length为截取的长度。
- Left ( string, n ) string为要截取的字符串,n为长度。
payload举例:(通过注入点爆破user账号)
1'and+mid(user(),1,1)='a
1'and+substr(user(),1,1)='a
1'and+left(user(),1)='a
dvwa的SQL注入举例:
-
判断注入。使用单引号。
加一个单引号,报错
再加一个单引号,返回正常。说明这里存在注入点。(单引号闭合) -
构造payload使用截取函数测试payload可以使用,有没有过滤。
测试截取函数有没有被过滤,首先自定义了一个字符串截取,查看返回包,可以看到返回成功的字节数。
把值修改为错误的,查看返回包可以发现字节数不同。 -
使用payload进行注入,方式有两种。1.手工半自动注入;2.爆破两个参数,一个是起始位置,一个是值(多用于substr与mid函数)
这是第一种方式,手工半自动注入。多用于left函数。
需要手动改变起始位置或者截取的长度,然后对值进行爆破
第二种方式就是对起始位置跟值全部进行爆破,使用Cluster bomb爆破方式。