[NCTF2019]Sore

article/2025/9/16 7:33:04

[NCTF2019]Sore

附件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmKL2Kj6-1627825826486)(C:\Users\86183\Desktop\ZERO\2ero\WP\BUUCTF\Crypto[NCTF2019]Sore\image-20210730131958921.png)]

ciphertext.txt:

nsfAIHFrMuLynuCApeEstxJOzniQuyBVfAChDEznppfAiEIDcyNFBsCjsLvGlDtqztuaHvHbCmuyGNsIMhGlDtbotCoDzDjhyBzHGfHGfoHsuhlssIMvwlixBHHGfDRjoCKrapNIwqNyuxIBACQhtMwCmMCfEBpsrzEuiLGBoMipTkxrznoHfAkqwzvxuzCzDbLyApCGvjpqxkuwpgsLrqsVfCRwzlFmtlyrhuyEiivruFRpCRjkEDrqEqthyGwgsLnQvHmtzwDEznopBpsDOxvgBGIKzurFQxwQxkptutxzmfeLFQoRpJRvrpHxilwqeqMeiiIGBsQpCCvrptAlHsDnuRltmHuCGFpsBcwnsEblsswEPwerNpIADpJRCvwQxrntJltNpfAuFBwRstytoyvcepwtwqNlmmNGFsJjsQvkyvrkrstxJOzniQvNvzdDUdyJzjqzsErqxEjguyFMNwtPjsDwjoDfCdxzvftNGyzKjCEjsDxjqsjGMqFpimGpIADpJRFkovHJlpthyHnpqyBOHhmDMmoosClwiehEzmffOGMvDxDSnnyLuXFlwYEPvosQxCrRxwCpDswHopxDruvEzsOgBsXxDLvvlMpezwpnOOsjrANzHDsLCnoqLCepgtaHNHfpysNHGfOMqkyvlozxHetJGfvNuCGKjIRnoDLAbpyxnJCpqeLxuBCuwCpGpOnkEywrEPrisHrItSiDQgvtLCipyJnDzwtxBnNoKxpWuCxwuiqwDmIJxffIqSGSbzGpqlDnXvNIwqNzoxBrQoXuDRjonsAozzHeBjweTBBypDtIGnvHGDiosItqGvusGrIFzoNRjsyykrExweMvDtsLGItVbAIkxrFnuEyDmuIzxMNBIyziDJfyqLqbmjAtqOEiivnwyNgwCtmzsCgFxIfEMEiiBrFzNgxRdEEKqbHtJltIEmiNzygGfHyknVwnmJtJrxvyewNBSCTsHCnptxHlFiDnJHtohmuyKztHRkvwKxopfImuWFurIGuGRpGCcCDzntlxqevJCfEHLQoXxtIgzEynqEnCgsGztiLnHrBmDQgBEGCephprHJFtiFnHrXpJAqEwvBqlwItECpbvNuuHMvIRAwFKrZtyplMvJttFnSGhuLyuzwsHfyldhcvCjicGJzzztBvrlLBXxjHoDBlcsOGzwEuNWgkCKjdzBweDdHbwuyCHSmtIknezjqDtCeDDnfxBvHuzcDSvmlJAlFxtlIOsfCuyQoXtEJcIEznplrtsEIrtMNuIIFiIRjonsAozzHeBRltgFBMsCjCRjoHAwqpwIiCzzmhjuIsAfHyknTLFXDywevDCtxNvGsRitNtknLrZlqAyIvteeHLNvHovqjoAJxYlgAyvJChsNFBsVbHQwzAGBboyDbuNzsiuGGslbNzglpujrDjxtIvCpyHqWvQjHRokDaBXtihhuyterNFuMzoNRjsyyFepsXsqDouluGmvDqGMdkmDHoprtmrzCfhMuyKztHSrzzKnaEtqeIJCfeNzyRNzDSykyLClrtuoHvCjhyBHwSJHyknTCwbHxweFMzcevySrHelFgxDzntlxptyIJmmNGFsJjsypnLDufpfCdTWlohcHMsCuDEqDzLqbAfGkMDEilyEMvDxpQokosklFyIhuxlsvIHMsKZDSeyFDmkElttxzCpjzGBsFpsBcwEzrkrNBtEJmjkMuyGzjsgvrzMpeExweMvDoxABCBFuDypCHwAjpgJtICpemxaIMNvGCpyEYxlyNAlMvtujIESofpDLKClAmTpBtruMthlNGBsQfIFgxeznopBtruvqfAEvxGQjsGpqzFrqxtHtBTGfvSyCHSmtIknDswalktwFvCfrNFQsQfLykDtFpXCtJntJFuwCqyGHuIGpqzFCepgtnsCpteHquzKXwyvSoAmtlxXwuIEvtNBNvDxxLfyHOqbCjIhuTDfpFGBsSjrIgDDswamtJgxOzmhjuIsAfpRkmvwCQsjCIwvGfmNGIvDshFgGlKBqlssiDBCjkBGHsWuIMooSwAbTxpitrljxuFyqNosRcupLqbCjHtEAJpyLqIIFiIMqSDLjoEjsgyQtokBrLHGfGCuDzxCepiDuwCDiixyyBSntwqEvwnmtyZeuKtujIEGsRitQcsolqbyxweIvtevCtBHzgICtGlJmMwjpsuosbxMqyDQfHQkxrOqbyxDmuwzeCMnSGOmtyuoEGHlFNBeqItgmNFjvNfqCqBDGvbmtsyjCluhyCLsRttBvrpzniwtJtEAxfFOGcDTuIFgnzMpemfrkyIxztIpEsSBGCpDJGDdzsCaHDofxIBMvDbHIgnxwbepBpsBJzlmHtuHLfHMtDzxorysNYEPnpyFqNsKmHFgGlKwqEtDsEMpbxGruBXnDPgWlQkbTBxlBOsfryKNHHntgnvHsCZsDpIIvteKIGSCTsIGeupLhbDLDaxzlexBrHWKmqCqxEzrpmjCcxMthlNBPsQitPgSwDFXEhwyqdHfrNBPsQbCBukEvxtytCtxDDciHpBoMeHFgGpFCXyivoJJyulypuFQpJQgvdzntlqzetvwmeLBOBCjIgoolFBepBplAzoprwruzKuwCykJsAlFssiJosfrMuyGzusMyxzFCetxqiwwCpAHoyoSvEJqyvAwdzqshEMDfXBrHHGfrytBzMBbwxIaHOpeeHqcKzurFgnswAdzfGoKIobrxnLCTosrjoCwFbCjDnBTlcsOGzwUfDPusIGCepwzitNzoxBrLwCfpLfDswBlylIhuxlsvIHMsKxpQrvlQrkrBpsiHzliarNGHonMwBPQnpTyLaIKwbCCAAwSwtPAtlRIvlssfKIyzEFyNvDlxBuupHCqCDxnwOzhvuozCQuwCiywvAfylpntNzxeMBFroiDCdolFmFHfHsEMEpjusLoHeHFgnqsuizkutxzrphxnGvNsHCdEEamfosIsqTloCNuCBFpGBqkyQCetsvTxzEimHtQwSizGfCtKrcEmtyMvyuxItLoAuwCiywvAfylNoKClwiNBFsSuwConzACXyiCoJNlzeHLNvHovghDswHclqAovAEiiSsuzKpuDdEEACpmfsivTzvwuLuBXuwGpqEGCeprlhuIEiiLvxsVbHMxoCKqbrtIovAsfvBBLGDbCBekxwxspwIoCzjpyLvxsNorCvyzLqfDyxmuNsfwuvxbNJAJlEDLFXEhwyqdEimHxczKkJQvGlLleTxpitdrbzyuyFRpBCoyCwxcsjGdEPriLyEyUDuHMooxGAbEnrkuODTlyGICJuwCfyFyqlqkBeYHypxGnxoSzDScxJExopxweIvteMEAIKgvGPAEALqbEmxnwNrprHnMHzsIyiktFcepsplBJqbwOqxsMtwCikGwvblpxsIosfrMuyvDmsFgBsswazzIaDyDbmxVNGQbxLkxraCpDyprJDyhxIEuwMJzLqGeznkHmptICpemxvNrznCLgkCCriwjsmuNsfvynwvDexLoInGjqAtrkuOlohNBIyNvIKABpvqryyxnwClueHqJISjIMpwJznXoIDnJTzvAuANwSJHyknjGDZlsLeqMtueQuCzDPzyARFJAvFuIhEPrirIJsCTstEqxysvfDxNoKMCjhylIIVpCRioEQxrCtLnxJCtiIEuBXuwGpqdznhpuIhqIrjrAnLCTosRjyFyqAtiNoKHpbrCGQvzuNMwClAmVzzGeqGwzeLrHHFpxLikHsHXyDLhuMpBvyLIIQfpJnIrGrkrmDmuvquiLJuFCtHFgkDCnaxjneqCTteCqcADbCRkDEGxFHfHnJGJjrAGIvDsXPgkwDHativoxJxfezGyFVbGBuRFJAvFuCoMdDbmxgBsSixLiCDLjoEnCgiCpseHnHrApJEjDswAqthzeJvyekIGvoBlDLvrpyxaofBcqMCpyMrFxTtIGpDtEnQsjCsxzHbpErxoKmIFgGlQjozzCdyOEjpFFBsFpIFgBzOwezwHervnlXBrHGGfvMvyyACPsjLaLzousGruBCJLyxootjZvGDyyOmfkuANCQbxLnsvwjYlxIaHyTofOpEsStXQyolJClRtsABGEiiJnLsMuHypnxGCepwHaDypwiLLvCCzLCpDzNnolsssJJzevCtBHTosCtDswAlzkDfJCpdeLEIIRfAQqDswHtzzAdDOrfxMBuyDeIMvrpKtfytGaDTEimHtvISJHRwmvsAlFssoDOsffyAwvEpGOwsEwjtsnAeYBzutLrNHXtDymsyyFbEjHpuxtbpFLGMMfrIcxoEHmlsIscTsvrNvHuGbIPgkwDHdlAtmuLFjxynFCSpuNtyEwlqttCiDvHbCvHNWFpIQqkvwmXyDLaOdojhHGwoQfIFqErzRcpqIsEylnrBnJDXbAJqpDMmapsIhuRlzsFqjvNfqCmoALpltsvaHJFohuAxoQpJLfSHsBalrCnuvCceQyCBFJuCnDDGmXxswaFKJjjSBOKzoIRquyGFqsjIrKOsJhIANyMpLUjITLFXDoJsJOsbxMuyzNpzCfCzvjjysxcuOsfAuLMvDltNvqzAwdlwDuDylohuEIIMexLjoCturphDaJvyeeFyaCCJLGurJGDZzzAdLzmfiHGBsQfiFcDDsuiTrvoyIrusNrFzzcDSvSnGDiouGorvmmCNrFzXpJUjkEamfofutuMTxiHGBCLfpLfrzORdzyHisFlohuyFoMeLFcDDuqlzqXmIPAqsMrxHNhDRqxpPCclqAavOpsMArNCTuDDjoCwkrENsoDOqfiFyCyDjIgtolDuvotCtjCluwNHztCptQpDtFCbCjHtCzEpsGHwvQjvFvxzOJizyDfFzzqpyrMDDdxynvJLqfDtCeFNJdlInHoKzHRiEJLqbJmpvuCpsiEryDRbHIkxrEnfqNBgEDyheJCFMLzHCnpHznkTlDbqxvusMpBCNmCCzDdwyqprqeHdEtwOpBoRuJNknBMnpEnDnyIxzsJvHwNoXKgkyzxtotNoKFypAQuuHXpJPgqzAwdEtsoJDwmCIHxCHuiFgkyKFbCnHyEPoprNVNvHozgcwmMCezBsoYFypAcFQszsxRukDLDmtiFuuNEjsHQVwRoIyullvjpEmtruNEpjNuyAAvIFgupwyplxziDBxfeFBNCErJCuDtGwpEtDHuyCpzyBPsQmpQvclLDoofNwyOsulCFYBFmxQjlltnqsfIsyIEimMAyKOjrRwBpznpHwxtyIrTlyJuGOstRvIlxobnytdrPEwiLLACNeAMqutFpxyDLaOJyfxCzyKGfCQjoHwwqEtIhuGlemyFLCNnLyADswqbwqsoMItoxBrIHGfGUkxrVKXDptdCzHieNVNvNvvFvkmGDqlqAtxDDtxOszWIvHRhsyABepiIeBGtokSBOoApJRKntvwqvsDwMCluxBrBsKmIMukJaovzzLaDOEpoHBQHGfIPwDsamlyyznERHieNVNvHozydyFLrqTrHoHMJJxIyxGNnpLAzpGyipfqoKOtuEvBOHzmAgmxzOrpTxDrJJqnmMFyJDsNzqnJaClwipbEPEFzyAIzCTIPcnwsCbCfCdQxvmiSsIFHoHRcxnwRqsnCkYzGfrGvMGSipRiyovjjXfJryxpJxMsOBMzSMpDpNnoEjAlqIJcsxLuBXuwGpqTxHlFiDyEPDueLGGwRtxLioGwAvmtsy

