DASCTF 2024暑期挑战赛
emmm,就出了一道简单的背包密码,Misc那道图片差第三部分的flag
官方wp,https://www.yuque.com/yuqueyonghu30d1fk/gd2y5h/yleeg03c0ucdoac6
Crypto
complex_enc
超递增背包问题
c = 287687761937146187597379915545639385740275457170939564210821293233370716878150576key = [...]flag = ''for i in key[::-1]: if i <= c: flag += '1' c -= i else: flag += '0'flag = flag[::-1]for i in range(0, len(flag), 8): print(chr(int(flag[i:i+8], 2)), end='')# DASCTF{you_kn0w_b@ckpack ...
ImaginaryCTF2024
Web
readme
下载文件,查看Dockerfile
ictf{path_normalization_to_the_rescue}
journal
if (isset($_GET['file'])) { $file = $_GET['file']; $filepath = './files/' . $file; assert("strpos('$file', '..') === false") or die("Invalid file!"); if (file_exists($filepath)) { include($filepath); } else { echo 'File not found!'; }}
想读一下../../../../../flag,但目录穿越在这里用不了了
可以借助一手assert,把前面 ...
OSCTF2024
HITCON CTF 2024 Quals有点……
不如打OSCTF 2024,比赛网址
https://ctf.os.ftp.sh/
Web
Introspection
script.js
function checkFlag() { const flagInput = document.getElementById('flagInput').value; const result = document.getElementById('result'); const flag = "OSCTF{Cr4zY_In5P3c71On}"; if (flagInput === flag) { result.textContent = "Congratulations! You found the flag!"; result.style.color = "green"; } else ...
DownUnderCTF2024
打西瓜杯去了,比赛结束才想起了在公告上的这个比赛,直接成赛后补题了
土澳出的题目,比赛网址
https://play.duc.tf/
题目仓库
https://github.com/DownUnderCTF/Challenges_2024_Public
Web
parrot the emu
from flask import Flask, render_template, request, render_template_stringapp = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def vulnerable(): chat_log = [] if request.method == 'POST': user_input = request.form.get('user_input') try: result = render_template_st ...
ctfshow-XGCTF2024
Crypto
奇怪的条形码
hgame2024过来的,一眼就是斜着看生成器生成的图片,从手机充电口往里看就能得到字符串
Y3Rmc2hvd3t4aWd1YmVpX21pc2NfZ3JhbV9oZXJlX2ZsYWd9
ctfshow{xigubei_misc_gram_here_flag}
简单密码
647669776d757e83817372816e707479707c888789757c92788d84838b878d9d
一开始我想的是两位一组,也确实如此,但我考虑到异或算法那边去了,就没做出来
然后赛后就拿到exp了,确实也是根据ctfshow{}这个flag头来下手的,只能说比赛的时候没好好观察分析
cipher = "647669776d757e83817372816e707479707c888789757c92788d84838b878d9d"for i in range(0, len(cipher), 2): print(int(cipher[i:i+2], 16), end=' ...
UIUCTF2024
Crypto
X Marked the Spot
题目
from itertools import cycleflag = b"uiuctf{????????????????????????????????????????}"# len(flag) = 48key = b"????????"# len(key) = 8ct = bytes(x ^ y for x, y in zip(flag, cycle(key)))with open("ct", "wb") as ct_file: ct_file.write(ct)
简单的异或算法
根据uiuctf{}拿到key,因为我们一开始就可以获取到key的前七位,而正好flag的长度为48,所以最后的},可以帮我们确认key的最后一位
from pwn import *with open("ct", 'rb')as cipher: m = cipher. ...
WaniCTF2024
周末了,复习小小暂停一下下,耍一哈CTF()
复习周摸摸鱼,跟虾饺皇的大佬们一起打,拿点贡献度(),下面某些题会存在一些参考成分,有点久没打了,思路有点卡壳了
难一点的GoogleCTF一进去,发现要谷歌账号,直接就下班了
发现比赛平台还开着,比赛地址
https://score.wanictf.org/#/challenge
按难度划分,应该是新生赛(官方标的,还是有一定难度的,可能这就是国外的比赛吧),有兴趣可以去看看
Crypto
beginners_rsa
直接分解n
from Crypto.Util.number import *n = 317903423385943473062528814030345176720578295695512495346444822768171649361480819163749494400347e = 65537enc = 127075137729897107295787718796341877071536678034322988535029776806418266591167534816788125330265p = [995316292 ...
关于CBC字节翻转攻击
CBC,密文分组链接模式,是分组加密工作模式的一种
CBC字节翻转攻击,针对的是CBC Mode,只要分组密码工作在CBC模式下,都适用于字节翻转攻击
CBC Mode如下:
(本来是想拿《图解密码技术》的图的,看了一眼,发现它的解密是错误的)
平时我们需要注意的是加密使用到的初始向量IV,还有密钥key
CBC Mode的加解密的处理都是连续的,并不是并行处理
因此,CBC字节翻转攻击的实现就是基于连续处理这样的特点
每一组密文进行分组算法解密之后,需要和前一组的密文异或才能得到明文
CBC字节翻转攻击的核心原理是通过破坏一个比特的密文来篡改一个比特的明文
假设此时我们已知第n-1组的密文中的某一位的值a,以及第n组的密文的同一位置的值经过解密算法的b,那么第n组该位置上的明文为c=a⊕bc=a\oplus bc=a⊕b
此时,我们通过篡改第n-1组的a为a⊕c⊕xa\oplus c\oplus xa⊕c⊕x,x为我们想要的,那么,解密出来的第n组明文,为a⊕c⊕x⊕b=c⊕c⊕x=0⊕x=xa\oplus c\oplus x\oplus b=c\oplus c\oplus x ...
LitCTF2024
队伍ID:圈圈使徒
Rank:26
学弟想的好名字,我是Qanux的小迷妹,吸溜吸溜
非常好,pwn和re交给了Qanux,牛逼,再给他点时间真要AK了,被压力到了
tql,学弟的Web也要AK啦,差点要回家种田了
真好,我润去打简单题了,先打了misc,呦西,题卡在tj“美照”上了()。然后开始打密码,前面的很基础,然后卡在多项式上了,我们下午省赛开幕式3点才开始打这个新生赛,RSA数太大爆掉了?牛魔,Qanux丢给GPT,然后就出来了
16道密码,牛,进阶题没有时间打了
以下是比赛时加比赛后复现的全方向题解(re还有两题就不管了,反正我是不会的,我就负责Web、Crypto、Misc)
pwn
atm
选项2可以有栈溢出,直接ret2libc
from pwn import *from LibcSearcher import *context(log_level = 'debug', arch = 'amd64', os = 'linux')p=remote("node1.anna.nssctf.cn&quo ...
复现计划——NewStarCTF 2023
五一开肝,上学期太摆烂了,打了两周就打不动了,不打了,这次一定要赢回来,会萤的
Web
week1
泄漏的秘密
查看/robots.txt和/www.zip
Begin of Upload
查看前端代码
function validateForm() { var fileInput = document.getElementById("file"); var file = fileInput.files[0]; var allowedExtensions = ["jpg", "jpeg", "png", "gif"]; var fileExtension = file.name.split('.').pop().toLowerCase(); if (!file) { alert ...