People often ask me "How did you learn how to hack?" The answer: by reading. This page is a collection of the blog posts and other articles that I have accumulated over the years of my journey. Enjoy!
BPF_RSH (unsigned right shift) function, it attempts to edit the dst_reg max/minimum values for writing. This verification process is flawed though! A wrongful value is used for the max/min shifts, allowing for the verification to be bypassed.libjpegXR. This is an obscure image format, which looked like a good attack surface. atoi. However, atoi will only validate the number if it is used at the beginning. This means that something like 1 hello would parse as the number 1. ^[0–9]*$, which says only numbers. However, this will match per line! Adding a newline into the could match for the first line, not the second, and still pass the check. According to the people at DayZeroSec, this is a fairly common issue. postMessage API for the parent frame to talk to the child YouTube frame. postMessage API. This data includes stealing you Watch Later videos, Liked Videos with no problem, because we can leak the playlist ID information based upon your account ID. cbBufLeft(size left in buffer). Because this wraps around to a very large number (when it overflows), this creates a buffer overflows on read/write operations after this point. With this overflow, we have a linear heap write/read. DLL, heap addresses and function pointers; the HGCMMsgCall was used to spray this. code leak from a function pointer in a VTable to break ASLR for the object. The heap leak required viewing two objects within a linked list in memory in order to understand their relative location in the heap. r8 register. kernel.dll in order to call WinExec(). imgProcess.cfm (with the auth bypass described above), it was possible to upload a file to any location because of a directory traversal vulnerability. However, this is NOT as simple as it seems! The firewall blocks the string ../ by default. imgProcess.cfm, which was in older versions. So, another vulnerability had to be found in order to make this work. ext.applications.upload.cfm had another arbitrary file upload, with the same auth bypass as before. This endpoint accepts .lex files, which are just zip files for lucee extensions. EFAULT status code should be returned. dmsg (kernel debug messages) will just output the kernel stack addresses. So, at this point, we have a kernel address stack leak and an arbitrary read/write primitive into the kernel. This looks good enough to me!dmesg leak, SerenityOS made a few changes. First, running dmesg now requires a root account. Furthermore, the author is attempting to find all memory addresses leaks in dmesg and leaking these. However, there is value in having addresses available for the users for debugging. So, if root, you can probably leak kernel space memory still.