维吉尼亚解密网站:

sheWOULdNtWalkRIghTnexTTomeWheNWeLEfTTheseaLiONSbuTSHeDidNtWaLktoofaRaWaYsheSOrTOfWaLkedoNoNeSideOfTHeSIdeWalkandIWalkedONTHeOTheRSideITwaSnttOOGORgeOuSbUTiTWasbeTteRTHaNhaVingherWaLkaboutamIlEaWaYfROmmelikebefoReweWeNTupaNdwatchedThebeaRSoNThaTLitTlehiLlfoRaWhIlebuTThereWasNTmucHTOWatcHOnlYoneofthebeaRSWaSoUTthePolarbeaRtheOTHeRoNEthebRoWnOneWasiNhISGodDamcaVeandwOUldnTcOMEoUTAllYoucoUldSeeWaSHiSrearendtherewaSaliTTLeKidStandingnexTTomeWiThacOWboYhatonPracTicalLYOveRhiSearSaNdhekepTTelLiNGhiSfatheRMaKehiMcOMEoUTDaddYMakehiMcomeOUTilOOkedaToldphOebebUTShEwOUldnTlAUghYOUknoWkIdSwhEnTheYresOreaTyoUtHeYwONtlaUghoranYThinGAfTErWElefTThebeaRSWelefTTHeZOoandcrosSedOVerThISLiTTleSTReetinTHepaRkaNDthEnWeWenTthrOUghoNeOfThOSeliTTletUnNelstHaTaLwaYsSmellfrOmSOmebOdYSTakIngaLeAkITwaSontHeWaYtOThecaRrouSeLoldPHOebEsTIllWOUldnTtaLktoMeORanYThingbuTsheWaSsoRTOfWaLKingNexTtOmeNowITOOkahOLdofThebeLtaTThebackOfhErcoaTjUsTfORTheHeLlOfiTbUTSheWoUldNTleTmesHeSaidKeepYoUrhandsTOYOUrSElfifYoUdOnTMindsheWasSTillSoreaTmeBUtnOTaSSoREaSShewasbefOReANYWaYweKepTgetTiNgcLoseRaNdClOSeRTOThecarROUseLaNdYoUCoUldStarTtOHearThaTNuTTYmUSiCitalWaYspLaYSitWasplaYingohmaRieiTPlayeDthaTSAmeSoNGaboUTfiFtYYeaRSagoWheNiWasalITTleKidthatSoNeNIcetHiNgabOUtcaRRoUselSTheYalWaYsPLaYThesamesONgsIThOUGhTThecaRrouSeLWascLOSeDiNTheWInterTiMeoldphOeBeSaidITWASthefIRstTiMeShePracTiCalLySaidaNYThIngshePRoBabLyfORgoTSHeWaSSupPOSedtObeSoreaTMemaYbebecauSeitSaRouNdChRiSTmaSiSAidshedidnTSaYanYThingWhenIsaIdthaTshEpRObabLYremembeRedSheWasSUppoSedTobeSOReaTmeDOyOUwanTTogofoRaRideONiTISaidIKneWshePRobablYdIdwHenShewasatiNYliTTLeKidandALlieaNdDBandiUSeDtOGoToThePaRkWIThheRShEwaSmadaboUtThecarrOUSeLYOUcoULdnTgetheRoffTHeGodDamThingIMtOObigSheSaidithoUghTsheWaSntGOINGtOanSWeRmebUtSHedidnOYOuREnoTGoonILlWaitfORYagoONISaIdWeWereRighTTHeReTHenthereWereafeWKidSRidIngoNitmoStLYVerYlITTleKidSandafewPaRenTSWeReWaiTiNgARoUndOUtsIdeSItTIngoNThebencHesaNdalLWhatIdIdwasIweNTupTOThEwiNdoWWheReTheYSelLTHeTicKeTSandboUghToldphOeBeaTickeTTheNIgaVeiTTOhErsHeWaSStandiNGRigHTNeXtTOmeHeReIsaidwaitaSecOndTakeTheReStOFYouRdOUGhTOoISTarTedgiVingHeRTHeREsTofThedOugHShedleNTmeyoUkeepitKeePitfORMeSheSaidthensheSaidrIgHTafTErWaRdPleasethatSdePReSSingWhensOmebodYSaYSPleaseTOYoUIMeaNifiTSphOebEoRSOmebodytHatdePReSseDthehelloUtOFmeBUTiPUtTHedoUghbackiNmypOcKeTAREnTYOUgonNaRIdetOOShEaSKedmesheWasLOokiNgaTMeSOrToffunnYYOUcouLdTeLlSHeWaSntToOsOReatMeaNYmOReMaYbeIWilLTheneXTTImeillWaTChYaISaidGOTYOUrTIckeTyeSGOaheadtHeNILlbEonThisbeNchRighTOVeRheReIlLWATchyaiWenTOVeRaNDsaTdownoNthISbeNcHaNdSHeWeNTAndgoTOnthecaRRoUSelshewalkedallaROUNDiTimeaNSheWalKedoncealLthEwaYaRoUndiTthenSheSatdOwnoNThisbigbRoWNbeaTuPLookIngoldhORSeTHeNTHecarRoUSelsTaRTedaNdiWatcHedheRgoaRoUNdandaROUndtheReWeReOnLYaboUTfiVeORsiXOTherkidSontHeRiDeaNdTheSongThecarrOUSeLwaSplaYingWassMokegeTSInyOuREYesItWaSPlaYINGiTveRYjaZZyandfUNnyALlThEkiDskePTtRYingTograbfORthEgoldRingandSowaSOLdphOEbeaNdIWaSsORTofafRaIdSHedfalloffthegoddaMhOrSEbUTididnTsaYanYThINGoRDoanYThingTheThiNgWiThkIdSiSifTheyWanttOgRaBthEgoldRingYoUHaveTOLeTthEmdoITAndNoTSayaNYThIngifTheYfalLofFTheYfalLofFbUTITsbadifYousaYaNYthIngTOThemwheNTheRideWaSOveRShegoTofFherHORSEaNDcameoverToMeyouRideOncEtooThiStimeShesaidnOILLjUSTWATchyaiThiNkilLjUStWaTchIsaidigaveheRSoMEmoReofheRdOUghHeReGEtSOmemOReTickeTSSheTOOKthEdoUghoffMeIMnotMadaTyOUanYMoresheSaidIKNOWhuRRYUPTheThingSgonNaSTarTagaiNthenalLOfasUddeNshEgaVemeakisSthenShehEldHeRhandouTaNdSaidITSRaiNingiTsStarTIngtORaiNIkNoWthenWhatSHedidiTdamNNeaRKilledmeShereachEdiNmYcOatPockeTandTOOkOuTMYRedhuntingHataNdPUTiTOnmYheAdDOnTYouWaNTiTISaidyOUCanWeaRitaWhIlEOkaYHURRyUpThOUghnOWyOUreGonnamiSsYoURRideyOUWoNTgeTYouRoWnhORseORaNYthIngshekepThaNginGaROUndThoUghDidYoUMeanITWhatYOuSaIdYouReaLlyaReNTGoiNgaWaYAnYWheReAreYOUReaLlYgOinghOmeafteRWaRDsSHeaSKedmeyeaHIsaIdiMEaNTiTTOoIWaSnTLYinGTOhErIRealLYdidgohOmeafTeRWaRDsHURRyUpNoWiSaidtHeThiNgSSTarTiNgsHeraNaNdBoUGhTheRtickeTandgOTbaCkONthegoddaMcaRRouSeLjUsTInTiMeTheNsheWalKedaLlTHeWaYarouNdiTTilLSHeGoTHeRoWnhorSebackTHeNSHegOtonITSheWaVedtoMeaNDIWavedbaCkBOyiTbegaNTORaiNlikeaBasTaRdInbUcKeTsISweaRToGodALLThePaReNtSandmOTherSaNdeveRYbODyWEnToVerandsTOodrIgHTUndErTheRoofOfTHecaRROUSeLSoTheYwouLdNTgetSOakEdTOtheSkinoRaNYThiNgbUTISTuckaRoUndoNThebeNchFoRQuiTeawhiLeIGotpReTTYsOakingWeTeSpecialLYMYNecKandMYpanTsmYhunTiNgHaTRealLYgaVemeQUiteaLOTofProTectioNiNaWaYbUTIGoTSoakedAnYWaYididNTcaReTHoUghIfelTsOdamnHaPPYaLLofSUddenTheWayoLdphOebEkePTgoingaROUndaNdaRoUNdIWaSdamNneaRbaWlINGIfElTSOdAmnhaPPYifYOUWanTToknOWtheTrUThIdONTkNoWWhYITWASjUsTThatShelOokEdSodamnniceTheWaYShEkePtgoIngarOuNdandaROUNdiNheRbluecOaTandaLlgODIWIshYOUCouLdVebeeNTHeRetHaTSallImgoiNgtoTeLlabOUtIcOUldpRobablYTeLlYoUWhaTididafteRIweNTHOMeaNdhoWIgotSicKandalLaNdWHaTSchoolImSUPpoSedTOgOToneXTfalLafTerIGeTOUtOFheRebuTIdoNTfeeLlIkEiTireaLlydoNttHatsTUffDoeSnTiNTeReStMeTooMUchRigHtnoWAlotOfPeopleeSPEciallYThiSoNePSYchOaNaLySTgUYTheYhaveHereKeePSaSKingMeifIMgOIngaPPLYMySElfWhenIgObacktoScHOOlNExTseptembeRiTssUcHaStUPidQUesTiOniNmyoPiNiOnIMeanhowdoYoUKnoWWhaTYoURegoIngTodoTIllYOUdOIttHeanSWeRiSyOUdonTIThInkiambUThoWdoIKnoWiSWeariTsaSTUpidQueSTioNDBiSnTasbadasThereSTofTheMBuTHekeepsaskiNGmeaLOTOFqUEsTiOnsToOHedRoveOVeRlaStsaTUrdaYwiThthISENGliShbabethaTsiNThiSNeWPicTuRehesWritiNgSheWaSPreTtYaffectedbUTveRYGOOdLOokiNganYWaYOnetImeWHeNSheWentToTheLadieSROOmWaYThehelldoWNintHeOTHeRWingDBASkedMeWhaTIThOugHtabOUtalLthISstUffIJuSTfinIShedTeLLingYOUaBoUTIdidntknOwWHattHeHeLlTOsaYifyouWaNTTokNOWTHeTRuThidontknOWWhaTIThInkaboUTitImSoRRYItOldSOmaNYpeOpleaboUTitAbOUTalLiknoWisIsOrTOfmiSSeVErYbodYiToldabOUTEveNOlDSTRadlaTeRaNdAckleYfORInSTanceIthiNkIeVenMiSSThaTgoddamMaUriceItSfUNNyDOnTeVerTeLlaNYbodYaNYthIngIfYoUdOyOUStaRTMiSsiNgeVeRybody

