<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jack Taylor</title><link>https://jacktaylor.tech/</link><description>Recent content on Jack Taylor</description><generator>Hugo</generator><language>en</language><managingEditor>jack@jacktaylor.tech (Jack Taylor)</managingEditor><webMaster>jack@jacktaylor.tech (Jack Taylor)</webMaster><lastBuildDate>Sun, 12 Apr 2026 00:47:49 +0900</lastBuildDate><atom:link href="https://jacktaylor.tech/index.xml" rel="self" type="application/rss+xml"/><item><title>How I found SQL injection on 100,000 WordPress sites</title><link>https://jacktaylor.tech/2026/04/how-i-found-sql-injection-on-100000-wordpress-sites/</link><pubDate>Sun, 12 Apr 2026 00:47:49 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2026/04/how-i-found-sql-injection-on-100000-wordpress-sites/</guid><description>&lt;p&gt;I recently reported an unauthenticated &lt;a href="https://en.wikipedia.org/wiki/SQL_injection"&gt;SQL injection&lt;/a&gt; in &lt;a href="https://www.relevanssi.com/"&gt;Relevanssi&lt;/a&gt;, a WordPress search plugin that was active on more than 100,000 sites. There were two things that made this bug especially fun to work on: first, a type confusion issue where input that only &lt;em&gt;looked&lt;/em&gt; like a numeric term ID could carry extra SQL with it, and second, an exploitation trick where one SQL injection payload was smuggled inside another in order to get around the limitations of the first query.&lt;/p&gt;</description></item><item><title>NahamCon 2022 CTF Write-up: Flaskmetal Alchemist</title><link>https://jacktaylor.tech/2022/05/nahamcon-2022-ctf-write-up-flaskmetal-alchemist/</link><pubDate>Sun, 01 May 2022 10:53:18 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2022/05/nahamcon-2022-ctf-write-up-flaskmetal-alchemist/</guid><description>&lt;p&gt;One of the most fun challenges in NahamCon 2022 was Flaskmetal Alchemist. This
is a medium web challenge that involves an SQL injection that is relatively
easy to spot, but tricky to exploit. I learned a few new things from this, so
hopefully this write-up will provide inspiration to all you reading this. In
this post I will walk you through my thought process and how I eventually
exploited the vulnerability.&lt;/p&gt;</description></item><item><title>Proxy OWASP ZAP through a VPS</title><link>https://jacktaylor.tech/2022/04/proxy-owasp-zap-through-a-vps/</link><pubDate>Sat, 02 Apr 2022 11:45:00 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2022/04/proxy-owasp-zap-through-a-vps/</guid><description>&lt;p&gt;If you do any kind of penetration testing or bug bounty hunting from your home
PC, then as a necessity you will be sending malicious-looking traffic to your
target. If your target happens to be protected by Akamai or CloudFlare, and you
don&amp;rsquo;t take any special precautions, then unfortunate things may happen.
Unfortunate, as in your home IP gets &lt;a href="https://www.doyler.net/security-not-included/akamai-internet-banned"&gt;blocked from half the sites on the
internet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To avoid this, you need to make your web traffic look like it came from a
different IP address than it actually did. This means using some kind of proxy
server. There are a few different ways you can do this, but my preferred way is
to use a virtual private server (VPS) rented out from a cloud provider.&lt;/p&gt;</description></item><item><title>100 Days of Machine Learning</title><link>https://jacktaylor.tech/2018/03/100-days-of-machine-learning/</link><pubDate>Wed, 21 Mar 2018 17:55:21 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2018/03/100-days-of-machine-learning/</guid><description>&lt;p&gt;When I started my first developer job last August, I made a promise to myself. Landing the job was the culmination of several years of hard work: learning Japanese, learning how to program, preparing for the &lt;a href="https://jacktaylor.tech/2017/03/introducing-the-information-technology-engineers-examination/"&gt;FE Exam&lt;/a&gt;, and learning how to job-hunt the Japanese way. In my new job I was working in a new environment, in a new industry, and in a second language. I knew it was going to take time to adjust. However, I also knew that once I had got over that initial hurdle it would be all too easy to just coast&amp;mdash;to learn just enough to do the job, but nothing more.&lt;/p&gt;
&lt;p&gt;My promise was this: after I had settled in to my job, I would continue to learn.&lt;/p&gt;</description></item><item><title>Installing Hugo on Fedora 25</title><link>https://jacktaylor.tech/2017/03/installing-hugo-on-fedora-25/</link><pubDate>Mon, 27 Mar 2017 11:08:35 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2017/03/installing-hugo-on-fedora-25/</guid><description>&lt;p&gt;For those not in the know, &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; is an amazing tool for building static websites&amp;mdash;including the one you&amp;rsquo;re reading right now. There are no RPMs available, though, so if you&amp;rsquo;re using &lt;a href="https://getfedora.org/"&gt;Fedora&lt;/a&gt; or another RPM-based Linux distro, then you might think you&amp;rsquo;re out of luck.&lt;/p&gt;
&lt;p&gt;In my case, when I saw that there were no Hugo RPMs, I looked to see if there were any unofficial ones. There were, but only for Hugo v0.16, and I needed v0.17 or later for the support for multilingual sites. So no luck there. Then I investigated installing it using &lt;a href="https://snapcraft.io/"&gt;snap&lt;/a&gt;, but Fedora doesn&amp;rsquo;t support snaps out of the box, and I&amp;rsquo;m still slightly skeptical of the idea of using snaps on my system. Then I looked into installing Hugo from source, but it requires &lt;a href="https://golang.org/"&gt;Go&lt;/a&gt; 1.8+, and Fedora 25 only has 1.7 in the official repositories. It was around this time that I started getting jealous of &lt;a href="https://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; users&amp;rsquo; ability to do a simple &lt;code&gt;sudo apt-get install hugo&lt;/code&gt;. Would I have to replace my OS or set up a virtual machine just to make my website?&lt;/p&gt;
&lt;p&gt;Thankfully, in the end, the solution was simple.&lt;/p&gt;</description></item><item><title>Introducing the Information Technology Engineers Examination</title><link>https://jacktaylor.tech/2017/03/introducing-the-information-technology-engineers-examination/</link><pubDate>Thu, 16 Mar 2017 19:55:21 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/2017/03/introducing-the-information-technology-engineers-examination/</guid><description>&lt;p&gt;In May last year I passed the Fundamental Information Technology Engineers Examination.&lt;/p&gt;
&lt;h4 id="the-what"&gt;The what?&lt;/h4&gt;
&lt;p&gt;The &lt;a href="https://www.jitec.ipa.go.jp/index-e.html"&gt;Fundamental Information Technology Engineers Examination&lt;/a&gt;, or FE for short. It&amp;rsquo;s the most rigorous and widely-taken IT exam that you&amp;rsquo;ve never heard of.&lt;/p&gt;
&lt;h4 id="go-on-then-why-have-i-never-heard-of-it"&gt;Go on, then. Why have I never heard of it?&lt;/h4&gt;
&lt;p&gt;Probably because it&amp;rsquo;s administered by a Japanese quasi-governmental organisation, in Japan, and it&amp;rsquo;s all in Japanese.&lt;/p&gt;</description></item><item><title>About me</title><link>https://jacktaylor.tech/page/about/</link><pubDate>Fri, 10 Mar 2017 22:33:37 +0900</pubDate><author>jack@jacktaylor.tech (Jack Taylor)</author><guid>https://jacktaylor.tech/page/about/</guid><description>&lt;p&gt;I am a software developer living in Sapporo, Hokkaido, Japan. My interests include Wikimedia, machine learning, and all things Python.&lt;/p&gt;</description></item></channel></rss>