Bypassing regular expression checks with a line feed
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
Write-up of “Buff” from Hack The Box
Write-up of “Tabby” from Hack The Box
Write-up of “Fuse” from Hack The Box
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
How unpickling untrusted data can lead to remote code execution.
Write-up of “Bart” from Hack The Box
Write-up of “Kotarak” from Hack The Box
Write-up of “TartarSauce” from Hack The Box
Write-up of “Cronos” from Hack The Box
Write-up of “Netmon” from Hack The Box
Write-up of “Networked” from Hack The Box
Write-up of “Jerry” from Hack The Box
When searching for partial strings in MySQL with LIKE you will match case-insensitive by default*.
Micro tutorial: SQL select the count of related records and sort by it.
Description of the issues I found in the implementation of various Admin Console restriction settings
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Back in the dark ages the FileMaker Server admin console (then Java Web Start) allowed you to remotely upload new fmp12 files to the server. For some reason ...
Tutorial about monitoring FileMaker scheduled scripts for uptime
When debugging code that integrates with the Claris FileMaker Data API, it is sometimes helpful to trace a request from your app all the way to the code of t...
Description of a XXE vulnerability in the Claris FileMaker Platform
Have you ever gotten the following error after trying to encrypt your FileMaker databases?
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
This is an old post. You may also be interested in accessing your FileMaker database via the new Data API. I wrote a Python wrapper to make it easier: python...
My notes of building a computer based on the 6502 microprocessor following Ben Eater’s design.
How to get current readings from your Aranet4 CO2 monitor
I recently bought an Intel NUC8i7HVK to work as an ESXi host. In this post I walk you through the process of installation and initial setup.
A couple of months ago I built a JavaScript application that allows adding points and labels to locations on a building floorplan. The whole canvas (not HTML...
Logarithms are widely used in computer science (e.g. for algorithm analyses, floating point number limitations, scaling data, feature transformations). Not c...
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
When searching for partial strings in MySQL with LIKE you will match case-insensitive by default*.
Today I needed to debug a scheduled script and test its behavior when run in the Windows Local System account instead of my regular domain user’s (this was o...
When trying to read an Excel file into a Pandas DataFrame gives you the following error, the issue might be that you are dealing with a password protected Ex...
Entering a long shell command and then moving the cursor around to correct parts of it always felt a bit clunky to me. I remembered some of the <ctrl>/...
Let’s say we have two integer NumPy arrays and want to count the number of elementwise matches.
Micro tutorial: SQL select the count of related records and sort by it.
Micro tutorial: select rows of a Pandas DataFrame that match a (partial) string.
I was recently asked if it’s possible to post a message to a Slack channel whenever the state of a monitor on allgood.systems changes (for example, a web ser...
Since the launch of allgood.systems you were able to monitor if your background jobs, scheduled tasks, cron jobs, etc. were running whenever you expected the...
Back in the dark ages the FileMaker Server admin console (then Java Web Start) allowed you to remotely upload new fmp12 files to the server. For some reason ...
Tutorial about monitoring FileMaker scheduled scripts for uptime
TL;DR Want to monitor your websites or get notified when your cron jobs or scheduled tasks are not running when they are supposed to run? Check out https://a...
After having neglected my blog over the last few months, I want to start posting more frequently again (New Year’s resolutions and all that).
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
How to get current readings from your Aranet4 CO2 monitor
Learn how to handle interrupts and other signals in Python.
Currently, there’s a lot of hype around the behavior of Python’s tarfile module for extracting archives. In short: tarfile will not sanitize filenames in arc...
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
How unpickling untrusted data can lead to remote code execution.
If you are getting UnicodeErrors when reading/manipulating files using a Python script launched by a LaunchAgent or crontab, the problem might lie in the “cu...
Recently, I wanted to watch a couple of log files for new entries and have them sent to an http endpoint for collection and later analysis. I did a quick res...
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
When trying to read an Excel file into a Pandas DataFrame gives you the following error, the issue might be that you are dealing with a password protected Ex...
Tutorial on creating Bokeh plots with an AJAX data source, served from an existing Flask app.
Logarithms are widely used in computer science (e.g. for algorithm analyses, floating point number limitations, scaling data, feature transformations). Not c...
Let’s say we have two integer NumPy arrays and want to count the number of elementwise matches.
Tutorial on setting up your Flask application to run on macOS with WSGI
Micro tutorial: select rows of a Pandas DataFrame that match a (partial) string.
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
Today I was working with the MNIST handwritten digits data and wanted to display a few images in a Jupyter notebook. After looking at PIL, then Pillow, I fou...
While searching for ways to debug code in a Jupyter notebook, I found a lot of outdated posts. So I decided to quickly write up my findings.
AWS Lambda is Amazon’s “serverless” compute platform that basically lets you run code without thinking (too much) of servers. I used Lambda in the past, thou...
The following code snippets should serve as an (incomplete) cheat sheet for accessing NumPy arrays. All examples expect an import numpy as np.
This is an old post. You may also be interested in accessing your FileMaker database via the new Data API. I wrote a Python wrapper to make it easier: python...
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
Description of the issues I found in the implementation of various Admin Console restriction settings
An exploration of the fmp12 file format and account and password storage
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Say you want to allow a non-root user on Linux to execute a couple of scripts as root or another user with more privileges. A common way of doing this is to ...
Currently, there’s a lot of hype around the behavior of Python’s tarfile module for extracting archives. In short: tarfile will not sanitize filenames in arc...
I recently came across an nginx server that had a vulnerable alias configuration which allowed anyone to read files outside the intended directory. In the fo...
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
Writing data to the output buffer before deciding that the response to the current HTTP request should actually be a redirect (for example when an unauthenti...
Description of a XXE vulnerability in the Claris FileMaker Platform
A couple of days ago I took the exam for the CRTP certification by Pentester Academy. In this review I want to give a quick overview of the course contents, ...
Write-up of “Buff” from Hack The Box
Write-up of “Tabby” from Hack The Box
Write-up of “Fuse” from Hack The Box
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
How unpickling untrusted data can lead to remote code execution.
Write-up of “Bart” from Hack The Box
Write-up of “Kotarak” from Hack The Box
Write-up of “TartarSauce” from Hack The Box
Write-up of “Cronos” from Hack The Box
Write-up of “Netmon” from Hack The Box
Using the Invoke-Command Cmlet, you can execute a script block in the security context of a different user.
Write-up of “Networked” from Hack The Box
Write-up of “Jerry” from Hack The Box
If you want to debug/inspect/analyze SSL/TLS traffic made by curl, you can easily do so by setting the environment variable SSLKEYLOGFILE to a file path of y...
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
Say you want to allow a non-root user on Linux to execute a couple of scripts as root or another user with more privileges. A common way of doing this is to ...
Learn how to handle interrupts and other signals in Python.
When you have set up your infrastructure with Terraform and then do any change to the user_data of a EC2 instance, Terraform will detect the change and gener...
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
I was working with a fairly simple Dockerfile, defining an entrypoint and always got a “not found” error when trying to run the container.
Use host.docker.internal to connect to your host machine.
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
Introduction on how to write infrastructure resource definitions and execute them using Terraform.
Using the Invoke-Command Cmlet, you can execute a script block in the security context of a different user.
I recently bought an Intel NUC8i7HVK to work as an ESXi host. In this post I walk you through the process of installation and initial setup.
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
A few examples on how to do http requests via PowerShell’s Invoke-Webrequest cmdlet.
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
If you are getting UnicodeErrors when reading/manipulating files using a Python script launched by a LaunchAgent or crontab, the problem might lie in the “cu...
Here is a little story about resolving an issue with a web site that turned out not to be an issue with a web site :-)
Today I needed to debug a scheduled script and test its behavior when run in the Windows Local System account instead of my regular domain user’s (this was o...
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
Entering a long shell command and then moving the cursor around to correct parts of it always felt a bit clunky to me. I remembered some of the <ctrl>/...
In a recent project I needed to anonymize IP addresses in tracking data. While masking a few bits from an IP address is not so interesting, it’s a good excus...
I recently had the problem of needing to establish a connection to a server behind a VPN that was in the same subnet as the network I was connecting from. Ev...
Tutorial on setting up your Flask application to run on macOS with WSGI
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
When debugging code that integrates with the Claris FileMaker Data API, it is sometimes helpful to trace a request from your app all the way to the code of t...
When you want to debug an application in an environment which is hard to replicate locally and/or you cannot install additional software on the machine it is...
A few examples on how to do http requests via PowerShell’s Invoke-Webrequest cmdlet.