Skip to content

Commit e7e6569

Browse files
authored
Update index.html
1 parent 19b6f93 commit e7e6569

File tree

1 file changed

+73
-4
lines changed

1 file changed

+73
-4
lines changed

index.html

Lines changed: 73 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,29 @@
179179
}
180180

181181
.skill-item:hover { transform: translateY(-2px); border-color: var(--accent); }
182+
183+
.writeup-content {
184+
background: var(--bg-secondary);
185+
padding: 2rem;
186+
border-radius: 8px;
187+
border: 1px solid var(--border);
188+
animation: fadeIn 0.5s ease-in-out;
189+
}
190+
.back-btn {
191+
display: inline-block;
192+
margin-bottom: 1rem;
193+
background: var(--bg-primary);
194+
color: var(--accent);
195+
padding: 0.5rem 1rem;
196+
border-radius: 6px;
197+
text-decoration: none;
198+
border: 1px solid var(--border);
199+
transition: all 0.2s;
200+
}
201+
.back-btn:hover {
202+
background: var(--accent);
203+
color: #fff;
204+
}
182205
</style>
183206
</head>
184207
<body>
@@ -301,7 +324,7 @@ <h3 style="margin-top: 2rem;">Contact</h3>
301324
<p>Email: <a href="mailto:srishtirathi@gmail.com" style="color: var(--accent); text-decoration: none;">srishtirathi@gmail.com</a></p>
302325
</main>
303326

304-
<!-- WRITEUPS -->
327+
<!-- WRITEUPS LIST -->
305328
<main id="writeups" class="page-section">
306329
<h2 style="font-size: 2rem; margin-bottom: 2rem;">Security Writeups</h2>
307330
<div class="timeline">
@@ -311,7 +334,7 @@ <h2 class="post-title">DOM XSS: My Learning Journey</h2>
311334
<p class="post-description">Completed all Burp Suite DOM XSS labs, analyzed real-world cases, and explored detection using DevTools and MutationObservers.</p>
312335
<div class="tags"><span class="tag">XSS</span><span class="tag">Security</span><span class="tag">Bug Bounty</span></div>
313336
<div class="project-links" style="margin-top: 1rem;">
314-
<a href="#" class="btn">Read Writeup</a>
337+
<a href="#" class="btn read-writeup" data-id="domxss">Read Writeup</a>
315338
</div>
316339
</article>
317340

@@ -321,7 +344,7 @@ <h2 class="post-title">Exploring Bug Bounty Hunting on GitLab</h2>
321344
<p class="post-description">My week-long bug bounty practice on GitLab — the methods, payloads, and lessons learned from real-world testing.</p>
322345
<div class="tags"><span class="tag">Bug Bounty</span><span class="tag">Web Security</span></div>
323346
<div class="project-links" style="margin-top: 1rem;">
324-
<a href="#" class="btn">Read Writeup</a>
347+
<a href="#" class="btn read-writeup" data-id="gitlabbounty">Read Writeup</a>
325348
</div>
326349
</article>
327350

@@ -331,12 +354,20 @@ <h2 class="post-title">SQL Injection Deep Dive</h2>
331354
<p class="post-description">Comprehensive analysis of SQL injection techniques, from basic UNION attacks to advanced blind SQL injection methodologies.</p>
332355
<div class="tags"><span class="tag">SQL Injection</span><span class="tag">Web Security</span><span class="tag">Pentesting</span></div>
333356
<div class="project-links" style="margin-top: 1rem;">
334-
<a href="#" class="btn">Read Writeup</a>
357+
<a href="#" class="btn read-writeup" data-id="sqlinjection">Read Writeup</a>
335358
</div>
336359
</article>
337360
</div>
338361
</main>
339362

363+
<!-- SINGLE WRITEUP VIEW -->
364+
<main id="single-writeup" class="page-section">
365+
<a href="#" class="back-btn" id="backToWriteups">← Back to Writeups</a>
366+
<div id="writeupContainer" class="writeup-content">
367+
<!-- Content dynamically loaded here -->
368+
</div>
369+
</main>
370+
340371
<footer>
341372
<p>© 2025 Srishti Rathi. All rights reserved.</p>
342373
<div class="social-links">
@@ -351,6 +382,29 @@ <h2 class="post-title">SQL Injection Deep Dive</h2>
351382
document.addEventListener('DOMContentLoaded', function() {
352383
const navLinks = document.querySelectorAll('.nav-link');
353384
const pageSections = document.querySelectorAll('.page-section');
385+
const writeupContainer = document.getElementById('writeupContainer');
386+
const backToWriteups = document.getElementById('backToWriteups');
387+
388+
const writeups = {
389+
domxss: `
390+
<h2>DOM XSS: My Learning Journey</h2>
391+
<p>In this writeup, I explored DOM-based Cross-Site Scripting (XSS) vulnerabilities. These occur when untrusted data is written to the DOM without proper sanitization.</p>
392+
<p>I completed all Burp Suite DOM XSS labs and analyzed multiple payloads using <strong>DevTools</strong> and <strong>MutationObservers</strong> to trace JavaScript execution flows.</p>
393+
<p>Key takeaways included understanding sinks like <code>innerHTML</code>, <code>document.write</code>, and <code>eval()</code>—and the importance of context-aware encoding.</p>
394+
`,
395+
gitlabbounty: `
396+
<h2>Exploring Bug Bounty Hunting on GitLab</h2>
397+
<p>During my week-long GitLab bug bounty practice, I focused on testing for injection, IDOR, and XSS vulnerabilities across endpoints.</p>
398+
<p>I learned how to efficiently use <strong>Burp Suite</strong> for intercepting API calls, and how GitLab’s bounty structure encourages detailed proof-of-concept submissions.</p>
399+
<p>This helped me refine my reconnaissance strategy and improved my payload crafting skills for web security testing.</p>
400+
`,
401+
sqlinjection: `
402+
<h2>SQL Injection Deep Dive</h2>
403+
<p>This writeup explores SQL Injection from fundamental UNION-based attacks to advanced Blind SQL Injection.</p>
404+
<p>Key methods studied: <strong>boolean-based</strong>, <strong>time-based</strong>, and <strong>out-of-band</strong> injections.</p>
405+
<p>I also practiced exploitation using <code>sqlmap</code> and learned preventive coding practices using parameterized queries and ORM frameworks.</p>
406+
`
407+
};
354408

355409
function showPage(pageName) {
356410
pageSections.forEach(section => section.classList.remove('active'));
@@ -371,6 +425,21 @@ <h2 class="post-title">SQL Injection Deep Dive</h2>
371425
});
372426
});
373427

428+
// Read writeup click
429+
document.querySelectorAll('.read-writeup').forEach(btn => {
430+
btn.addEventListener('click', e => {
431+
e.preventDefault();
432+
const id = btn.dataset.id;
433+
writeupContainer.innerHTML = writeups[id] || '<p>Writeup not found.</p>';
434+
showPage('single-writeup');
435+
});
436+
});
437+
438+
backToWriteups.addEventListener('click', e => {
439+
e.preventDefault();
440+
showPage('writeups');
441+
});
442+
374443
window.addEventListener('popstate', () => {
375444
const hash = window.location.hash.slice(1) || 'home';
376445
showPage(hash);

0 commit comments

Comments
 (0)