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!
company:support and company:operations. company JWT scope! When looking back to the JavaScript, there were several API calls for employees only. Using these with our new scope resulted in compromise of the application!SameSite=Lax. form-action Content-Security Policy (CSP) directive. On Chromium based browsers, the directive is even enforced on redirects. By using this, we can now handle the different options (redirect & top level navigation), where the redirect can be handled by the securitypolicyviolation event, multiple times. ethereum object was not in the page. But, by sending the SVG with an iFrame in the middle of it the ethereum object will be loaded. This now allows for the usage of the plugin APIs. tty_struct. This structure contains fields used for job control features of terminals. pgrp points to the foreground process group of the terminal. The session field points to the session associated with the terminal. Both of these fields do not point to the process/task directly though, a pid represents the numeric value of the process. tiocspgrp IOCTL. The member on the terminal side would get locked. However, this lock was taken on the tty. As a result, by making a call on both side of the pseudoterminal, a race can be made on the should be locked object. pagetable. This is useful because we can manually give ourselves access to the .text section of a setuid binary. get_pid function to increment the refcount of the object itself. Using this, we can add arbitrary amounts to the address. On the page tables, this can be used to add flags that should not be set. It should be noted this bypassed ASLR entirely because of the increment primitive. GND/TX. These may be debug headers that could be useful later on. Further onto the PCB, they found an SPI flash chip that likely has firmware on the device, since it is the only non-volatile chip on the board. flashroom tool. The connection to the SPI chip uses an alligator clip. Using binwalk and strings, they were able to reverse engineer how the device stores the files and how it works.FEL mode can be triggered by holding certain IO lines on boot. They found out that by holding the volume down button, FEL mode was advertised over the USB interface. I assume they just tried different things to figure out the volume down. FEL interface allows for the flash to be rewritten and dumped. At this point, more software reverse engineering needs to be done in order to add our own ROMs to the board. Hurray! There's a whole slidedeck for this with more details at here.float type in many languages. The format for a floating point number is much more complicated than the integer format because of the sheer volume of numbers it can represent.
(1.0 + mantissa-field / 0x800000) * 2^(exponent-field-127)
. From this, we use the sign bit to make this a positive or negative number.
When decoding the format, there is an implied leading 1 in front of the mantissa field if the value is between -126 and 127. if the value is -126, then do not add the leading one. ion_buffer_kmap_get(), which increments a buffer's reference counter and calls a heap specific memory map function. DMA_BUF_IOCTL_SYNC can arbitrary increment or decrement the reference counter for the shared buffer. This reference counting issue can lead to a malicious user triggering a use after free.