mirror of
https://github.com/andwati/andwati.com.git
synced 2026-10-18 01:12:53 +00:00
edited blogs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
## TODO
|
||||
# TODO
|
||||
|
||||
- [ ] create new post script
|
||||
- [ ] add google analytics
|
||||
|
||||
@@ -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.
|
||||
+1
-5
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
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).
|
||||
You can subscribe to the site's RSS feed at [https://andwati.xyz/rss.xml](https://andwati.xyz/rss.xml).
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -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"]
|
||||
+++
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
# Heavy Lifting
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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**.
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
+18
-18
@@ -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 `<!--bW11Y3Rme3dlbGNvbWVfZmxhZ19hZGlvc19NdWNoQGNob30= -->`
|
||||
|
||||
```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, <https://wulfsige.com/crypto/> and <https://holloway.nz/steg/> 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 <https://imagecolorpicker.com/> 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
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
[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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
# What is Semver?
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
<!-- more -->
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
<!-- more -->
|
||||
|
||||
>**Note**
|
||||
> This article was originaly published on my old medium blog. I moved it here for archival purposes.
|
||||
|
||||
Reference in New Issue
Block a user