解密得:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBRMFO0g-1627825826488)(C:\Users\86183\Desktop\ZERO\2ero\WP\BUUCTF\Crypto[NCTF2019]Sore\image-20210730141745070.png)]

flag:

vlbeunuozbpycklsjxlfpaq

task.py:

from string import ascii_letters
from flag import flagctoi = lambda x: ascii_letters.index(x)
itoc = lambda x: ascii_letters[x]key = flag.strip('NCTF{}')
len_key = len(key)plaintext = open('plaintext.txt', 'r').read()plain = ''.join(p for p in plaintext if p in ascii_letters)
cipher = ''.join( itoc( ( ctoi(p) + ctoi( key[i % len_key] ) ) % 52 )  for i,p in enumerate(plain) )open('ciphertext.txt', 'w').write(cipher)

通过加密脚本可以看到这道题的重点是key

在没有key的情况下要破解密文要经过3个阶段(通过概率分析明文)

  1. Kasiski 实验
  2. 重合指数攻击
  3. 字母频率分析

参考链接

Kasiski实验通过查找相同的子串(3个字符以上)来猜测可能的key的长度.
比如两个相同的子串的距离相差8位,那么key的长度应该为8的因子,这样当我们有足够多的数据时就可以基本确定key的长度了.

重合指数攻击
重合指数CI

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-StpPYo94-1627825826490)(C:\Users\86183\Desktop\ZERO\2ero\WP\BUUCTF\Crypto[NCTF2019]Sore\20200719155855688.png)]

