2021黑盾杯CTF部分WP

一、 Signin

通过观察附件得到附件为一个文本 全由01组成在这里插入图片描述
根据以往的经验来是这个应该是是通过PIL库将01转换为像素点来构造二维码

from PIL import Image

MAX = 500
pic = Image.new("RGB", (MAX, MAX))
str="1111...1111" #文档太大所以省略了文档内容"

i = 0
for y in range(0, MAX):
    for x in range(0, MAX):
        if str[i] == '1':
            pic.putpixel([x, y], (0, 0, 0))
        else:
            pic.putpixel([x, y], (255, 255, 255))
        i = i + 1
pic.show()

pic.save("flag.png")

构造出这么一个二维码在这里插入图片描述
这个二维码是不完整的缺少一个定位角但是无伤大雅有这么一个神奇的网站https://demo.dynamsoft.com/barcode-reader/
缺少一个定位角扫描对他来说都不是事(可惜了是个在线工具建议大家还是学一下咋补定位角)
在这里插入图片描述
扫描出来的结果就是这段就是flagflag{5E57527B60}

二、 日志分析

解压后得到一个access.log,用notepad++打开,尝试搜索password查看其中sql语句发现规律,看得出来他是尝试枚举进行暴力破解密码
在这里插入图片描述
一共十个字母,经过分析发现,状态码200后面的数字,跟前面的select语句有关系
675代表True,678代表False,所以可以看出,经过筛选后的ASCII码有十个相对应的字母,加上flag{}提交即可

三、 ICS-Modbus的秘密

解压后得到modbus的秘密.pcap用Wireshark打开根据提示直接找最长的modbus,flag就在里
在这里插入图片描述

四、 Decode

文本给了三组nec,常见题型,直接写脚本

from Crypto.Util.number import GCD, inverse, long_to_bytes

n1 = 15228664629164509105936278301396170708905691970126305196584505186788860519598413718493859625462561931380632032431490419378905593909771649295663481782473029836321132574188559245931660756414915507930357509270674460219615256962333464689419869130366867401404262606367700782040693275068101244535880649261286041921882470460606034302142183971677715439862839410834231609821777031530457674591868138859358815039755085358568037032478394036448363183057305077227769673701227083943898736796552550712057417053897722979700329662099072959306298177351997084389916443815546425080826441671985030755256185725913397986385179516049927425591
n2 = 28182418532443955655250943929828439725377604572088962537896240628709829618999901367131159759359513146864646169253348651905865895468151210748207509325666501438590382812326109260537618829438786609626137074778638549998280533912080708785604673270460635181275360847313985764185991865570533815651261638439461846512012164531330949433517277559149828806588070421852157781670188281908625986974579194819272643409859915715455134433970119584552350648013116998668938513347083566970423327936691885137812528912263666957628197241313496232397910546498542303925205356813548741679943691886217742767778075067797422624969714343428365022749
n3 = 18355811159408154065817199279776805621878757240392366715869421799780946779485225342662736231980532326015283372375030686507311099745671828649419794838611580909610100636296701054995302819692794479292794716441442731393027118795245239019609474743841061251498233337758043553376098591254587406941205804917663153256036922860462415387926973551020540123742773938055950168965005226319984869124543783579240130888344231027912143592472823564266887957101575622993773291455143915263715932280728961208233983782906070719786115187115449430196335973764600533097718947377609348244073036523422892353195107093782201003551217830556519184839
e1 = 65537
e2 = 27751
e3 = 65537
c1 = 5368342382489380107251269030258282008067103595899117880173297169710980852124379736420135829984131832023988667774795223808420069001078159756328642298736759964890517323144475742861501409284299556459601222657540302786301791897975932176538612601162552795835603779910738886150925504885639254302406755008796950704938463132687940418772021406619622090999564746948113296328739593309200238996686945891130656599419832796482095787039339269564880847130379179831744694000940207887150388411084465949903406848727641093033681144598595895383689139227400553234701993087147186292040330589331703587405822925483701667354935313494938769206
c2 = 21521672635651854919517759696514027081496995002884626306313384597771682621826437868933822942195279941318573525337109548152966094293276717095298929811895186384560362917891928656637913236676702009205642367801075592458101830488916914437754803979953027152373619293870115731171449223105986403604973873007338969000153480949617700626516389419935352576014084068271819009465242491467427642787306345049280205827574043586767133396458785487959251540831856187380154825027964867977651727983254127239427622549059938701125498520279503972702883327594442747467858234391945790597844344295786118320620376681461727686876948563884520137741
c3 = 13940747781246179701167820858098775936269078279837839169409057305686612176371099274767269714494905207551971162649902129137425806839867713157472497469542260664882313041602553845621113546259276402534229231780532278276697961222319054833980226978574905974878218905613341365260453461080117407529132948986104191917111000811731784483944945364091757083949827612260904757837644538366763161154611658652020868326985526984718638276184626634240096213703958275241215175054246685206226179114590838833694648062135027841593419815101363262701960507235056752424778384286627997500871204804629047307688466887868894491042058198480775705486

p1 = GCD(n1, n2)
q1 = n1 // p1
phi1 = (p1 - 1) * (q1 - 1)
d1 = inverse(e1, phi1)

str1 = long_to_bytes(pow(c1, d1, n1))

p2 = GCD(n1, n2)
q2 = n2 // p2
phi2 = (p2 - 1) * (q2 - 1)
d2 = inverse(e2, phi2)

str2 = long_to_bytes(pow(c2, d2, n2))

p3 = GCD(n2, n3)
q3 = n3 // p3
phi3 = (p3 - 1) * (q3 - 1)
d3 = inverse(e3, phi3)

str3 = long_to_bytes(pow(c3, d3, n3))

print(str1.split(b'is :')[1] + str2.split(b'is :')[1] + str3.split(b'is :')[1])

得到flagflag{G00d_w4y_tO_cR4ck_RS4}

五、 my Tempalate

用御剑直接扫
在这里插入图片描述
发现有个www.zip然后直接下载代码审计发现把session删除,然后访问admin.php,GET传参,覆盖掉

f

i

l

e

,

d

a

t

a

file, 在利用data伪协议给

file,datacontent,于是构造payload:/admin.php?file=data:text/plain,<?php echo(`ls`)?>在根下有flag.php,cat一下,得到flag

六、 Mastof of VM

	用xshll连接到ssh发现有个flag文件

在这里插入图片描述
但是无法下载我试着去其他目录寻找在根目录找到了这个flag.txt文件里面就是flag在这里插入图片描述

PS:高职组的小菜鸡第一次参与这种ctf赛第一次写wp写的不好多多见谅

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>