termireum (@termireum) header
termireum (@termireum) profile picture
Joined June 2019
Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)Photo by termireum (@termireum)
Saya mendapatkan reward lebih dari 140 juta dari satu program bug bounty lokal. Ternyata masih ada perusahaan di Indonesia yang benar-benar peduli dengan masalah keamanan infrastruktur mereka.
In 2026, I made Rp. 140.000.000+ from a single bug bounty program. #bugbounty
7
2
24
2,612
I found a critical unauthenticated account takeover that let me log in as any customer on the platform. No password, no account of my own. It earned a $5,000 bounty. Quick context: the platform runs unattended devices, and those devices sign in with no human present. So instead of a password, each account has an "auto login key." A device presents the key and gets a session. The key is the credential. That design is fine right up until a key leaks. The chain came down to 3 things: - Keys are the credential: by design, holding an account's auto login key gets you a session for that account, no password. - Wildcard injection: the lookup endpoints ran input through a SQL `LIKE` query, so a single `%` let me pull any account's key out of the database. - No rate limiting: I could iterate the whole customer table and lift every key. Here's how I chained them: 1. Leak accounts with a wildcard The lookup took a `key` and found it in the database with a `LIKE` query. So I sent: `GET /autologin/lookup?key=%` Instead of one record, it returned matching accounts: user IDs, tenant IDs, emails. A single `%` dumped account rows. 2. Pull a victim's real key A second endpoint resolved a key to an account. Same flaw. I sent a wildcard plus an ID I'd just leaked: `POST /autologin/resolve?key=%` `{"user_id": {victim-id}, "tenant_id": {tenant-id}}` It handed back that victim's actual auto login key. 3. Trade the leaked key for a session The device endpoint does exactly what it's built to do: present a valid auto login key for an account, get a session token for that account. The catch is the key was the victim's, leaked in the steps above, and should never have been in my hands. `POST /autologin/devices` `{"user_id": {victim-id}, "key": "{victim-key}", ...}` It registered my device under the victim's account and returned a fresh session token for them. 4. Full takeover `GET /me` with that token returned the victim's full profile. PII, billing identifiers, all of it. No authentication, no account of my own, and no notification to the victim that a new device had appeared. The wildcard enumerated the entire customer table, there was no rate limiting, so this worked against every account on the platform at scale. #BugBounty tip: Any endpoint that takes a secret and looks it up is a candidate for wildcard injection. If `%` returns more than it should, it's a `LIKE` query and you can enumerate the table.
7
29
348
10,912
Gold Mine
One of the most critical vulnerabilities I’ve found in my bug bounty career! Critical bugs aren’t as hard as most people think—they’re out there, but they require focus and a bit of patience. At first, I thought I’d accessed data for 80,000 users, but later I discovered it was closer to one million. The data included phone numbers, usernames, and even passwords. More dangerous still: bank card details,all without any authentication. #Tip Add swagger/v1/swagger.json to your wordlist and try paths like: api[.]target[.]com/swagger/v1/swagger.json api[.]target[.]com/api/swagger/v1/swagger.json api[.]target[.]com/{Function}/api/swagger/v1/swagger.jsn E.G.: api[.]target[.]com/admin/api/swagger/v1/swagger.json api[.]target[.]com/login/api/swagger/v1/swagger.json api[.]target[.]com/users/api/swagger/v1/swagger.json Or Even : admin[.]target[.]com/api/swagger/v1/swagger.json swagger.json lists all API calls and their required parameters. Even if some endpoints say they require auth, some may not enforce it, leading to a massive impact. It can also help uncover IDOR cases. Never ignore swagger.json. Good luck. #CyberSecurity #InfoSec #RedTeam #BlueTeam #BugBounty #bugbountytips #bugbountytip #HackerCommunity #Bugcrowd
1
38
$15,000 Write-Up: Unauthenticated Temporal on a Yahoo News Cluster medium.com/@hi.david60/15-00…
11
72
4,131
I found a critical privilege escalation that took a brand new free trial account all the way to platform superadmin, with read access to every customer's data on the platform. It earned a $5,000 bounty. The chain came down to 3 things: - Mass assignment: a PUT endpoint let a user write their own `admin_permissions` field, including the superadmin flag. - MFA bypass: escalating to admin triggered MFA on login, but a separate "auto login" flow handed out session tokens with no MFA at all. - Broken tenant isolation: a superadmin token could read any user's data in any org on the platform. Here's how I chained all three together: 1. Escalate my own account As a new free trial user, I sent: `PUT /api/admin/{my-user-id}` `{"admin_permissions":"0000000f"}` The server accepted it. No check that I was already an admin. My account was now superadmin. 2. The MFA wall The moment I escalated, the backend started enforcing MFA on my logins: `POST /token` → MFA challenge Self-enrollment to MFA was disabled, so I couldn't even complete it. Dead end. Then I remembered the auto login flow. 3. Why that flow exists The dashboard has a feature for signing in unattended devices. Things that need a session but have no human to type a password (or MFA code). You generate an "auto login" key, a base64 blob of `{userId}:{tenantId}:{random}`, and the device authenticates itself, headless. MFA is skipped there by design, because there's nobody at the device to challenge. So I asked: what's stopping me from logging in as a "device" instead of a user? 4. Bypass MFA with the auto login flow Before escalating, I'd already generated an auto login key for my own account. I replayed it against the device login endpoint: `POST /autologin/devices` `{"access_key":"{my-key}", ...}` It returned a full session token. No MFA challenge, because this path was never meant to need one. And since my account was now superadmin, that token was a superadmin session. The order is the whole trick. First I created the device key, then I performed the escalation, then I logged back in through the device flow, bypassing MFA. The key was minted before the MFA wall went up, so it still worked after. 5. What this unlocked With that token: `GET /api/users/{any-user-id}` returned full PII for users in completely different orgs, not just mine. User IDs were sequential, so this exposed records across the entire platform. #BugBounty tip: When an app adds a second auth factor, check whether every token issuing path enforces it. One legacy or "convenience" flow, like auto login, device pairing, or an API key, that skips MFA can undo the whole thing. And always ask: can I grab a credential before a security boundary goes up, then reuse it after?
7
37
2
336
11,654
Solid resource 😱 This is one of the most structured open-source prompt packs I’ve seen for bug bounty hunting! @mdp_sec broke down their entire workflow into 10+ reusable phases: → Recon & surface mapping → Authenticated access setup → Endpoint & vuln-class sweeping → Browser-based walkthrough → Critical-impact hunting → Triage, dedup & validation → Independent verification gates It’s Web2 focused, but the methodology is gold for anyone building AI-assisted security workflows. The evidence-first, phase-by-phase structure is exactly how you avoid hallucinated findings and actually produce reliable results: github.com/mdpsec/bug-bounty…
4
19
82
3,217
termireum retweeted
Memecoins are eventually gonna die out Once it happens 95% of the people on this app will be truly unemployed The trenches have become nothing but a casino ran by insiders And it’s only getting worse
289
79
49
1,428
74,984
Rarely I post bug bounty tips anymore but this small gem is unknown to most ;)
10
68
1
798
37,314
My First Article, if you like it retweet ♥, ill do more ♥
10
130
2
557
17,478
Closed source is dead. REA lets Claude Code or Codex take apart any app, all the way down to the binary, and explain exactly how a feature works. - Native apps, Electron apps, websites, APKs, firmware, even smart contract bytecode - Shows the evidence for every claim - Then builds its own version of the feature 25,000+ GitHub stars in a single day. 100% open-source. github.com/morluto/rea
170
713
145
7,908
945,624
A collection of 23,625 smart-contract security audit findings (bug reports), each with a title, description, proof-of-concept code, recommendation, and severity rating. huggingface.co/datasets/Zaev…
2
274
A €5,000 SQL injection in a SOAP integration oxship.github.io/writeups/so… #bugbounty #writeups #infosec
🤖 Made with AI
2
39
385
15,062
reported a chrome fullchain (web -> shell) on pixel 10 to google. got a 9.6 cve (cve-2026-87464) and a fix in chrome. now they bend the rules and refuse to pay the fullchain bonus bc one of the vulns in the chain was an unpatched nday. total payout: $2.5k. despite cve + shell :|
91
167
31
2,997
273,350
termireum retweeted
DORK: intext:@"yahoo|gmail|outlook|hotmail".com (filetype:xls OR filetype:csv OR ext:xlsx OR ext:txt OR ext:sql) site:*.gov ---------------------------------------------------------- Not gonna lie, this single google dork I made has given me SO much exposed PII from self-hosted programs and some .gov, .edu, .int and .mil domains. Use it for BBP targets. If it helps you find something interesting, come back here on X and thank me. Also, make sure you run this on Bing. Google has fixed/changed some search operators so it will not work.
15
93
5
690
34,465
curl -s -X GET https://target-com/xxx/wc/v3/payment_gateways \ -u "ck_xxxxxxxxxxxxxxxxxxxx:cs_xxxxxxxxxxxxxxxxxxxx" | jq #bugbountytips
16
833