L 是指长度,f是指相应字符出现的次数.
一般来说,一段有意义的文字的CI是基本确定的,英文中CI 约为0.065.这样可以通过分组计算CI再取平均值与0.065比较进一步确定key长度.

一旦密钥长度确定以后.
通过密钥长度进行分组,如len(key)=8,则可以分成8组,每一组对应的密钥字母是一样的,这样我们就可以通过字母遍历来算出最符合字母频率的情况,这样单个密钥字母就基本确定下来了.

    // Friedman测试法确定密钥长度public int Friedman(String ciphertext) {int keyLength = 1; // 猜测密钥长度double[] Ic; // 重合指数double avgIc; // 平均重合指数ArrayList<String> cipherGroup; // 密文分组while (true) {Ic = new double[keyLength];cipherGroup = new ArrayList<>();avgIc = 0;// 1 先根据密钥长度分组for (int i = 0; i < keyLength; ++i) {StringBuilder tempGroup = new StringBuilder();for (int j = 0; i + j * keyLength < ciphertext.length(); ++j) {tempGroup.append(ciphertext.charAt(i + j * keyLength));}cipherGroup.add(tempGroup.toString());}// 2 再计算每一组的重合指数for (int i = 0; i < keyLength; ++i) {String subCipher = cipherGroup.get(i); // 子串HashMap<Character, Integer> occurrenceNumber = new HashMap<>(); // 字母及其出现的次数// 2.1 初始化字母及其次数键值对for (int h = 0; h < 26; ++h) {occurrenceNumber.put((char) (h + 65), 0);}// 2.2 统计每个字母出现的次数for (int j = 0; j < subCipher.length(); ++j) {occurrenceNumber.put(subCipher.charAt(j), occurrenceNumber.get(subCipher.charAt(j)) + 1);}// 2.3 计算重合指数double denominator = Math.pow((double) subCipher.length(), 2);for (int k = 0; k < 26; ++k) {double o = (double) occurrenceNumber.get((char) (k + 65));Ic[i] += o * (o - 1);}Ic[i] /= denominator;}// 3 判断退出条件,重合指数的平均值是否大于0.065for (int i = 0; i < keyLength; ++i) {avgIc += Ic[i];}avgIc /= (double) keyLength;if (avgIc >= 0.06) {break;} else {keyLength++;}} // while--end// 打印密钥长度,分组,重合指数,平均重合指数System.out.println("密钥长度为:" + String.valueOf(keyLength));System.out.println("\n密文分组及其重合指数为:");for (int i = 0; i < keyLength; ++i) {System.out.println(cipherGroup.get(i) + "   重合指数: " + Ic[i]);}System.out.println("\n平均重合指数为: " + String.valueOf(avgIc));return keyLength;}// Friedman--end

