本文共 857 字,大约阅读时间需要 2 分钟。
1,题目来源:CTF平台:BUUCTF Web部分
题目:[SUCTF 2019]EasySQL 2,Flag以及解答后题目截图:flag{4c1665f4-353b-4077-8ef7-c864bdba482b}
3,解题思考过程及分析:
1,经过一系列的输入测试发现,输入数字时会显示 Array ( [0] => 1 )而输入0则不显示
但输入flag会提示 Nonono. 那么它内部到底是一个怎么样的sql语句呢?
我们猜测它有一个 ||符号,因为当我们输入数字时被当成常量一直输出1,当我们输入带有字母时会被当做一个变量(列)而又无法找到,所以报错(没有回显),而输入带有”flag“的字符串都会弹出 Nonono. 说明过滤了“flag”这几个字符(后面发现,不区分大小写都过滤了)
2,我们尝试使用,堆叠注入,可以显示出有flag字段,但是因为过滤了“flag”几个字符所以行不通。3,最后查看网上wp发现后台的语法可能是
select.POST['参数'] || flag from flag
因此可以输入*,1
来显示全部内容:
由此得出flag{4c1665f4-353b-4077-8ef7-c864bdba482b}
。
set sql_mode=PIPES_AS_CONCAT;
参考链接:
转载地址:http://kpjqf.baihongyu.com/