|Hello, I'm a||developer.|
|human being named TJ.|
Nice to meet you.
At a glance
- Name: TJ Horner
- Work: Software Engineer at Twosense
- Location: Brooklyn, NY
- Projects: I've made lots
- Blog: I have one
- Résumé: I have that, too
- Text Me: 760-891-4685
- Other Places:
I volunteer for:
- CodeDay: A 24-hour event for students new to computer science
- Your event? I'm happy to help!
Some cool domains I own:
I am a Software Engineer at Twosense where I work on the platform and backend teams, working with everything from low-level Windows driver APIs to modern web apps.
I previously worked at MakerBot where I made projects that integrated their extensive line of 3D printers with web-based products to better serve their education and professional customers.
Not only do I work on projects at Twosense, but I have many personal projects listed below (and on GitHub). So check them out as well :)
ExpressPoll 5000 Hacking: I did some security research regarding the ExpressPoll 5000 done at DEF CON 25. It received some press coverage as well:
- Inverse: How a 16-Year-Old Hacked a Voting Machine This Weekend (archive)
- WIRED: To Fix Voting Machines, Hackers Tear Them Apart (archive)
- IB Times: Hackers break into US election machines in 90 minutes to show flaws in electronic voting (archive)
- The Hacker News: Hackers Take Over US Voting Machines In Just 90 Minutes (archive)
- Armstrong and Getty: (Segment from 8/2/2017)
In my free time, I like poking websites for security vulnerabilities. And, of course, I disclose them responsibly. Here's what I've found. This list may not be up-to-date, because, you know, responsible disclosure and all.
Environment Variable Leak on npm: Found a vulnerability in the npm internal API that leaked environment variables, including API keys and database passwords (Seriously, their Redis password used to be this-is-a-password-for-redis-and-it-is-a-secret-so-dont-share-it), on certain requests.
Cross-Site Scripting and Privilege Escalation on Big History Project:
When updating a user's profile, one could send arbitrary data to the server in the name fields,
and that is later shown on the website but isn't escaped, so you could put anything you want in
there. It is also shown and effective in the teacher's dashboard, so a student could technically
just XSS a teacher.
A certain exploit allows a student to gain access to the teacher dashboard, and do everything a teacher can do (enable tests/quizzes, view student scores, add/delete/edit students and classes, etc.) This is obviously really bad.