From 64bfc4f43980051e015dbdfd948583e1f4b2ac22 Mon Sep 17 00:00:00 2001 From: andwati Date: Tue, 5 Aug 2025 03:25:00 +0300 Subject: [PATCH] edited blogs --- README.md | 4 +-- _posts/inertia.md | 20 +++++++++++ content/_index.md | 6 +--- content/contact.md | 4 --- content/posts/a-fresh-coat-of-paint.md | 5 ++- content/posts/file-over-app.md | 4 +-- content/posts/generate-django-secret-key.md | 4 +-- content/posts/hello-world.md | 4 +-- content/posts/inertia.md | 4 +-- ...tgresql-15-on-arch-manjaro-garuda-linux.md | 2 +- content/posts/integrating-netlify.md | 4 +-- content/posts/javascript-exporting-modules.md | 4 +-- content/posts/linux-permissions.md | 2 +- content/posts/mmuctf2025.md | 36 +++++++++---------- content/posts/obsidian-sync.md | 4 +-- ...mantic-version-and-conventional-commits.md | 4 +-- content/posts/subresource-integrity.md | 4 +-- content/posts/utterances-comments.md | 4 +-- content/posts/vuejs-tailwind.md | 3 +- 19 files changed, 66 insertions(+), 56 deletions(-) create mode 100644 _posts/inertia.md diff --git a/README.md b/README.md index 62c5cab..6e3c45d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -## TODO +# TODO - [ ] create new post script - [ ] add google analytics - [ ] move goatcounter config to config.toml - [ ] modularize open graph(og) tags - [ ] add favicon to config -- [ ] add latex support \ No newline at end of file +- [ ] add latex support diff --git a/_posts/inertia.md b/_posts/inertia.md new file mode 100644 index 0000000..3ac1cd7 --- /dev/null +++ b/_posts/inertia.md @@ -0,0 +1,20 @@ ++++ +title = "cognitive inertia" +description = "inertia" +author = "mockingspectre" +date = 2025-02-26 +[taxonomies] +tags = ["cognition"] ++++ + +Staring at the void + +Cognitive inertia is the reason changing our habits can be difficult. If you want to overcome inertia you have to apply a force. I consider myself an eternal student, who is ready to learn anything, or so I thought. It happened but I had not noticed, I had stopped moving forward. + +## Metawork + +I will define this as the things we do before getting the "real" work doe. Its things like choosing the best IDE or text editor, setting up your coding environment, choosing the best note taking app, or even the 'best' operating system. They are the prerequisites of the actual work. + +I had been stuck on this loop, always trying to craft the perfect workflow. Setting up the best personalized linux distro, switching note taking apps, trying out multiple layouts, stylings and technologies for my blog, the list is endless. + +All of these metawork took more time thn the actual work; building, active learning and writing. Im going to stop all of these and start doing the important stuff. diff --git a/content/_index.md b/content/_index.md index 0f37744..39b9c76 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,10 +1,6 @@ +++ title = "0xmockinspectre" -description = "Ian's website." +description = "offending binaries" +++ spend my free time working on hobby projects and sometimes I write about my experiences. In particular, I enjoy learning about offensive security and reverse engineering. - - -[hobby projects]: https://github.com/andwati -[write]: /posts diff --git a/content/contact.md b/content/contact.md index fb9950a..3de010b 100644 --- a/content/contact.md +++ b/content/contact.md @@ -4,7 +4,3 @@ description = "Let's get in touch." +++ spend my free time working on hobby projects and sometimes I write about my experiences. In particular, I enjoy learning about offensive security and reverse engineering. - - -[@andwati]: https://github.com/andwati -[my key]: https://github.com/andwati.gpg diff --git a/content/posts/a-fresh-coat-of-paint.md b/content/posts/a-fresh-coat-of-paint.md index 03069a1..6d24c34 100644 --- a/content/posts/a-fresh-coat-of-paint.md +++ b/content/posts/a-fresh-coat-of-paint.md @@ -1,7 +1,7 @@ +++ title = "A Fresh Coat Of Paint" description = "Migrating to Zola" -author = "Ian Andwati" +author = "mockigspectre" date = 2023-08-24 [taxonomies] tags = ["zola", "blog", "tera", "rust"] @@ -9,7 +9,6 @@ tags = ["zola", "blog", "tera", "rust"] Using Zola as my preferred static site generator - After using Hugo for over eight months I got tired of it and looked for other alternatives. That's when I stumbled upon Zola. Zola is a static site generator (SSG), similar to [Hugo](https://gohugo.io/), [Pelican](https://blog.getpelican.com/), and [Jekyll](https://jekyllrb.com/). It is written in Rust and uses the Tera template engine, similar to Jinja2, Django templates, Liquid, and Twig. SSGs use dynamic templates to transform content into static HTML pages. Static sites are thus very fast and require no databases, making them easy to host. @@ -55,4 +54,4 @@ I improved on it by adding an archive page, pagination, a comment system, and Go The site is a work in progress and is far from polished. I plan on implementing a newsletter to notify readers of new posts. The site is primarily a dark theme, in the future I'll also add theme toggling and maybe different palettes. -You can subscribe to the site's RSS feed at [https://andwati.github.io/rss.xml](https://andwati.github.io/rss.xml). \ No newline at end of file +You can subscribe to the site's RSS feed at [https://andwati.xyz/rss.xml](https://andwati.xyz/rss.xml). diff --git a/content/posts/file-over-app.md b/content/posts/file-over-app.md index effd412..5b9a41f 100644 --- a/content/posts/file-over-app.md +++ b/content/posts/file-over-app.md @@ -1,7 +1,7 @@ +++ title = "File over app" description = "Take control of your artifacts" -author = "Ian Andwati" +author = "mockingspectre" draft = true date = 2023-12-18 [taxonomies] @@ -10,7 +10,7 @@ tags = ["obsidian", "entropy", "notes"] Take control of your artifacts - + In my endless endevours to find the perfect note taking app led me to obsidian, a note taking software that uses markdown files as the file format. All software is ephemereal in nature and yoour artifacts need to survive the decline of your favorite app. The files you create should be available to you and shouldt rrequire specialized software to access. diff --git a/content/posts/generate-django-secret-key.md b/content/posts/generate-django-secret-key.md index 58b5ea2..5108cbb 100644 --- a/content/posts/generate-django-secret-key.md +++ b/content/posts/generate-django-secret-key.md @@ -1,7 +1,7 @@ +++ title = "Django Secret Key Tutorial" description = "Managing secrets" -author = "Ian Andwati" +author = "mockingspectre" date = 2022-11-11T15:34:14.160Z [taxonomies] tags = ["tutorial", "django", "python", ".env"] @@ -9,7 +9,7 @@ tags = ["tutorial", "django", "python", ".env"] Managing the Django SECRET_KEY variable. - + The Django `SECRET_KEY` variable is very crucial to your Django application. The secret key must be a large random value and it must be kept secret. Leaking this value to unauthorized people could lead to a security breach. The SECRET_KEY is used in Django for cryptographic signing. It is used to generate tokens and hashes, they can be recreated using this variable. If it is not configured Django throws a `django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty` error diff --git a/content/posts/hello-world.md b/content/posts/hello-world.md index e0eb680..d89a8b9 100644 --- a/content/posts/hello-world.md +++ b/content/posts/hello-world.md @@ -2,14 +2,14 @@ title = "Hello World" description = "Hello world" date = 2022-11-04 -author = "Ian Andwati" +author = "mockingspectre" [taxonomies] tags = ["hugo", "blog", "go"] +++ How it begins - + In this post-web2.0 age, people seem to blog less and less, and blogs seem to be dying slowly. People are separated in different Apps where the content is not searchable by search engines. diff --git a/content/posts/inertia.md b/content/posts/inertia.md index b3bbc3a..c19e9be 100644 --- a/content/posts/inertia.md +++ b/content/posts/inertia.md @@ -1,7 +1,7 @@ +++ title = "cognitive inertia" description = "inertia" -author = "Ian Andwati" +author = "mockingspectre" date = 2025-02-26 [taxonomies] tags = ["cognition"] @@ -9,7 +9,7 @@ tags = ["cognition"] Staring at the void - + Cognitive inertia is the reason changing our habits can be difficult. If you want to overcome inertia you have to apply a force. I consider myself an eternal student, who is ready to learn anything, or so I thought. It happened but I had not noticed, I had stopped moving forward. diff --git a/content/posts/install-postgresql-15-on-arch-manjaro-garuda-linux.md b/content/posts/install-postgresql-15-on-arch-manjaro-garuda-linux.md index f7c470d..2a99d83 100644 --- a/content/posts/install-postgresql-15-on-arch-manjaro-garuda-linux.md +++ b/content/posts/install-postgresql-15-on-arch-manjaro-garuda-linux.md @@ -2,7 +2,7 @@ title ="Install PostgreSQL on Arch | Manjaro | Garuda Linux" description = "Getting PostgreSQL up and running on Arch Linux-based distros" date = 2023-02-16T15:34:14.160Z -author = "Ian Andwati" +author = "mockingspectre" [taxonomies] tags = ["postgresql", "archlinux", "manjaro", "garuda", "linux"] +++ diff --git a/content/posts/integrating-netlify.md b/content/posts/integrating-netlify.md index 56cc85b..451d0e6 100644 --- a/content/posts/integrating-netlify.md +++ b/content/posts/integrating-netlify.md @@ -2,14 +2,14 @@ title = "Integrating Netlify CMS" description = "Integrating netlify cms" date = 2022-11-24T15:34:14.160Z -author = "Ian Andwati" +author = "mockingspectre" [taxonomies] tags = ["blog", "hugo", "netlify","netlify-cms","github"] +++ Migrating to a better content management system through Netlify CMS - + # Heavy Lifting diff --git a/content/posts/javascript-exporting-modules.md b/content/posts/javascript-exporting-modules.md index 4fde430..b4b7e55 100644 --- a/content/posts/javascript-exporting-modules.md +++ b/content/posts/javascript-exporting-modules.md @@ -1,7 +1,7 @@ +++ title = "Export default and module.exports in Javascript" description = "Modules are the building blocks of modern JavaScript applications, allowing for the encapsulation of code into reusable components. Two primary systems govern the exportation of these modules: export default in ES6 and module.exports in CommonJS. " -author = "Ian Andwati" +author = "mockingspectre" date = 2024-01-17 [taxonomies] tags = ["javascript", "node"] @@ -9,7 +9,7 @@ tags = ["javascript", "node"] Modules are the building blocks of modern JavaScript applications, allowing for the encapsulation of code into reusable components. Two primary systems govern the exportation of these modules: export default in ES6 and module.exports in CommonJS. - + Javascript is a popular programming language that can run both in the browser and on the server. However, different environments may have different ways of organizing and importing Javascript modules. In this article, we will compare two common methods of exporting and importing modules: **export default** and **module.exports**. diff --git a/content/posts/linux-permissions.md b/content/posts/linux-permissions.md index 155e7ff..2ab98be 100644 --- a/content/posts/linux-permissions.md +++ b/content/posts/linux-permissions.md @@ -1,7 +1,7 @@ +++ title = "Linux Permissions" description = "no you can't do that says root" -author = "Ian Andwati" +author = "mockingspectre" date = 2025-01-27 draft=true [taxonomies] diff --git a/content/posts/mmuctf2025.md b/content/posts/mmuctf2025.md index 1ab1455..a3fa970 100644 --- a/content/posts/mmuctf2025.md +++ b/content/posts/mmuctf2025.md @@ -19,7 +19,7 @@ This was a sanity check flag. I believe competitions pose such challenges that y The challenge description talked about the `door`, my first instinct was to view the source of the front page. I got this html comment with what looked liked a base64 encoded string `` -```terminal +```zsh ┌──(mockingspectre㉿blackout)-[~/ctf/mmuctf2025] └─$ echo -n "bW11Y3Rme3dlbGNvbWVfZmxhZ19hZGlvc19NdWNoQGNob30=" | base64 -d mmuctf{welcome_flag_adios_Much@cho} @@ -32,7 +32,7 @@ mmuctf{welcome_flag_adios_Much@cho} This was a web challenge with an account creation form. Let's fire up Burp. The account creation request didn't seem suspicious for now, so I sent it to the repeater to abuse it some more. The response seemed interesting, the user id was in the query parameter: `GET /profile.php?id=5 HTTP/1.1`. This was a nice candidate for an Insecure Direct Object Reference(IDOR). I tried repeating the request with values from 0-4. The flag was at 1, the admin user's account. -```text +```txt mmuctf{1d0r_4dm1n_4cc3ss_1s_c0mpr0m1s3d} ``` @@ -43,7 +43,7 @@ mmuctf{1d0r_4dm1n_4cc3ss_1s_c0mpr0m1s3d} This was a simple one, I knew what the challenge wanted, but I couldn't get myself to exploit it, definitely a skill issue. The webapp had a landing page that had a button that made this request: -```text +```txt GET /portal/jump.php?url=https://example.com HTTP/1.1 Host: redacted User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0 @@ -70,7 +70,7 @@ A sentence might look normal, but if you copy it into a text editor that shows U I used these online decoders, and to get the flag: -```text +```txt mmuctf{oops_twitter_steg_1s_fun} ``` @@ -82,7 +82,7 @@ Can you reveal what lurks in the shadow? This was another stego challenge; there is an image with what looks like a color palette. The description hints at 'numerical essence', so it might be something to deal with the hex values of the colors. I used this site to extract the hex values. -```text +```txt #6d6d75 #637466 #7b346c @@ -97,7 +97,7 @@ This was another stego challenge; there is an image with what looks like a color Decoded becomes -```text +```txt mmuctf{4lw4y5_h1dd3n_1n5d3_m3} ``` @@ -108,13 +108,13 @@ mmuctf{4lw4y5_h1dd3n_1n5d3_m3} The provided file is an ELF executable binary. -```sh +```zsh ┌──(mockingspectre㉿blackout)-[~/ctf/mmuctf2025] └─$ file revealme revealme: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d8546bb2c10c0226384fb2771684af9bc150b55e, for GNU/Linux 3.2.0, stripped ``` -```console +```zsh ┌──(mockingspectre㉿blackout)-[~/ctf/mmuctf2025] └─$ checksec --file=revealme RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE @@ -172,7 +172,7 @@ Opening it with Binary Ninja gives us a quick win: Flag: -```text +```txt mmuctf{r3v3rs1ng_st4rt3r} ``` @@ -183,14 +183,14 @@ mmuctf{r3v3rs1ng_st4rt3r} The provided app is an Android APK. Let's fire up jadx-gui. The package name is `com.example.blink`. There is an interesting class `r2d2`. In the onCreate method, there is an image string variable that seems to contain base64 image data. -```terminal +```zsh ┌──(mockingspectre㉿blackout)-[~/ctf/mmuctf2025] └─$ cat output.txt | base64 -d > decoded_image.png ``` flag: -```text +```txt CTF{PUCKMAN} ``` @@ -202,7 +202,7 @@ Some people still think locks are optional on digital doors.* The provided file was a network capture pcap file. For people who don't know, pcap (a packet capture) consists of an application programming interface (API) for capturing network traffic.The challenge title and filename hint at unencrypted traffic. Open up Wireshark and apply an HTTP filter. There is an HTTP stream that leaks the flag: -```text +```txt mmuctf{plaintext_login_leak} ``` @@ -229,21 +229,21 @@ Interrupts happen whenever you press a key or click a button, anything that "int Creating a filter to list all interrupt communication with non-empty 8 bytes -```text +```txt usb.transfer_type == 0x01 ``` -```text +```txt usb.transfer_type == 0x01 && usb.dst == "host" && !(usb.capdata == 00:00:00:00:00:00:00:00) ``` -Crafting a tshark command to get the leftover capture data for the above filters and redirect it into a text file +Crafting a tshark command to get the leftover capture data for the above filters and redirect it into a file -```text +```zsh tshark -r log.pcap -Tfields -Eseparator=, -e thekey.pcapng -Y 'usb.transfer_type == 0x01 && usb.dst == "host" && !(usb.capdata == 00:00:00:00:00:00:00:00)' | sed 's/://g' > usb.capdata ``` -```terminal +```zsh ┌──(mockingspectre㉿blackout)-[~/ctf/mmuctf2025] └─$ tshark -r thekey.pcapng -Tfields -Eseparator=, -e usb.capdata -Y 'usb.transfer_type == 0x01 && usb.dst == "host" && !(usb.capdata == 00:00:00:00:00:00:00:00)' | sed 's/://g' > usb.capdata @@ -289,7 +289,7 @@ with open("usb.capdata") as file: Running the code outputs what seems to be Vim motions. I wasn't able to decipher this to a correct flag: -```text +```txt v i m diff --git a/content/posts/obsidian-sync.md b/content/posts/obsidian-sync.md index 9804ade..0e92847 100644 --- a/content/posts/obsidian-sync.md +++ b/content/posts/obsidian-sync.md @@ -1,7 +1,7 @@ +++ title = "Setting up Obsidian sync in Windows" description = "Syncing Obsidian in Windows with Windows Task Scheduler with git" -author = "Ian Andwati" +author = "mockingspectre" date = 2023-10-01 [taxonomies] tags = ["obsidian", "git","sync", "windows", "cron", "task scheduler", "powershell"] @@ -9,7 +9,7 @@ tags = ["obsidian", "git","sync", "windows", "cron", "task scheduler", "powershe Syncing Obsidian in Windows with Windows Task Scheduler and git - + [Obsidian](https://obsidian.md/) is a powerful note-taking and knowledge management tool that has gained a dedicated following among researchers, writers, and knowledge workers. To make the most of Obsidian, it's essential to keep your notes synchronized across devices and ensure your data is regularly backed up.Obsidian is the private and flexible writing app that adapts to the way you think. diff --git a/content/posts/semantic-version-and-conventional-commits.md b/content/posts/semantic-version-and-conventional-commits.md index fb85220..1db3692 100644 --- a/content/posts/semantic-version-and-conventional-commits.md +++ b/content/posts/semantic-version-and-conventional-commits.md @@ -2,14 +2,14 @@ title= "Semantic Versioning(SemVer) and Conventional Commits" description = "Adopting best practices in your git and build workflows." date= 2023-01-24T15:34:14.160Z -author = "Ian Andwati" +author = "mockingspectre" [taxonomies] tags= ["git", "semver","workflow", "conventional commits"] +++ Adopting best practices in your git and build workflows. - + # What is Semver? diff --git a/content/posts/subresource-integrity.md b/content/posts/subresource-integrity.md index 6bb8593..c530274 100644 --- a/content/posts/subresource-integrity.md +++ b/content/posts/subresource-integrity.md @@ -2,14 +2,14 @@ title= "Subresource Integrity" description = "Understanding Subresource Integrity" date= 2023-04-29 -author = "Ian Andwati" +author = "mockingspectre" [taxonomies] tags= ["subresource integrity", "csp", "cors"] +++ Understanding Subresource Integrity - + In my junior year while I was learning HTML and CSS I got to use the Bootstrap css library.The easiest way to obtain the files was from a Content Delivery Network(CDN). I could see links such as: diff --git a/content/posts/utterances-comments.md b/content/posts/utterances-comments.md index 8e16c8d..8b2e7c9 100644 --- a/content/posts/utterances-comments.md +++ b/content/posts/utterances-comments.md @@ -1,7 +1,7 @@ +++ title = "What say you?" description = "Adding a comment system by utterances" -author = "Ian Andwati" +author = "mockingspectre" date = 2023-08-24T15:34:14.160Z [taxonomies] tags = ["blog", "utterances"] @@ -9,7 +9,7 @@ tags = ["blog", "utterances"] Free speech enhanced - + There is no point in writing online if your readers cannot provide feedback for your writings. You might as well be shouting at a void. My ideal commenting system has to be free, open source and should not be a hassle to setup. Luckily, [utterances 🔮](https://github.com/utterance/utterances) checks all of these conditions diff --git a/content/posts/vuejs-tailwind.md b/content/posts/vuejs-tailwind.md index 4f7c8c6..e66cf1e 100644 --- a/content/posts/vuejs-tailwind.md +++ b/content/posts/vuejs-tailwind.md @@ -1,14 +1,13 @@ +++ title = "Configure Vue.js app With Tailwind CSS" description = "Tailwindcss in vuejs " -author = "Ian Andwati" +author = "mockingspectre" date = 2021-06-12 [taxonomies] tags = ["javascript", "vuejs" , "tailwindcss"] +++ A guide on how to use [Tailwind CSS](https://tailwindcss.com/) in your Vue project. - >**Note** > This article was originaly published on my old medium blog. I moved it here for archival purposes.