~/talk

Prepare(): Introducing Novel Exploitation Techniques in Wordpress

links:none on file
slides:none on file

WordPress powers ~30% of sites and WooCommerce has ~2.3M installs so a core design choice matters: a custom prepared-statement layer enables a double prepare SQL injection (patched by replacing % with a 66 character random string), and caching serialized WP_Query objects enables a crafted mismatch of string lengths that becomes a PHP object injection leading to authenticated (and in some plugins unauthenticated) remote code execution; demos show exploitation working end to end.

AI-written summary · about

  1. 0:00Introduction
  2. 0:42About me
  3. 1:24What is WordPress
  4. 2:30Installing Plugins
  5. 3:12Overview
  6. 3:41Background
  7. 4:44Medicals
  8. 5:27Custom Prepared Statements
  9. 7:05Exploit Technique 1
  10. 10:09Exploit Technique 2 Demonstration
  11. 10:56WordPress Patch
  12. 12:42Second Exploit Technique
  13. 15:10Recap
  14. 16:47Exploit 2 WooCommerce
  15. 22:41Exploit 6 Wordpress
  16. 25:23Closing Words
  17. 26:19Question
  18. 26:56How it works
  19. 27:42What the attacker does
  20. 28:58WordPress version
  21. 29:34Advice to plugin authors
  22. 30:57Will there be a prepared statement
  23. 32:00Is there a safe way to use that caching technique
  24. 32:48How have you found the experience working with different plugin teams
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.