Skip to content

TrebledJ/ualist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ualist

Find and retrieve lists of user agents.

See it live: https://app.trebledj.me/uagen/

What is this?

This tool is used to generate and browse random user agents. This is useful for web developers, (ethical) hackers, and security researchers.

Servers may respond differently depending on the user agent. A mobile device may be served smaller assets. An unsupported browser may be given an error. A scripting tool may be flagged as a bot and served status code 418. Fishing out such responses is useful during penetration tests.

Due to the nature of the generation algorithm, synthesised agents may not necessarily reflect actual agents, only mimicing in appearance. This means this tool may generate non-existent version numbers, build numbers, etc.

Run Locally

git clone https://github.com/TrebledJ/ualist
npm install
npm run dev

Browse to http://localhost:8000/test.html.

Why?

Quite simply, I wanted a down-to-earth, feature-first, no-ads tool for generating and browsing user agents. During my pentesting engagements, I've encountered websites which offer no response to a minimal HTTP request, but return a full web page when provided a user agent. Sometimes any agent is fine, but sometimes a specific one is needed (e.g. Safari on iOS). This explains the need for enumerating sites with different agents.

Most other online solutions didn't work for me, were too simplistic, or full of ads. I also wanted a randomisation factor for better opsec, to avoid limiting myself to a few hard-coded user agents which could be easily blocked (assuming IP rotation is used). Hence, I decided to build this.

But truthfully, I also wanted to scratch my early 2025 programming itch by picking up technologies such as the Elm Programming Language and TailwindCSS. And this project was simple enough to give it a go.

Credits

Big thanks to UAParser.js for their awesome library and tests.

Honorable mentions:

Roadmap

  • [code] refactor button component + css
  • [ui] Fancy (switchable?) theme
  • [code] [perf] Elm optimisations
  • [fix] [ui] push sidebar buttons outward when open
  • [perf] efficient table rendering and scrolling for large datasets
  • [feat] save settings through URL fragment, so that users can come back to the same settings when sharing a link or bookmarking