SUCTF 2019-WEB-EasySQL

复现地址
https://buuoj.cn/challenges#[SUCTF%202019]EasySQL

  • 考察点
    1)堆叠注入;
    2)设置sql_mode的值为PIPES_AS_CONCAT,从而将||视为字符串的连接操作符而非或运算符

连接查询数据库;


image.png

查询当前表1;show tables;#,题目过滤了flag字段


image.png

根据输入的回显大致判断查询语句为:.. POST['query']||flag ...
  • 非预期解
    构造payload:*,1,这样拼接后得到:select *,1||flag from Flag ,即可以查出当前表中全部内容。
  • 预期解

由于作者没有过滤全,出现了非预期解,而预期解是:通过堆叠注入,设置sql_mode的值为PIPES_AS_CONCAT,从而将||视为字符串的连接操作符而非或运算符。
所以payload为:1;set sql_mode=PIPES_AS_CONCAT;select 1
这样输出的flag会与1进行拼接,得到:


image.png
image.png

你可能感兴趣的:(SUCTF 2019-WEB-EasySQL)