ctf.show之sql注入

web171: 从此题开始的150道题全部为sql注入,准备好了吗?

题解:  首先用 1' 去截断前面的单引号,接着加上or,接着我们后面的语句,因为这里是有三行数据,我们后面接的语句可以是1’ union select database(),user(),version()--+

可知,可查看到的数据库是ctfshow_web;

接下来,我们联合查询的突破口就是在ctfshow_web的数据库里,因此我们改变我们的playload;

1' UNION SELECT 1,table_name,3 from information_schema.tables where table_schema='ctfshow_web'--+ 

通过此语句解释就是在Information_schema.table里去查找数据库名为table_schema='ctfshow_web'的所有表名,即可查到,如下图:

拿到了数据库的表名,继续构造union语句,去拿列名了,如下图所示:

拿到列名,就看里面的值了,所以我们继续构造union联合查询语句。

最终,拿到flag。

web172: 撸猫为主,要什么flag?

此题,仍然是在源码里发现了有js/select.js文件,我们点击查看,发现文件查询的有: 

因此,我们先用order by看看数据有多少列。

可以发现,此查询是有三列数据,因此我们可以用联合查询去查询数据库。

使用联合查询,发现其数据库名为“ctfshow_web”,因此我们就要去此数据库下查看有哪些表

发现表名有两个,因此我们知道表名,就去查询表名里的password的值,发现是在ctfshow_user2表里的password的值,藏有password。因此我们可以构造我们的playload:

/api/?id=1' union select 1,(select group_concat(password) from ctfshow_web.ctfshow_user2),database()%23

最终,即可拿到我们的flag。

web173:  考察SQL基础

与上题操作一样,就是反复练习SQL语句。

web174: 考察sql基础,不要一把梭,没意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值