FileMaker Server Admin Console: Access and Role Restriction Issues
Description of the issues I found in the implementation of various Admin Console restriction settings
Description of the issues I found in the implementation of various Admin Console restriction settings
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...
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.
My notes of building a computer based on the 6502 microprocessor following Ben Eater’s design.
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...
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 ...
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 ...
How to get current readings from your Aranet4 CO2 monitor
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...
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...
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...
Tutorial about monitoring FileMaker scheduled scripts for uptime
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...
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.
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.
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...
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...
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
I was working with a fairly simple Dockerfile, defining an entrypoint and always got a “not found” error when trying to run the container.
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
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.
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...
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.
When searching for partial strings in MySQL with LIKE you will match case-insensitive by default*.
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...
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...
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 :-)
Have you ever gotten the following error after trying to encrypt your FileMaker databases?
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...
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...
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.
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...
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).
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
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.
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
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.
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...
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...