Pinned Tweet
Done with exams.
Starting my 200 Days of Offensive Security.
Goals:
→ Level up in Web & API Security
→ Build strong foundations in Pentesting (Including IoT, AD & Binary Exploitation)
→ Earn practical certs that prove my skills
Moyin retweeted
WEEK 1 FORGE CHAMPION 🔥🎊.
Congrats to @RaifuMutmohinat for topping the CYBERFORGE Week 1 Quiz with 21,760 points!
Who's taking the crown in Week 2?
Learn. Build. Collaborate. Grow.
#CYBERFORGE #ForgeChampion
Moyin retweeted
THE CYBERFORGE is here!
Join our first-ever onboarding session and discover a community for cybersecurity learners, enthusiasts, and professionals.
🗓 Sept 19 | 🕗 8 PM
xitter.gq/i/spaces/1RJjpbWjvzvKw
10/200
- Continued Internal Network Pentesting. Learned new tools like Masscan, scanning from within Metasploit, and went deeper with Nmap scans.
- Didn’t do much today because I was working on a hackathon project with @samkieldev, Also… secretly building up a new skill.
9/200
- Completed the External Network Penetration Testing module, learning tools and techniques such as WMAP, ARP Scan, Fping, targeted port scanning, and vulnerability research using Nmap NSE and SearchSploit.
- Began the Internal Network Penetration Testing module.
8/200
- Actively used Maltego to perform OSINT.
- Used SEToolkit’s Credential Harvester in a controlled lab to clone and test a login page I created, successfully capturing submitted credentials.
- Completed the External Network Penetration Testing module.
Day 6/200
- Built and validated a C2 infrastructure using Covenant.
- Simulated a red-team engagement with Kali Linux as the operator environment and Windows as the target.
- Successfully established C2 communication and validated the end-to-end workflow in the lab.
Day 4 & 5/200
- Continued the CWES path, completing the remaining XSS Discovery modules, automation, and phishing.
- Completed OSINT modules, exploring tools like Maltego, FOCA, and Pentmenu.
- Still building a DNS-based C2 server using Covenant as the C2 interface.
I’ll be doing a demo of everything I’ve learnt so far tomorrow. For now, I’m just touching the general surface to get a broader view. In a couple of days, I’ll be back on the CWES path and working my way up to CRTA.
Day 3/200
- Focused on Initial Access, Weaponization & Delivery.
- Learned about SPF, DKIM, DMARC, phishing, pretexting, HTML Smuggling & Living off the Land.
- Studied Windows/Linux persistence, including Startup folders, Registry Run Keys, Logon Scripts, Cron Jobs & SSH keys.
Day 2/200
- Learned to build resilient C2 infrastructure with Covenant.
- Explored detection evasion using redirectors, CDN/domain fronting, and web-categorized domains in sectors like healthcare and finance for payload delivery.
Day 1/200
- Started a Red Teaming course to broaden my understanding of OffSec, Covered RT methodologies, MITRE ATT&CK, Kill Chains, Recon, C2 infrastructure, and weaponization (14.3%).
- Warmed up by revisiting my notes from HTB’s CWES path and practicing on vulnerable sites.
How I Found 2 Critical Vulnerabilities in One of Nigeria's Largest Institutions
mature-brand-6cc.notion.site…
Moyin retweeted
Yay, I was awarded a total of $5,500 in bounties on @Hacker0x01! hackerone.com/eliteoffensive
Vulnerabilities Found:
1. Privilege Escalation (Trial User → Platform Admin)
1. While reading the site's JavaScript files, I found an API endpoint and noticed it accepted an "author" parameter in the request body.
2. The JS hinted that the "author" value was used to identify who the request belonged to — and that this value needed to be an admin's email for certain actions.
3. I collected 15–20 employee emails through public sources (OSINT).
4. I tested them one by one as the "author" value. One matched a platform admin account, and that request was accepted.
5. Using that admin's email as "author" along with my own account ID, I changed my account "plan" from "trial" to "internal". The request went through, and my role was updated.
6. Root cause: the endpoint was authorizing the request using a value from the request body instead of the role from the user's authenticated session.
2. SSRF → Cloud Metadata Credential Exposure
1. The app had a feature that fetched user-supplied URLs from the server side.
2. Confirmed by pointing it at a public echo service — the response showed a cloud server IP, not mine. The server was making the request.
3. The URL filter blocked the metadata service IP in its standard dotted form, but didn't normalize alternate representations. Converting the same IP to its decimal form bypassed the filter cleanly.
4. From there, the standard two-step metadata flow worked: first request returned a session token, second request used that token to return temporary instance role credentials.
5. Root cause: block-list URL filtering without IP normalization. A single canonicalization step on the resolved address would have caught this.
3. IDOR Exposing 285,000+ Customer Invoices
The invoice download endpoint used sequential IDs with no ownership check. Changing the ID returned other customers' invoices.
4. IDOR Enabling Cross-Tenant Audit Log Manipulation
A "log move" endpoint trusted client-supplied IDs, which allowed moving log entries across tenant boundaries and tampering with audit history.
5. Unauthenticated Path Traversal
A public endpoint accepted file paths without sanitization, allowing partial file reads across the platform with no authentication required.
Key lessons:
→ Never authorize based on request-body fields. Use the session/JWT role.
→ URL-fetch features need allow-lists, and must normalize alternate IP forms.
→ Sequential IDs are fine; missing ownership checks are not.
→ "Unauthenticated" doesn't mean "untrusted input is safe."
#bugbounty #securityresearcher #ethicalhacker #cybersecurity #vulnerability #penetrationtesting #securityaudit #digitalsecurity #tech #innovation #hackerone #freelance #freelancer #pentester #ssrf #idor #privilegeescalation #pathtraversal #appsec #infosec #TogetherWeHitHarder #bugbountytips
For people who missed @NahamSec latest vid - youtube.com/watch?v=kujCmXEL…
here's a summary: mature-brand-6cc.notion.site…

























