目录
misc
签到
一眼base100直接出flag
躺平问答
这一题没解出来完
0.
3.weilei.studio 在赛前进行了一次停机维护,截止至2023-01-15,最后一次维护结束的时间是?(使用CST时间,精确到30分钟)
网页底部运行状态,点击之后,发现有一个停止运行时间
5.bytessec.cc的注册时的域名服务商是?whois查询
6.weilei.studio 在@域下有个TXT解析,它是?
7.weilei.studio的直接解析的IP地址所属的自治系统编号(ASN)是??
浏览器抓包,查看远程ip:104.21.50.158
9.程序员最多的地方本次SSL证书过期时间是?
一眼github,curl -v GitHub: Let’s build from here · GitHub 查看* expire date的值
神秘的……文字
这么简单
题目名字是这么简单,但是我觉得好像并不怎么简单,看到提示才做出来的,一开始没想到改表的事情,单纯的去尝试各种编码,始终是没有解出来。
第一步是base解码,解码之后的文字携带几个等号
第二步还是base解码,我是不断尝试其他表才试出来的,虽然做出来了,但是还是不知其然
毕加思索
上一个flag解出的时候,出现了一堆表情,然后base100解码,出现一堆喵呜文字
这段字符我在百度找到了喵语翻译,但是没有解出来,仔细看了一下”滴滴滴哒哒 “ 想到了摩尔斯
于是将喵替换成'.',呜替换成'-',然后在线转换一下
.... . -.-- .... . .-. . .. ... ..-. .-.. .- --. ..--- ..-. .-.. .- --. .. .-.. .---- -.- . -.-. ....- - .-. . -- . -- -... . .-. - --- .- -.. -.. -... .-. .- -.-. . ... .- -. -.. .- .-.. .-.. -.-. .... .- .-. .- -.-. - . .-. ... .- .-. . .-.. --- .-- . .-. -.-. .- ... . ..-. --- .-. -. . -..- - .--. .-.. . .- ... . ...- .. ... .. - .-- . .. .-.. . .. -.. --- - ... - ..- -.. .. --- ... .-.. .- ... .... -- . -.. .. .- ... .-.. .- ... .... ..-. .---- ....- --. ...-- --- ..-. .--. .-. ----- -... ----- ....- -.. --- - .... - -- .-..
这个摩尔斯代码要多试几个网站才可以解出来
解码出来
HEYHEREISFLAG2FLAGIL1KEC4TREMEMBERTOADDBRACESANDALLCHARACTERSARELOWERCASEFORNEXTPLEASEVISITWEILEIDOTSTUDIOSLASHMEDIASLASHF14G3OFPR0B04DOTHTML
对单词进行差分,老实说,英语不太好:(
flag{il1kec4t}
喵?咕?唔~
按照上一题的题解,找到题目入口,https://weilei.studio/media/f14g3ofpr0b04.html 访问看到是那啥加密,
尝试解密
3bZQw1kEq8ZUdBUyk53JA4j4whLycw4HRhpxnC1d6XFgGThG9RmqDmeFKfvDE3k5mWrF7NzK9JimM6zLseYQ2T22wxtvPvUeo17P4LrRFx5HYqv57TEoJnzZ4AkxofHjuya4xJnLQAp5Wxir9TNAYrynvXmn44aUuZZm7Yh5JAh4KrNeux8LMmJemJi49eVme8EXZYRwrorprdPr1LUtXnLLSXqjaeAzYWhQXbDq2gktf4Wpxb57TvqTw8x76gVCZdmrMEfpcu4hK4rhYEBUkZvjebJLhL6MvL1EAmDRdEXkFzkQP5cqaE6gYxWFEf6UjMb8VYd6eP1FssmoWcb82WtE53Wy2dcZ2SHdxQTTxdrHVvacWa7uVoufWn1f8LkPzJcpybeiaFLRCMCQnGsEX6JwQEUjDVuD1XcazgdH1jbe1EYXRw8iaZtqdNoTx54zA74wokFnV1oSCaLx4uYUZhEFwfWCzaqdmuygVQjcxQbeBQ3crBAiknf1mRn3LDGTA1t9KU2jbCB1PB94yVQtYyFAXoFwTNBc1MPo4PKyvQBCn35hfWFSAZP5XDXTRaA9NxnanWMSRjB23NtPBZ5httVifTiZpoBKDFp1UxRFPXFG1TVDUcipzsamgH2r8FHN5haQUMH1HtH6qnkHf4Xbb8ZNWya6YgGVtpaEH79eUw2XT9iQX3YTmP7Q75jjFGSS7rVcWEHd
base58解密一下
GDP (Gozdura Dha Plot) ndordac prem CAPGES GDP, o gemzadidika toma omest gemzudar naguridy asdhuniondn, eritisolly hendac is 1996. plot3: plot{MioeTuVu_Dostzist} GDP gekarn o vica rosta ep pialcn. Olest vidh dha akelkist naguridy daghselety, dha cippiguldy ep GDP ghollastan in taddist horcar osc horcar. On o ranuld, dha laorsist gurka per fatissarn in taddist ndaazar. Mend eslisa ispermodies in ngoddarac osc drikiol. Fatissarn epdas ces'd bsev hev de nyndamodigolly laors GDP, vhigh raquiran o led ep verb osc apperd.
好了,不会了
二维的码
来自理塘的码
一眼汉信码,上传在线识别失败,对比了一下正常的汉信码发现颜色相反,画图工具取反色出flag
得知下一条线索在/media/boarding_pass.zip中,访问下载附件
你管这叫码?
下载压缩包,解压发现需要密码,但是是部分加密,查看未解密的那个文件,发现是一个二维码
老方法,缺了三个角,ps补上去
识别结果:password:ecfbcf7a-0c77-ed48-2e2e-1a993ebd006e,得出加密文件的密码
解压文件之后得到一个很离谱的码,尝试一下条形码能不能扫出来,结果真扫出来了,乐
来自兔年的码
访问/media/enterpoint.gif,看到一张二维码,看似离谱,实际一扫就出来了
访问路径,得到一个压缩包,解压出现三个码,扫一下
分别得出
- U2FsdGVkX1+QTZuns6phvCNw3MWMReSM3yeB
- 8ZXH4JZBpFxCGu5rDf/2pS4H6w7G0B+1
- (01)11451419198103
通过开头的U2结合题目名,猜测是rabbit加密,果断试一下,出flag,ok!
我抄,盒!
照片中的flag
date.jpg exif中存在flag
网站中的flag
这个还是没啥好说的,信息都在exif中查找,唯独那个经纬度的,我试了好几个都不对,离谱
web
Happy2023!
这题比较有意思
开局一个网页,啥也没看懂,搞半天没明白到底怎么登入
没有这个提示真做出来了
通过百度学习,大概了解了这种东西,写了一个脚本
import requests
from lxml import etree
url0="https://prob01.weilei.studio/"
res=requests.get(url0,auth=('BytesSec',"my_token:xxxxxxxxxxx"),)
print(res.text)
# print(res.request.headers)
# print('------------')
print(res.headers)
一开始运行出现的结果是:Login Success! Go...WAIT, let me check again!
在这个阶段卡了一会,我以为是需要请求两次,然后用session会话请求了两次,结果仍然是这种,后来看到提示jwt,然后就添加了一行print(res.headers),查看响应头,发现响应头返回一个jwt
其中有个提示:hint=salt_is_6_digits_HHHaaaaa;
jwt的密钥是6位数字,简单,直接上工具,前段时间试图暴力破解某app的jwt密钥工具还在
破解结果是114514,其实我应该想到是这个:(
写一个生成jwt的程序
import jwt
pay={
"user": "admin",
"exp": 1674401851
}
header={
"typ": "JWT",
"alg": "HS256"
}
key='114514'
jwn_con=jwt.encode(pay,key, algorithm="HS256")
print(jwn_con)
#hint=salt_is_6_digits_HHHaaaaa;
然后添加一个headers请求头,请求到到一串base编码,解码之后是目标网站
将html元素中的 disabled="disabled" 删除,即可输入token
看一下活动规则,其实就是遍历所有的/8网段,255个ip地址
写一个脚本跑一下
url2="https://ilrxbzij.weilei.studio/invite/28fb4aec-970e-40ec-b5de-fdcb17b31bba"
for i in range(0,256):
data={"ip":"{}.1.1.1".format(i)}
print(i)
res=requests.post(url2,data=data).text
html=etree.HTML(res)
con=html.xpath("/html/body/div/div/div/div[1]/text()")
print(con)
然后提现flag,虽然只有两块多,但是还是挺快乐的
HTTP百解
神之眼
第一个flag直接ctrl+u查看源代码,但是现在已经看不到了:(不放图片了
导引内卷之力
请求一下目标网站,上面说是使用Bytes安全浏览器,然后我就把ua换乘Bytes,结果不对啊,我寻思着那么多人都做出来不应该会很难啊,奶奶滴,后来才发现是我理解问题,ua应该是Bytes Security Browser
回显说是,需要admin身份,研究一下cookie,常见编码没有解出来,猜测是摘要算法,试试md5
简单,md5加密一下admin,然后放进去,再次请求,然后回显Please request me with BYTES method!,我寻思着哪来的BYTES方法,颠覆认知,后来发现这个方法可以自定义,改一下呗,把GET换成BYTES,请求一下
回显说是,data方式发送数据
- fruit: ('b'+'a'++'a'+'a').toLowerCase()
- token:my_token
关于('b'+'a'++'a'+'a').toLowerCase() 是什么东西,百度搜了一下
写了个脚本,跑一下直接出flag
# http百解
import requests
import re
from lxml import etree
url = "https://prob06.weilei.studio/?token=xxxx"
headers = {"user-agent": "Bytes Security Browser", "Cookie": "role=21232f297a57a5a743894a0e4a801fc3;Path=/"}
data={"token":"my——token","fruit":"banana"}
res = requests.request('BYTES',url, headers=headers,data=data)
print(res.text)
躺平问答 · Beta版
打开网页只有输入框没有题目,看一下源代码,什么也没有
试试乱填内容提交一下,过程抓一下包,分析一下请求头数据,果然,有猫腻!
这里有一处看似base编码的东西,试试解码一下
前半部分是个人token,后面有一个|0,难道是正确题目数量?实践是检验真理的唯一标准,管它呢先试试再说,更改一下url的result值,访问拿到flag
WearMe 核心机房 准入验证
我去,你怎么在这
burp上万能密码字典
Algorithm
V我≈50
老实说,我不会算法啊,但是还是做出来了这道题,非预期解
打开网页,猜v多少,然后输入一个值,但是题目忽略了cookie的问题,每一次提交之后cookie都会变化,这个是关键点,我猜,如果对该数据包进行重放,第一次看到正确的答案,重放之后,携带上次的cookie,请求的v值改成正确的,就可以看到flag了,后来题目好像修复了。。。
口算大整数
这个题也是认真学习了一下密码学的知识才做出来的,难度不大,主要是之前没有接触过,所以无从下手。
加密代码
from random import *
import sympy
p = {guess}
q = {guess}
n = p * q
phin = (p - 1) * (q - 1)
e = 3
m = int.from_bytes(b'flag{falg_or_f14g}', 'big')
c = pow(m, e, n)
print('N='+hex(n))
print('e='+hex(e))
print('c='+hex(c))
# N=0x5c4b7517422507f74540ba361bcf27dd8f3f62891bc8d674c9fc242d23711f6c18f5958af89d9300174a11c596f4cc6b6286f91a460e32e016c2c3880885601ddc1e6b479fe2b25a879e1ac51b2a019c4bfc0565e513e9b631f451fea7548345675d3a07f003e6e602452aa19d6eb9a54948abb80b3cc2177faf23991525a14603c0c9ececbc887af999e500344aba6be07ef6d1b5995d06ed02ecd0dcb659ac02b4455e55edd2714c947fad6f2a20f69e59ec64467ecd14213df84ef986be2758efd4cbb76a166999f6f3cfd158654d02e0694c52a0ea1a449c8e55f7c57530739ed36da041431af16c209085c985a1bb84fdc33aee33ff136b
# e=0xa
# c=0x6e33c752c8c1bffd6b819b9de9a95f1d6fe3a192b5b8fe07bb1cd036249da1319dc424ad0033d098c55afc7cc8d336f95de8a176a223c7766d168a50c04b2d71d538cf2905cfe64fcf8854c78d2024309a1bbb0ffb01aa3966c6182cd2a0ab56c396607e170a8d9b17e728b9e23d9b3f5406f9c6fc33be7827acf2d552d9c97db03b0e645bb9e8b9552806b9a417b1132437948a7d86a3a3dce5f2becdac052278a02b5b0274a053a48e428deb957fab1f576f892f9fcbb78c55b1db183e76c49ad1ccc5e86113c51c70b58e5ba1e37869ecad1e63672878aca418b337fce1aba1fa27e371cefb5d4302c9917424754924c52e7aa8ac399a9
低加密指数分解攻击
在 RSA 中 e 也称为加密指数。
由于 e 是可以随意选取的,选取小一点的 e 可以缩短加密时间(比如 e=2,e=3),但是选取不当的话,就会造成安全问题。
由于e很小,当n很大时,Me也比n小很多.尝试把c开根号看能否得到明文。
解密代码
import gmpy2
n = 0x5c4b7517422507f74540ba361bcf27dd8f3f62891bc8d674c9fc242d23711f6c18f5958af89d9300174a11c596f4cc6b6286f91a460e32e016c2c3880885601ddc1e6b479fe2b25a879e1ac51b2a019c4bfc0565e513e9b631f451fea7548345675d3a07f003e6e602452aa19d6eb9a54948abb80b3cc2177faf23991525a14603c0c9ececbc887af999e500344aba6be07ef6d1b5995d06ed02ecd0dcb659ac02b4455e55edd2714c947fad6f2a20f69e59ec64467ecd14213df84ef986be2758efd4cbb76a166999f6f3cfd158654d02e0694c52a0ea1a449c8e55f7c57530739ed36da041431af16c209085c985a1bb84fdc33aee33ff136b
e = 0xa
c = 0x6e33c752c8c1bffd6b819b9de9a95f1d6fe3a192b5b8fe07bb1cd036249da1319dc424ad0033d098c55afc7cc8d336f95de8a176a223c7766d168a50c04b2d71d538cf2905cfe64fcf8854c78d2024309a1bbb0ffb01aa3966c6182cd2a0ab56c396607e170a8d9b17e728b9e23d9b3f5406f9c6fc33be7827acf2d552d9c97db03b0e645bb9e8b9552806b9a417b1132437948a7d86a3a3dce5f2becdac052278a02b5b0274a053a48e428deb957fab1f576f892f9fcbb78c55b1db183e76c49ad1ccc5e86113c51c70b58e5ba1e37869ecad1e63672878aca418b337fce1aba1fa27e371cefb5d4302c9917424754924c52e7aa8ac399a9
k = 0
while 1:
res = gmpy2.iroot(k*n+c,e)
if(res[1] == True):
print(bytes.fromhex(hex(res[0])[2:]))
break
k += 1
#b'flag{W0W_REa11y_E4sy_R5a}'
Binary
躺平flag提取器
我真的不到啊
ida打开 shift+f12查看字符串,找到flag
太美丽了家人们
这个题我一直以为是rot13,因为在c++代码中看到了rot13,老实说,我不会c++,没有理解里面的代码逻辑,尝试了很多次发现不对,大年初二的上午学了一会ida动态调试,结果真给调出来了,别的不说,真太美丽了家人们。
躺平flag提取器 · 极速版
快速提取
一看是Android,直接jadx打开看一下,看到flag了,但是这个flag有点奇怪,
java代码对flag进行了分片操作,用python还原一下,得到正确的flag数据
安全提取
通过观察native类得知第二个flag在so文件里面,个人观察的主要特征是:System.loadLibrary("main")
导出项目,在resources\lib目录的随便一个子文件夹,找到libmain.so文件,用ida打开,查找字符串就可以看到flag,不得不说,这个题是真基础。