解密脚本:

from string import ascii_letters
ciper='nsfAIHFrMuLynuCApeEstxJ'
plain='Shewouldntwalkrightnext'
x=zip(plain,ciper)
flag=''
for i,j in x:if ascii_letters.index(i)<ascii_letters.index(j):flag+=ascii_letters[ascii_letters.index(j)-ascii_letters.index(i)]elif ascii_letters.index(i)>ascii_letters.index(j):flag+=ascii_letters[52-ascii_letters.index(i)+ascii_letters.index(j)]elif ascii_letters.index(i)==ascii_letters.index(j):flag+=ascii_letters[0]
print(flag)

运行得:

vlbeunuozbpycklsjXlfpaq

大佬的wp


http://chatgpt.dhexx.cn/article/iT1ftOKc.shtml

相关文章

[NCTF2019]babyRSA1

1.题目代码&#xff1a; # from Crypto.Util.number import * # from flag import flag # # def nextPrime(n): # n 2 if n & 1 else 1 # while not isPrime(n): # n 2 # return n # # p getPrime(1024) # q nextPrime(p) # n p * q # e 0x1000…

[NCTF 2018]Easy_Audit

1.打开环境&#xff0c;发现就是php套娃。 $_REQUEST:PHP的内置变量&#xff0c;是一个数组&#xff0c;保存传递的参数&#xff0c;它的特性是如果get,post一起传参&#xff0c;则会优先post传参&#xff0c;可以由此进行变量覆盖。 $_SERVER:PHP的内置变量&#xff0c;是一个…

第十届南京邮电大学网络攻防大赛(NCTF 2021)writeup

Web X1cT34m_API_System Author&#xff1a;wh1sper 题目描述&#xff1a;在API安全的新时代&#xff0c;安全圈迎来风云变幻。掀起巨浪的你&#xff1f;只手遮天的你&#xff1f;选择保护还是放弃你的曾经的伙伴&#xff1f;target: http://129.211.173.64:58082/ 附件链接&am…

[NCTF 2018]签到题

这题呢 看题目说签到题目 我们可以看出来 我们用F12看源代码 去搜索一下flag值在哪里 但是我们看了没有 我

NCTF2021——wp

文章目录 一、REHello せかいShadowbringer鲨鲨的秘密 二、MISC做题做累了来玩玩游戏吧Hex酱的秘密花园Hello File Format 一、RE Hello せかい ida反编译&#xff0c;flag明文给出 Shadowbringer 那两个函数是2次base64变异码表的编码&#xff0c;函数反过来换两次码表解码…

NCTF2022 calc题目复现

calc&#xff08;环境变量注入getshell&#xff09; 经典计算器题目&#xff0c;看着有点眼熟&#xff0c;没错&#xff0c;就是buu三月赛的一道题目。由于那时候web可能都算不上入门&#xff0c;所以也就没有复现。比赛时就网上看了看三月赛的wp&#xff0c;但是没有什么用&a…

[NCTF2019]SQLi

[NCTF2019]SQLi 进入页面&#xff0c;尝试万能密码登录&#xff1a; 觉得有waf&#xff0c;爆破一下 发现过滤了相当多的可用字符串 另外在robots.txt文件中有提示 再进入hint.txt 看到了黑名单&#xff0c;并且说要让查找admin的密码&#xff0c; 但是admin在黑名单中&am…

BUUCTF:[NCTF2019]phar matches everything

题目地址&#xff1a;https://buuoj.cn/challenges#[NCTF2019]phar%20matches%20everything 源码地址&#xff1a;https://github.com/swfangzhang/My-2019NCTF/tree/master/phar matches everything catchmime.php //catchmime.php <?php class Easytest{protected $tes…

2022NCTF的部分wp及复现

Misc Signin 程序设计实验作业,但是签到题(听zys说建议把终端字体调小一点并且只需要输入一串来自35年前的神秘秘籍 35年前的秘籍&#xff0c;就是魂斗罗的秘籍 上、上、下、下、左、右、左、右、B、A、B、A 就可以得到flag NCTF{VVe1c0m3_T0_NCTF_2022!!!} Web calc 命令…

NCTF2021 Ezsql

好兄弟&#x1f466;发来的题目&#xff0c;&#x1f474;当时没做出来&#xff0c;幸好环境还在 这道题测试一遍后&#xff0c;没什么收获&#xff0c;马后炮先扫描网站目录 发现源码&#xff0c;共有三个文件&#xff1a;config.php、DB.php、login.php 代码审计 config是…

2022 NCTF

MISC 炉边聚会 卡组代码是 Base64 编码的字节串&#xff0c;exp <?php $deckstring "AAEDAZoFKIwGngXIBrwFzgnQBfIHygf0CIgJkAiBogJ1gjMCPIHtgeeBeAD6AfyB7YHvgbgAAD4AO2B7wFkgnMCMwIga2B/QImgi6BJAIiAn2BOIJAAA"; #这是⼀个⾮常有趣的萨满卡组 $binary bas…

NCTF2022-复现

文章目录 NCTF2022-复现比赛题目比赛总结MiscSignin只因因炉边聚会zystegoqrssssssssqrssssssss_revenge 参考&#xff1a; NCTF2022-复现 比赛题目 NCTF2022 比赛总结 本次比赛&#xff0c;web还是一无所获&#xff0c;自己还是差的很多。反观misc&#xff0c;这次比赛六道…

NCTF2022 Web Writeup

1.calc 题目地址&#xff1a;http://116.205.139.166:8001/ 右键 /source 源码 app.route("/calc",methods[GET]) def calc():ip request.remote_addrnum request.values.get("num")log "echo {0}{1}{2}> ./tmp/log.txt".format(time.strf…

NCTF web总结与复现

前言 打完NCTF休息了一下&#xff0c;总体感觉还行&#xff0c;学到了很多。 calc 这一题也卡了我很久&#xff0c;因为复现过DASCTF三月赛&#xff0c;一直在想着有没有可以替代反引号或绕过的方法&#xff0c;搞了好久都没出&#xff0c;在学长的提示下学到了一个方法&…

CNN网络设计

系列文章目录 文章目录 系列文章目录前言一、CNN基本概念二、卷积计算类型其他算子常用激活函数经典轻量化模型 前言 一图胜千言 一、CNN基本概念 感受野指的是卷积神经网络每一层输出的特征图(feature map)上每个像素点映射回输入图像上的区域大小&#xff0c;神经元感受野…

CNN基本结构和经典网络

卷积网络的基本结构 数据输入层/ Input layer 3种常见的图像数据处理方式&#xff1a;一般CNN只用去均值 卷积计算层/ CONV layer 基本概念&#xff1a; depth:与神经元&#xff08;filter&#xff09;个数相等stribezero-padding 卷积宽长深度计算&#xff1a; 激励层(R…

CNN概述

CNN 卷积神经网络简介 特点 将大数据量的图片降维成小数据量有效保留图片特征 应用领域 人脸识别、自动驾驶、无人安防 CNN解决的问题 图像的数据量太大&#xff0c;导致成本很高&#xff0c;效率很低图像在数字化的过程中容易丢失特征&#xff08;其实就对应了两个特点&…

常见CNN网络结构的详解和代码实现

1. AlexNet 论文地址:ImageNet Classification with Deep Convolutional Neural Networks 2012年提出的AlexNet的网络结构为&#xff1a; 结构说明如下&#xff1a; 1.1 ReLu(Rectified Linear Units)激活函数&#xff1a; Relu函数为 r e l u ( x ) m a x { 0 , x } { …

图像分类网络-经典CNN网络简介

在CNN网络结构的演化上&#xff0c;出现过许多优秀的CNN网络&#xff0c;CNN的经典结构始于1998年的LeNet&#xff0c;成于2012年历史性的AlexNet&#xff0c;从此大盛于图像相关领域&#xff0c;主要包括&#xff1a; 发展历史&#xff1a;Lenet --> Alexnet --> ZFnet …

使用PyTorch搭建CNN神经网络

使用pytorch搭建CNN神经网络 卷积运算的基本原理单层卷积运算valid convolutionsame convolution CNN的基本结构数据输入层卷积层池化层全连接层 数据导入的实现构建基础的CNN网络网络的设计损失函数和优化器训练函数和测试函数实现CNN网络的训练和测试 Googlenet的实现网络框架…