<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Shivasurya</title><link>http://shivasurya.me/posts/</link><description>Recent content in Posts on Shivasurya</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 01 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://shivasurya.me/posts/feed.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-33186: Bypassing gRPC-Go Authorization with a Missing Slash</title><link>http://shivasurya.me/2026/04/01/cve-2026-33186-grpc-go-authorization-bypass/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2026/04/01/cve-2026-33186-grpc-go-authorization-bypass/</guid><description/></item><item><title>2025 Wrapped</title><link>http://shivasurya.me/2025/12/20/2025-wrapped/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/12/20/2025-wrapped/</guid><description>&lt;h3 id="2025-wrapped">2025 Wrapped&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Published 📰&lt;/p>
&lt;ul>
&lt;li>Sourcegraph Blog: &lt;a href="https://sourcegraph.com/blog/lessons-from-building-sherlock-automating-security-code-reviews-with-sourcegraph">Lessons from building Sherlock: Automating security code reviews with Sourcegraph&lt;/a>
&lt;ul>
&lt;li>Built AI security agent around 2024 and wrote a blog post about it.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Tried out &lt;a href="https://www.latent.space/p/willccbb">Multi-Turn Reinforcement Learning&lt;/a> for security vulnerability analysis using verifier framework.
&lt;ul>
&lt;li>Turns out it&amp;rsquo;s amazing and has lot of stuffs to explore and learn.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Shipped 🚀&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://codepathfinder.dev/secureflow-ai">Secureflow AI&lt;/a>, Autonoumous AI Agent for security vulnerability analysis
&lt;ul>
&lt;li>Published blog post on &lt;a href="https://codepathfinder.dev/blog/introducing-secureflow-cli-to-hunt-vuln">codepathfinder.dev&lt;/a>&lt;/li>
&lt;li>And it&amp;rsquo;s clear that &lt;a href="https://ampcode.com/how-to-build-an-agent">NO ONE HAS MOAT&lt;/a>, If any AI security vendor company shows flashy demo &amp;ldquo;How our AI Security engineer can do this &amp;amp; that&amp;rdquo;, remember, you can replicate the same by calling OpenAI, Claude API, or any other AI platform providers.
&lt;ul>
&lt;li>This includes AI SAST, AI Vulnerability detection, AI Appsec, AI Threat modeling, AI Penetration testing, AI Security Orchestration.&lt;/li>
&lt;li>All you need is good level of context engineering, memory, workflow setup, AI API calls.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://codepathfinder.dev/">Code-Pathfinder&lt;/a>, AI-Native static code analysis now has Python, Docker, Docker Compose support and open-sourced under AGPLv3 license&lt;/li>
&lt;li>Some Milestones &amp;amp; Metrics 📊
&lt;ul>
&lt;li>Code-Pathfinder &amp;amp; Secureflow AI
&lt;ul>
&lt;li>307 Monthly Active Users&lt;/li>
&lt;li>64 Weekly Active Users&lt;/li>
&lt;li>Started from zero half way through 2025 and grateful to achieve this number.&lt;/li>
&lt;li>Excited to see the growth in 2026&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Read 6 books 📚&lt;/p></description></item><item><title>Some thoughts around Django SQL Injection CVE-2025-64459</title><link>http://shivasurya.me/2025/11/07/django-sql-injection-CVE-2025-64459/</link><pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/11/07/django-sql-injection-CVE-2025-64459/</guid><description>&lt;h2 id="vulnerability-overview">Vulnerability Overview&lt;/h2>
&lt;p>Yesterday I came across this CVE-2025-64459 and I was bit skeptical about the severity of the issue as it was marked as critical. So I decided to do a deep dive into the issue and see if it was a real issue or not. Turns out it was a real issue only if you&amp;rsquo;re meeting the following conditions:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>You&amp;rsquo;re using Django Affected versions&lt;/p>
&lt;ul>
&lt;li>&lt;code>&amp;gt;= 5.2a1, &amp;lt; 5.2.8&lt;/code>&lt;/li>
&lt;li>&lt;code>&amp;gt;= 5.0a1, &amp;lt; 5.1.14&lt;/code>&lt;/li>
&lt;li>&lt;code>&amp;lt; 4.2.26&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Source: request.GET or request.POST dict&lt;/p></description></item><item><title>Claude Code for Security Analysis: Introducing SecureFlow CLI to Hunt Security Vulnerabilities</title><link>http://shivasurya.me/2025/10/03/introducing-secureflow-cli-to-hunt-vulnerabilities-claude-code-for-security-analysis/</link><pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/10/03/introducing-secureflow-cli-to-hunt-vulnerabilities-claude-code-for-security-analysis/</guid><description>&lt;h2 id="ai-powered-security-vulnerability-hunting-at-scale">AI-Powered Security Vulnerability Hunting at Scale&lt;/h2>
&lt;p>SecureFlow CLI is an open-source agentic SAST security tool that uses AI-powered loops to autonomously hunt for vulnerabilities in codebases. Built on the same principles as Cline/Cursor/Windsurf/Claude-Code for Security Analysis, it leverages LLMs and tools to navigate code, gather context, and identify security issues.&lt;/p>
&lt;h3 id="example-wordpress-plugin-scanning-results">Example: WordPress Plugin Scanning Results&lt;/h3>
&lt;p>The WordPress plugin ecosystem is often overlooked for security scanning despite serving millions of users. Scanning 600+ WordPress plugins with SecureFlow yielded impressive results:&lt;/p></description></item><item><title>Exploring fun parts of Neural Network</title><link>http://shivasurya.me/2025/08/08/neural-network/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/08/08/neural-network/</guid><description>&lt;p>Back in 2017, I used to tease my friend about his machine learning work (training models, dataset operations, ML deployments) - &amp;ldquo;Come on, admit it, aren&amp;rsquo;t you just writing complex if-elif-else statements and calling yourself an ML engineer?&amp;rdquo;. While Google was &lt;a href="https://ai.google.dev/edge/litert/android">bringing ML models&lt;/a> to mobile devices using tensorflow, I remained indifferent as I couldn&amp;rsquo;t grasp the underlying mathematics or internal workings (which, honestly, continues to this day).&lt;/p>
&lt;p>&lt;img src="http://shivasurya.me/assets/media/if-else-ml.png" alt="IF-ELSE-Engineer">{:height=&amp;ldquo;400px&amp;rdquo;}&lt;/p>
&lt;p>My perspective shifted after diving deep into projects like &lt;a href="https://shivasurya.me/llm/ai/2025/04/10/lessons-from-building-sherlock-automating-security-code-reviews-with-sourcegraph.html">Sherlock&lt;/a>, &lt;a href="https://shivasurya.me/llm/ai/2025/03/19/llm-powered-security-reviews.html">LLM-Powered Security Reviews&lt;/a>, and &lt;a href="https://codepathfinder.dev/blog/introducing-secureflow-extension-to-vibe-code-securely/">SecureFlow AI&lt;/a>. After studying numerous research papers about using language models to detect code vulnerabilities, I felt compelled to return to the basics and understand the fundamental workings of neural networks, particularly how they store information in their hidden layers.&lt;/p></description></item><item><title>Rethinking MCP or Tool Calling Through Permission Based System</title><link>http://shivasurya.me/2025/07/19/mcp-permission-system/</link><pubDate>Sat, 19 Jul 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/07/19/mcp-permission-system/</guid><description>&lt;p>Model Context Protocol (MCP) and Tool Calling are revolutionizing the application layer of Large Language Models (LLMs), enabling AI to autonomously operate tools and MCP servers to complete tasks. While these capabilities are typically distributed as npm packages or hosted remotely, this distribution method poses potential security risks through malicious code.&lt;/p>
&lt;p>Despite these concerns, Tool Calling and MCP add significant value to AI applications. For instance, Windsurf IDE demonstrates excellent integration by leveraging various tools for file operations, diff viewing, and command execution. Users can configure their own MCP packages and servers, allowing models to control these tools effectively.&lt;/p></description></item><item><title>Static Analysis Isn't Enough: Understanding Library Interactions for Effective Data Flow Tracking</title><link>http://shivasurya.me/2025/04/17/static-analysis-isnt-enough-understanding-library-interactions-for-effective-data-flow-tracking/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/04/17/static-analysis-isnt-enough-understanding-library-interactions-for-effective-data-flow-tracking/</guid><description>&lt;p>Originally published on the &lt;a href="https://codepathfinder.dev/blog/static-analysis-isnt-enough-understanding-library-interactions-for-effective-data-flow-tracking/">Code-Pathfinder Blog&lt;/a>.&lt;/p></description></item><item><title>Lessons from Building Sherlock: Automating Security Code Reviews with Sourcegraph</title><link>http://shivasurya.me/2025/04/10/lessons-from-building-sherlock-automating-security-code-reviews-with-sourcegraph/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/04/10/lessons-from-building-sherlock-automating-security-code-reviews-with-sourcegraph/</guid><description>&lt;p>Originally published on the &lt;a href="https://sourcegraph.com/blog/lessons-from-building-sherlock-automating-security-code-reviews-with-sourcegraph">Sourcegraph Blog&lt;/a>.&lt;/p></description></item><item><title>LLM-Powered Security Reviews: Insights and Challenges</title><link>http://shivasurya.me/2025/03/19/llm-powered-security-reviews/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/03/19/llm-powered-security-reviews/</guid><description>&lt;h3 id="introduction">Introduction&lt;/h3>
&lt;p>In a previous post on the &lt;a href="https://shivasurya.me/security-reviews/sast/2024/06/27/automate-security-code-reviews-with-cody-ai.html">Sherlock blog&lt;/a>, I discussed leveraging large language models (LLMs) to assist with security code reviews. There’s no doubt that LLMs outperform traditional static application security testing (SAST) tools in several ways, enhancing the security review process by:&lt;/p>
&lt;ul>
&lt;li>Reducing false positive rates&lt;/li>
&lt;li>Increasing the accuracy of findings&lt;/li>
&lt;li>Uncovering previously unidentified edge cases&lt;/li>
&lt;/ul>
&lt;p>When used in conjunction with SAST tools, LLMs can significantly boost the effectiveness of security reviews.&lt;/p></description></item><item><title>How I Use AI to Streamline/Assist My Work</title><link>http://shivasurya.me/2025/01/28/how-i-use-llm-workflows/</link><pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2025/01/28/how-i-use-llm-workflows/</guid><description>&lt;h2 id="intro">Intro&lt;/h2>
&lt;p>While there&amp;rsquo;s a lot of skepticism about using AI to automate tasks, I&amp;rsquo;ve found AI tools to be invaluable allies that enhance my results and handle niche tasks.&lt;/p>
&lt;h3 id="-reflecting-on-my-llm-usage">🤖 Reflecting on My LLM Usage&lt;/h3>
&lt;p>I used to pay for OpenAI &amp;amp; Anthropic Claude API access and regularly automated several tasks until recently when DeepSeek-v3 was released, cutting costs by at least 50% while maintaining the same response quality. Here are a few tasks I found useful after attempting more than 30+ workflows to incorporate and derive value.&lt;/p></description></item><item><title>2024 Wrapped</title><link>http://shivasurya.me/2024/12/26/2024-wrapped/</link><pubDate>Thu, 26 Dec 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/12/26/2024-wrapped/</guid><description>&lt;h3 id="2024-wrapped">2024 Wrapped&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://shivasurya.me/books/reading/2024/12/19/books-i-read-2024.html">Read 12 books&lt;/a>&lt;/li>
&lt;li>Built &lt;a href="https://codepathfinder.dev/">Code-Pathfinder&lt;/a>, Open-source alternative to GitHub CodeQL
&lt;ul>
&lt;li>Received positive interest and interaction from various people working for Microsoft, GitHub, Elastic and TrailofBits&lt;/li>
&lt;li>Mind-blown to see people reaching out regarding the project :)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Welcomed our beautiful baby girl into the world! 👸
&lt;ul>
&lt;li>Grateful to &lt;a href="https://www.grhosp.on.ca/">Grand River Hospital&lt;/a> staff &amp;amp; volunteers for the exceptional care and support. 🫡 to Canada&amp;rsquo;s Healthcare&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Read and built security vulnerability classifier based on &lt;a href="https://www.manning.com/books/build-a-large-language-model-from-scratch">Building a Large Language Model from Scratch&lt;/a>&lt;/li>
&lt;li>494 days streak on &lt;a href="https://www.duolingo.com/profile/shivasurya">Duolingo&lt;/a> learning french 🇫🇷&lt;/li>
&lt;/ul>
&lt;p>And that&amp;rsquo;s a wrap!&lt;/p></description></item><item><title>Books I read in 2024</title><link>http://shivasurya.me/2024/12/19/books-i-read-2024/</link><pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/12/19/books-i-read-2024/</guid><description>&lt;h3 id="books">Books&lt;/h3>
&lt;p>If you’re looking for a great device to read books, highlight important sections, and take notes, the &lt;a href="https://www.amazon.ca/Introducing-Kindle-Scribe-the-first-Kindle-for-reading-and-writing/dp/B09BS5XWNS">Kindle Scribe&lt;/a> is a fantastic option. It’s especially handy for times like waiting at the airport/hospital, traveling by flight/train.&lt;/p>
&lt;p>Pro tip: You can always send pdf/epub to kindle and read it on kindle.&lt;/p>
&lt;h4 id="security--programming">Security &amp;amp; Programming&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://www.manning.com/books/build-a-large-language-model-from-scratch">Building a Large Language Model from Scratch&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.oreilly.com/library/view/building-an-interpreter/9781801071338/">Building Interpreter from Scratch&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Serious-Cryptography-Practical-Introduction-Encryption/dp/1593278268?nsdOptOutParam=true">Serious Cryptography: A Practical Introduction to Modern Encryption&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Crypto-Dictionary-Tidbits-Curious-Cryptographer-ebook/dp/B08PHS676K?nsdOptOutParam=true">Crypto Dictionary: 500 Tasty Tidbits for the Curious Cryptographer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Crafting-Interpreters-Robert-Nystrom/dp/0990582930">Crafting Interpreters: An Illustrated Guide to Building an Interpreter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/LLVM-Cookbook-Mayur-Pandey/dp/178528598X">LLVM Cookbook&lt;/a>&lt;/li>
&lt;/ul>
&lt;h4 id="non-fiction">Non-Fiction&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://www.amazon.in/Orbiting-Giant-Hairball-Corporate-Surviving/dp/0670879835?nsdOptOutParam=true">Orbiting the Giant Hairball: A Corporate Fool&amp;rsquo;s Guide to Surviving with Grace&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/How-Fail-Almost-Everything-Still-ebook/dp/B0CFD2YLB7?nsdOptOutParam=true">How to Fail at Almost Everything and Still Win Big: Kind of the Story of My Life&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/SIMMASANA-SECRET-V-IRAIANBU/dp/8123425910">சிம்மாசன சீக்ரெட்&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Ego-Enemy-Ryan-Holiday/dp/1781257019">Ego is the Enemy&lt;/a> (reading)&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Outlive-Science-Longevity-Peter-Attia/dp/1785044559">Outlive: The Science and Art of Longevity&lt;/a> (reading)&lt;/li>
&lt;/ul>
&lt;h4 id="personal-finance">Personal Finance&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://www.amazon.in/MASTERING-MARKET-CYCLE-Howard-Marks/dp/1473695686">Mastering the Market Cycle&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Most-Important-Thing-Uncommon-Thoughtful/dp/9353022797/262-6611992-5872946?psc=1">The Most Important Thing: Uncommon Sense for The Thoughtful Investor&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Your-Money-Life-Transforming-Relationship/dp/0143115766">Your Money or Your Life&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/Millionaire-Fastlane-Crack-Wealth-Lifetime/dp/9390085497?sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;amp;psc=1">Millionaire&amp;rsquo;s Fastlane&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.amazon.in/dhandho-investor-book-Team/dp/B0DPTCTYRX?sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;amp;psc=1">Dhandho Investor&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>CodeQL: Eindhoven Quantifier Notation</title><link>http://shivasurya.me/2024/09/10/codeql-eindhoven-quantifier-notation/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/09/10/codeql-eindhoven-quantifier-notation/</guid><description>&lt;h3 id="introduction">Introduction&lt;/h3>
&lt;p>Recently, I have been thinking about aggregate functionality design for &lt;a href="https://codepathfinder.dev/">Code PathFinder&lt;/a>, &lt;a href="https://github.com/shivasurya/code-pathfinder">opensource alternative to GitHub CodeQL&lt;/a>. SQL aggregate functions such as &lt;code>SUM&lt;/code>, &lt;code>AVG&lt;/code>, &lt;code>MIN&lt;/code>, &lt;code>MAX&lt;/code> are combined with &lt;code>WHERE&lt;/code> and &lt;code>GROUP BY&lt;/code> to generate aggregate queries. However, I was wondering if there is a way to generate aggregate queries without using &lt;code>WHERE&lt;/code> and &lt;code>GROUP BY&lt;/code>. While going through &lt;a href="https://codeql.github.com/publications/ql-for-source-code-analysis.pdf">CodeQL design research paper&lt;/a>, I came across Eindhoven Quantifier Notation which is quite interesting, easy to understand and can be used to generate aggregate queries. This blog post will discuss about Eindhoven Quantifier Notation adopted by CodeQL.&lt;/p></description></item><item><title>Sherlock: Automate security code reviews with Cody AI</title><link>http://shivasurya.me/2024/06/27/automate-security-code-reviews-with-cody-ai/</link><pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/06/27/automate-security-code-reviews-with-cody-ai/</guid><description>&lt;h3 id="intro">Intro&lt;/h3>
&lt;h3 id="need-for-semi-autonomous-security-code-reviews">Need for semi-autonomous security code reviews&lt;/h3>
&lt;p>My job as a security engineer (application security context) is to read source code and perform security reviews. Most of the time, mainly corelate the source code with frameworks &amp;amp; libraries, understand context where the code executes and enumerate all security risks. While there are lot of second generation SAST scanning tools in the market which is good at identifying patterns, eliminate false positive, executes and brings up results in minutes. I believe,&lt;/p></description></item><item><title>Defining Boundaries &amp; Sinks for Inter-procedural Source Sink Analysis - Part 3</title><link>http://shivasurya.me/2024/03/08/building-inter-procedural-source-sink-analysis-from-scratch-part-3/</link><pubDate>Fri, 08 Mar 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/03/08/building-inter-procedural-source-sink-analysis-from-scratch-part-3/</guid><description>&lt;p>This is the third part of the blog post series on building inter-procedural source sink analysis from scratch. In the first part, we have built the &lt;a href="https://shivasurya.me/static-analysis/sast/2023/08/27/building-simple-source-sink-analysis-from-scratch-part-1.html">intra-procedural source sink analysis&lt;/a>. In this blog post, I&amp;rsquo;ll discuss about defining boundaries, configs and sinks for inter-procedural analysis. ✨ This idea of defining boundaries and sinks is inspired from the &lt;a href="https://codeql.github.com/">CodeQL&lt;/a> library and while discussing with my colleague at &lt;a href="https://www.swag.uwaterloo.ca/">SWAG lab @ uwaterloo&lt;/a>.&lt;/p>
&lt;h3 id="plan">Plan&lt;/h3>
&lt;p>While tools like CodeQL has well-defined support for libraries and framework such as &lt;a href="https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/frameworks/android/Android.qll/module.Android.html">Android CodeQL&lt;/a> these libraries has predefined boundaries and sinks. But, start from scratch, we need to define our own boundaries and sinks. The boundaries are the entry points and sinks are the exit points.&lt;/p></description></item><item><title>Deep dive on Android Java / Kotlin Deserialization Code Execution with Semgrep Detection</title><link>http://shivasurya.me/2024/01/24/java-deserialization-rce-android-application-layer/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2024/01/24/java-deserialization-rce-android-application-layer/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>In this post, we will explore code execution using Java &amp;amp; Kotlin Deserialization in Android Application. Additionally, We will discuss the Gadget Chain, Detection and Exploitation technique specific to Android. Achieving code execution in server side application via Java deserialization has higher chance of success than in client side android application. This is due to limitation of variety of loaded classes in android application. For instance &lt;code>com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl&lt;/code> is available in openJDK but not in Android JDK (but with modification). These limitation can be a blocker for loading arbitrary classes and executing payload (mostly compiled bytecode) in Android application. Well there are lot of deserialization vulnerabilities is published out there such as&lt;/p></description></item><item><title>2023 Wrap - Year in Review</title><link>http://shivasurya.me/2023/12/27/2023-wrap/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/12/27/2023-wrap/</guid><description>&lt;p>2023: A Year of Unexpected Adventures and Rich Insights. Here&amp;rsquo;s a glimpse into my journey and the accomplishments, lessons I&amp;rsquo;ve gathered along the way. Well this blog doesn&amp;rsquo;t feature lot of stuff, but I&amp;rsquo;m trying to keep it simple.&lt;/p>
&lt;h3 id="trimming-down-weight-loss-journey-">Trimming Down: Weight Loss Journey 🏋️&lt;/h3>
&lt;blockquote>
&lt;p>&amp;ldquo;Psychology for Money shapes your wealth; Noom shapes your health.&amp;rdquo;&lt;/p>&lt;/blockquote>
&lt;p>It&amp;rsquo;s been an inspiring weight loss journey with Noom, shedding 11 lbs since October 2023. My employer&amp;rsquo;s Step Challenge played a significant role. I appreciate Noom&amp;rsquo;s rewarding content and insights into eating psychology. The subscription and personal accountability guidance are truly valuable.&lt;/p></description></item><item><title>Building Inter-procedural Source Sink Analysis from Scratch - Part 2</title><link>http://shivasurya.me/2023/09/01/building-inter-procedural-source-sink-analysis-from-scratch-part-2/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/09/01/building-inter-procedural-source-sink-analysis-from-scratch-part-2/</guid><description>&lt;p>This is the second part of the blog post series on building inter-procedural source sink analysis from scratch. In the first part, we have built the &lt;a href="https://shivasurya.me/static-analysis/sast/2023/08/27/building-simple-source-sink-analysis-from-scratch-part-1.html">intra-procedural source sink analysis&lt;/a>. In this blog post, we will be building the inter-procedural source sink analysis.&lt;/p>
&lt;h3 id="plan">Plan&lt;/h3>
&lt;p>We&amp;rsquo;ll be parsing whole java project source code and generate AST using JavaParser. While traversing the AST, we will be collecting the method declaration and method invocation. We will be using graph theory algorithm to find the path from source to sink. The source is the method declaration and the sink is the method invocation. The method declaration is the node and the method invocation is the edge. While classes may contain duplicate method names with different signatures, we will be using the fully qualified method name to uniquely identify the method. The fully qualified method name is the class name + method name + method arguments. The method arguments are used to differentiate the method overloading. The method declaration is the key and method invocation is the value in the hashmap. The hashmap is used to build the graph and find the path from source to sink.&lt;/p></description></item><item><title>Building A Simple Source-Sink Analysis in Java from Scratch - Part 1</title><link>http://shivasurya.me/2023/08/27/building-simple-source-sink-analysis-from-scratch-part-1/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/08/27/building-simple-source-sink-analysis-from-scratch-part-1/</guid><description>&lt;h3 id="overview-of-source-sink-analysis">Overview of Source Sink Analysis&lt;/h3>
&lt;p>Source Sink Analysis is a type of basic static analysis that detects the flow of information from a source to a sink. A source is a place where the information is coming from and a sink is a place where the information is going to. For example, a source can be a user input and a sink can be a database query. If the user input is not sanitized, it can lead to SQL Injection. Apart from source sink techniques, there are other techniques like taint analysis, control flow graph, data flow analysis, etc. which are used to detect vulnerabilities in the code. In this blog post, we will be building a simple source sink analysis in Java from scratch.&lt;/p></description></item><item><title>From ArcGIS to Mapbox: How Cody AI Made My Web App Shine</title><link>http://shivasurya.me/2023/07/02/sourcegraph-cody/</link><pubDate>Sun, 02 Jul 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/07/02/sourcegraph-cody/</guid><description>&lt;p>Imagine being a newcomer to Canada around 2019, relying on public transit to navigate the Waterloo region. Like many others, I found myself frustrated with the occasional unreliability of Google Maps when searching for public transit options. However, my luck changed when I stumbled upon a cool command line tool developed by a UWaterloo student that predicted the next bus or LRT arrival time within seconds. This discovery led me to GRT.ca, a website providing real-time transit feed updates, allowing me to track the exact location of buses and LRTs. Inspired by this newfound resource, I created a naive map using ArcGIS ESRI Maps, loading location information from the protobuf feed and deploying it on my domain, livemap.shivasurya.me. This map became my go-to tool for finding the precise location of the next bus or LRT.&lt;/p></description></item><item><title>Building A Simple OpenAI Powered Personal Assistant</title><link>http://shivasurya.me/2023/05/19/building-first-openai-powered-personal-assistant-app/</link><pubDate>Fri, 19 May 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/05/19/building-first-openai-powered-personal-assistant-app/</guid><description>&lt;p>In high school (~2012), I made a significant upgrade from my Nokia 1600 to an Android Jelly Bean device, API 16. I was fascinated by the apps available on the Play Store and became curious about creating my own. That&amp;rsquo;s when I discovered Adobe PhoneGap and ventured into HTML5 app development using jQuery Mobile. It was a thrilling and rewarding experience, culminating in the deployment of my first app on my Android device. This nostalgic period in high school marked my exploration into the world of app development and ignited a passion that I still carry with me today.&lt;/p></description></item><item><title>Heap Two Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/05/06/exploit-education-heap-two-exercise-writeup/</link><pubDate>Sat, 06 May 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/05/06/exploit-education-heap-two-exercise-writeup/</guid><description>&lt;p>If you haven&amp;rsquo;t set up your lab yet, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/07/exploit-education-format-two-exercise-writeup.html">Format Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/14/exploit-education-format-three-exercise-writeup.html">Format Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/21/exploit-education-format-four-exercise-writeup.html">Format Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/28/exploit-education-format-heap-exercise-writeup.html">Heap Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/05/05/exploit-education-heap-one-exercise-writeup.html">Heap One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Similar to Heap One, Heap Two exercise motive is to leverage buffer overflow and perform UAF (&lt;strong>User-After-Free Vulnerability&lt;/strong>) that technically allows to re-use the allocated memory in the heap to control the program flow. Similar to &lt;code>gets&lt;/code> in Heap Zero, &lt;code>strdup&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to copy but doesn&amp;rsquo;t care about overwriting other declared struct variable in the heap region.&lt;/p></description></item><item><title>Heap One Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/05/05/exploit-education-heap-one-exercise-writeup/</link><pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/05/05/exploit-education-heap-one-exercise-writeup/</guid><description>&lt;p>If you haven&amp;rsquo;t set up your lab yet, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/07/exploit-education-format-two-exercise-writeup.html">Format Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/14/exploit-education-format-three-exercise-writeup.html">Format Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/21/exploit-education-format-four-exercise-writeup.html">Format Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/28/exploit-education-format-heap-exercise-writeup.html">Heap Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Similar to Heap Zero, Heap One exercise motive is to smash the heap to modify other variables in the heap to a &lt;code>hex value&lt;/code> and technically overwrite &lt;code>struct&lt;/code> in the heap. Similar to &lt;code>gets&lt;/code> in Stack Zero, &lt;code>strcpy&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared struct variable in the heap region.&lt;/p></description></item><item><title>Heap Zero Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/04/28/exploit-education-format-heap-exercise-writeup/</link><pubDate>Fri, 28 Apr 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/04/28/exploit-education-format-heap-exercise-writeup/</guid><description>&lt;p>If you haven&amp;rsquo;t set up your lab yet, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/07/exploit-education-format-two-exercise-writeup.html">Format Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/14/exploit-education-format-three-exercise-writeup.html">Format Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/21/exploit-education-format-four-exercise-writeup.html">Format Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Similar to Stack One, Heap Zero exercise motive is to smash the heap to modify other variables in the heap to a &lt;code>hex value&lt;/code> and technically overwrite &lt;code>function pointer&lt;/code> in the heap. Similar to &lt;code>gets&lt;/code> in Stack Zero, &lt;code>strcpy&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared function pointer in heap.&lt;/p></description></item><item><title>Format Four Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/04/21/exploit-education-format-four-exercise-writeup/</link><pubDate>Fri, 21 Apr 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/04/21/exploit-education-format-four-exercise-writeup/</guid><description>&lt;h2 id="previous-writeup">Previous Writeup:&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/07/exploit-education-format-two-exercise-writeup.html">Format Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/04/14/exploit-education-format-three-exercise-writeup.html">Format Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p></description></item><item><title>Format Three Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/04/14/exploit-education-format-three-exercise-writeup/</link><pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/04/14/exploit-education-format-three-exercise-writeup/</guid><description>&lt;h2 id="previous-writeup">Previous Writeup:&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p></description></item><item><title>Format Two Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/04/07/exploit-education-format-two-exercise-writeup/</link><pubDate>Fri, 07 Apr 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/04/07/exploit-education-format-two-exercise-writeup/</guid><description>&lt;h2 id="previous-writeup">Previous Writeup:&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/31/exploit-education-format-one-exercise-writeup.html">Format One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p></description></item><item><title>Format One Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/03/31/exploit-education-format-one-exercise-writeup/</link><pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/03/31/exploit-education-format-one-exercise-writeup/</guid><description>&lt;h2 id="previous-writeup">Previous Writeup:&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/03/10/exploit-education-format-zero-exercise-writeup.html">Format Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p></description></item><item><title>CVE-2023-23397 - Zero Click Net-NTLMv2 Credential Hash Leak on Outlook Client</title><link>http://shivasurya.me/2023/03/25/CVE-2023-23397-vulnerability-deep-dive-and-poc/</link><pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/03/25/CVE-2023-23397-vulnerability-deep-dive-and-poc/</guid><description>&lt;h2 id="quick-overview">Quick Overview&lt;/h2>
&lt;p>Microsoft announced patch for &lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2023-23397">CVE-2023-23397&lt;/a> which generally goes out usually on tuesday (Mar 14, 2023). This particular vulnerability caught my eyes due to the fact that I actively work on &lt;code>Active Directory&lt;/code> based HackTheBox machines and this one is something similar to &lt;code>Android Application Exploits&lt;/code> where attacker passes random url to &lt;code>activities&lt;/code> or &lt;code>services&lt;/code> and the outbound network connection often contains sensitive tokens attached to it.&lt;/p>
&lt;p>IIRC, I reported a similar vulnerability in 2020 which completely leaks encrypted sandbox local files including e-mail, tasks in the ProtonMail Android Client &lt;a href="https://proton.me/blog/protonmail-security-contributors">reference&lt;/a> However, it requires user interaction in the victim side of Android app.&lt;/p></description></item><item><title>HackTheBox Active Writeup - Active Directory - OSCP Practice</title><link>http://shivasurya.me/2023/03/17/hackthebox-active-writeup-oscp-active-directory/</link><pubDate>Fri, 17 Mar 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/03/17/hackthebox-active-writeup-oscp-active-directory/</guid><description>&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>&lt;a href="https://app.hackthebox.com/machines/Active">Active&lt;/a> is one of the easy Active Directory focused Windows Box from &lt;a href="https://docs.google.com/spreadsheets/u/1/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/htmlview#">TJNull OSCP Practice list&lt;/a>. It&amp;rsquo;s one of those easy machine where you get initial foothold via SMB &lt;code>Replication&lt;/code> share leak &amp;amp; escalate privileges using Active Directory weakness.&lt;/p>
&lt;p>&lt;img src="http://shivasurya.me/assets/media/htb-active-logo.png" alt="Active VM - HacktheBox Logo">&lt;/p>
&lt;h3 id="enumeration">Enumeration&lt;/h3>
&lt;h4 id="nmapautomator">NMapAutomator&lt;/h4>
&lt;p>Started with enumerating the target with &lt;a href="https://github.com/21y4d/nmapAutomator">&lt;code>NMapAutomator&lt;/code>&lt;/a> script since it helps in automating all possible ports with vulnerability scripts from &lt;code>nmap&lt;/code>. Additionally, &lt;code>NmapAutomator&lt;/code> can help in recon process using &lt;code>smbmap&lt;/code>, &lt;code>ffuf&lt;/code>, &lt;code>nikto&lt;/code>, &lt;code>DNSRecon&lt;/code>, &lt;code>SMB&lt;/code> enumeration.&lt;/p></description></item><item><title>Format Zero Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/03/10/exploit-education-format-zero-exercise-writeup/</link><pubDate>Fri, 10 Mar 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/03/10/exploit-education-format-zero-exercise-writeup/</guid><description>&lt;h3 id="previous-writeup">Previous Writeup:&lt;/h3>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/26/exploit-education-stack-six-exercise-writeup.html">Stack Six Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p></description></item><item><title>Stack Six Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/02/26/exploit-education-stack-six-exercise-writeup/</link><pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/26/exploit-education-stack-six-exercise-writeup/</guid><description>&lt;h3 id="previous-writeup">Previous Writeup:&lt;/h3>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/02/04/exploit-education-stack-five-exercise-writeup.html">Stack Five Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p></description></item><item><title>HackTheBox Jerry Writeup - OSCP Practice</title><link>http://shivasurya.me/2023/02/24/hackthebox-jerry-writeup-oscp/</link><pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/24/hackthebox-jerry-writeup-oscp/</guid><description>&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>&lt;a href="https://app.hackthebox.com/machines/144">Jerry&lt;/a> is one of the Windows Box from &lt;a href="https://docs.google.com/spreadsheets/u/1/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/htmlview#">TJNull OSCP Practice list&lt;/a>. It&amp;rsquo;s one of those quite easy machine where you get initial foothold &amp;amp; privilege escalation in a single hop.&lt;/p>
&lt;p>&lt;img src="http://shivasurya.me/assets/media/htb-jerry-logo.jpg" alt="Jerry VM - HacktheBox Logo">&lt;/p>
&lt;h3 id="enumeration">Enumeration&lt;/h3>
&lt;h4 id="nmapautomator">NMapAutomator&lt;/h4>
&lt;p>Started with enumerating the target with &lt;a href="https://github.com/21y4d/nmapAutomator">&lt;code>NMapAutomator&lt;/code>&lt;/a> script since it helps in automating all possible ports with vulnerability scripts from &lt;code>nmap&lt;/code>. Additionally, &lt;code>NmapAutomator&lt;/code> can help in recon process using &lt;code>ffuf&lt;/code>, &lt;code>nikto&lt;/code>, &lt;code>DNSRecon&lt;/code>, &lt;code>SMB&lt;/code> enumeration.&lt;/p></description></item><item><title>HackTheBox OSCP Writeups - Shivasurya.me</title><link>http://shivasurya.me/2023/02/20/hackthebox-oscp-writeups/</link><pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/20/hackthebox-oscp-writeups/</guid><description>&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>This blog post acts as Index of &lt;a href="https://docs.google.com/spreadsheets/u/1/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/htmlview#">TJNull HackTheBox OSCP Practice list&lt;/a>. I myself enjoyed solving all those HackTheBox VM and started writing writeups to help other folks out there striving hard to crack OSCP exam 🎮&lt;/p>
&lt;h3 id="index">Index&lt;/h3>
&lt;iframe class="airtable-embed" src="https://airtable.com/embed/shrt27NGHECI0l8yL?backgroundColor=orange&amp;viewControls=on" frameborder="0" onmousewheel="" width="100%" height="533" style="background: transparent; border: 1px solid #ccc;">&lt;/iframe>
&lt;h3 id="closing-note">Closing Note:&lt;/h3>
&lt;p>I hope this post is helpful for folks preparing for Offensive Security Certified Professional certification exam. For bugs,hugs &amp;amp; discussion, DM in &lt;a href="https://twitter.com/sshivasurya">Twitter&lt;/a>. Opinions are my own and not the views of my employer.&lt;/p></description></item><item><title>HackTheBox Bashed Writeup - OSCP Practice List</title><link>http://shivasurya.me/2023/02/14/hackthebox-bashed-writeup-oscp/</link><pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/14/hackthebox-bashed-writeup-oscp/</guid><description>&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>&lt;a href="https://app.hackthebox.com/machines/118">Bashed&lt;/a> Box is one of the Linux Box from &lt;a href="https://docs.google.com/spreadsheets/u/1/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/htmlview#">TJNull OSCP Practice list&lt;/a>. It&amp;rsquo;s one of those quite easy machine where you get initial foothold in one hop and privilege escalation in second hop.&lt;/p>
&lt;p>&lt;img src="http://shivasurya.me/assets/media/htb-bashed-logo.jpg" alt="Bashed VM - HacktheBox Logo">&lt;/p>
&lt;h3 id="enumeration">Enumeration&lt;/h3>
&lt;h4 id="nmapautomator">NMapAutomator&lt;/h4>
&lt;p>Started with enumerating the target with &lt;a href="https://github.com/21y4d/nmapAutomator">&lt;code>NMapAutomator&lt;/code>&lt;/a> script since it helps in automating all possible ports with vulnerability scripts from &lt;code>nmap&lt;/code>. Additionally, &lt;code>NmapAutomator&lt;/code> can help in recon process using &lt;code>ffuf&lt;/code>, &lt;code>nikto&lt;/code>, &lt;code>DNSRecon&lt;/code>, &lt;code>SMB&lt;/code> enumeration.&lt;/p></description></item><item><title>Detecting Android WebView Vulnerable Configurations with Semgrep Rules - Part 1</title><link>http://shivasurya.me/2023/02/10/android-webview-vulnerabilities-semgrep-rules-detection/</link><pubDate>Fri, 10 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/10/android-webview-vulnerabilities-semgrep-rules-detection/</guid><description>&lt;p>Android WebView widget provides APIs that help developers seamlessly integrate webpage contents within Android application. Advancement in Webview &amp;amp; Chrome Custom Tabs lead to &lt;a href="https://tomtunguz.com/mobile-only-saas/">exponential growth in webview based mobile development&lt;/a> platforms such as &lt;code>Ionic framework&lt;/code>, &lt;code>JQuery Mobile&lt;/code>, &lt;code>Adobe Phonegap&lt;/code> later open-sourced as &lt;code>Cordova Project&lt;/code>, &lt;code>React Native&lt;/code>. However the race to capture the mobile development market, immature WebView APIs and lack of security guidance lead to multiple vulnerabilities and exploits. In today&amp;rsquo;s blog post, we&amp;rsquo;ll deep dive into multiple WebView vulnerability configurations and leverage semgrep to detect those configuration real time.&lt;/p></description></item><item><title>Stack Five Writeup (Code Execution) - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/02/04/exploit-education-stack-five-exercise-writeup/</link><pubDate>Sat, 04 Feb 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/02/04/exploit-education-stack-five-exercise-writeup/</guid><description>&lt;h3 id="previous-writeup">Previous Writeup:&lt;/h3>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/28/exploit-education-stack-four-exercise-writeup.html">Stack Four Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p></description></item><item><title>Stack Four Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/01/28/exploit-education-stack-four-exercise-writeup/</link><pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/28/exploit-education-stack-four-exercise-writeup/</guid><description>&lt;h3 id="previous-writeup">Previous Writeup:&lt;/h3>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/27/exploit-education-stack-three-exercise-writeup.html">Stack Three Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p></description></item><item><title>Stack Three Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/01/27/exploit-education-stack-three-exercise-writeup/</link><pubDate>Fri, 27 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/27/exploit-education-stack-three-exercise-writeup/</guid><description>&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/26/exploit-education-stack-two-exercise-writeup.html">Stack Two Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Similar to Stack Two, Stack Three exercise motive is to smash the stack to modify other variables in the stack to a &lt;code>hex value&lt;/code> and technically overwrite &lt;code>function pointer&lt;/code> in the stack. Similar to &lt;code>gets&lt;/code> in Stack Zero, &lt;code>strcpy&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared function pointer in stack. If you take closer look at the struct which isn&amp;rsquo;t dynamically being allocated by &lt;code>malloc&lt;/code> function, so probably the struct which contains both &lt;code>char buffer[64]&lt;/code> and &lt;code>volatile int *fp&lt;/code> function pointer stays in main stackframe. This overwritten function pointer will be further used to invoke in later part of the program.&lt;/p></description></item><item><title>Stack Two Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/01/26/exploit-education-stack-two-exercise-writeup/</link><pubDate>Thu, 26 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/26/exploit-education-stack-two-exercise-writeup/</guid><description>&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/20/exploit-education-stack-one-exercise-writeup.html">Stack One Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/li>
&lt;/ol>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Similar to Stack One, Stack Two exercise motive is to smash the stack to modify other variables in the stack to a &lt;code>hex value 0x0d0a090a&lt;/code> but receives the value from the environment variable &lt;code>ExploitEducation&lt;/code>. Technically, similar to &lt;code>gets&lt;/code> in Stack Zero, &lt;code>strcpy&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared variables in stack. If you take closer look at the struct which isn&amp;rsquo;t dynamically being allocated by &lt;code>malloc&lt;/code> function, so probably the struct which contains both &lt;code>char buffer[64]&lt;/code> and &lt;code>volatile int changeme&lt;/code> stays in main stackframe.&lt;/p></description></item><item><title>Stack One Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/01/20/exploit-education-stack-one-exercise-writeup/</link><pubDate>Fri, 20 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/20/exploit-education-stack-one-exercise-writeup/</guid><description>&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;p>Previous Writeup: &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/12/exploit-education-stack-zero-exercise-writeup.html">Stack Zero Writeup - Exploit Education Lab Exercise&lt;/a>&lt;/p>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Unlike Stack Zero, Stack One exercise motive is to smash the stack to modify other variables in the stack to a &lt;code>hex value 0x496c5962&lt;/code>. Technically, similar to &lt;code>gets&lt;/code> in Stack Zero, &lt;code>strcpy&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared variables in stack. If you take closer look at the struct which isn&amp;rsquo;t dynamically being allocated by &lt;code>malloc&lt;/code> function, so probably the struct which contains both &lt;code>char buffer[64]&lt;/code> and &lt;code>volatile int changeme&lt;/code> stays in main stackframe.&lt;/p></description></item><item><title>Stack Zero Writeup - Exploit Education Lab Exercise</title><link>http://shivasurya.me/2023/01/12/exploit-education-stack-zero-exercise-writeup/</link><pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/12/exploit-education-stack-zero-exercise-writeup/</guid><description>&lt;p>If you&amp;rsquo;re learning and writing binary exploits, I would strongly recommend you to take &lt;a href="https://p.ost2.fyi/courses/course-v1:OpenSecurityTraining2+Arch1001_x86-64_Asm+2021_v1/course/">Architecture 1001: x86-64 Assembly&lt;/a> course by &lt;code>Xeno Kovah&lt;/code>. They cover a wide variety of learning assembly instructions which will be really helpful to understand the exploits.&lt;/p>
&lt;p>If you haven&amp;rsquo;t done setting-up your lab, feel free to check out my previous article on &lt;a href="https://shivasurya.me/security/binary-exploit/reverse-engineering/friday-gems/2023/01/06/exploit-education-lab-setup.html">Exploit.education lab setup&lt;/a>&lt;/p>
&lt;h3 id="quick-overview">Quick Overview&lt;/h3>
&lt;p>Stack Zero exercise is based on stackoverflow memory corruption issue where you&amp;rsquo;ll have to smash the stack to modify other variables in the stack to achieve code execution, execution flow redirection or behaviour in the program. Technically, &lt;code>gets&lt;/code> function is unsafe that doesn&amp;rsquo;t have bounds check basically, it accepts memory address to write but doesn&amp;rsquo;t care about overwriting other declared variables in stack. If you take closer look at the struct which isn&amp;rsquo;t dynamically being allocated by &lt;code>malloc&lt;/code> function, so probably the struct which contains both &lt;code>char buffer[64]&lt;/code> and &lt;code>volatile int changeme&lt;/code> stays in main stackframe.&lt;/p></description></item><item><title>Exploit Education Lab Setup - Windows &amp; MacOS</title><link>http://shivasurya.me/2023/01/06/exploit-education-lab-setup/</link><pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2023/01/06/exploit-education-lab-setup/</guid><description>&lt;p>Exploit.education binary exploitation exercise typically runs on ASLR (Address space layout randomization) disabled ubuntu based virtual machine with Data Execution Prevention turned off binaries. In order to setup the &lt;code>exploit.education&lt;/code> lab, You&amp;rsquo;ll have to either use virtualbox or qemu based virtual machine emulator setup to easily test and debug the exercises.&lt;/p>
&lt;h3 id="installation">Installation&lt;/h3>
&lt;p>For both MacOS and Windows, grab a copy of &lt;a href="https://www.qemu.org/download/">qemu emulator&lt;/a> and follow the installation setup which is quite easy.&lt;/p></description></item><item><title>Binary Search and Hidden Overflow 🪲</title><link>http://shivasurya.me/2022/12/04/binary-search-overflow/</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2022/12/04/binary-search-overflow/</guid><description>&lt;p>Recently I was playing with overflow vulnerabilities help of &lt;code>exploit.education&lt;/code> exercise which mostly covers basic heap, buffer overflow,
use-after-free vulnerability patterns in a contained &lt;code>qemu&lt;/code> based environment. However, I was searching for Integer overflow patterns and articles around it &amp;ldquo;how to succesfully convert a integer overflow into a remote code execution&amp;rdquo;. While reading through the vulnerability reports, I started exploring code snippets relevant to integer overflow and this blog post &lt;a href="https://ai.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html">&lt;code>Nearly All Binary Searches and Mergesorts are Broken&lt;/code>&lt;/a> caught my eyes.&lt;/p></description></item><item><title>Detecting Android Content Provider APIs with Semgrep Rules</title><link>http://shivasurya.me/2022/11/28/android-content-provider-semgrep-detection/</link><pubDate>Mon, 28 Nov 2022 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2022/11/28/android-content-provider-semgrep-detection/</guid><description>&lt;p>Content Provider is one of the powerful APIs which helps Android developers programmatically expose resource content within Android ecosystem via Intents. One could easily write those queries easily by extending the &lt;code>ContentProvider&lt;/code> class and implementing those methods and accessing via URI (example: &lt;code>android://com.zoho.example/database/:_data&lt;/code>). Though these Content Provider is a cupcake for developers, Unfortunately there are lot of vulnerabilities hidden within those APIs and with implementation part.&lt;/p>
&lt;p>The main intent for writing this blog post were Semgrep and the recent blog post from &lt;code>project zero&lt;/code> regarding &lt;a href="https://googleprojectzero.blogspot.com/2022/11/a-very-powerful-clipboard-samsung-in-the-wild-exploit-chain.html">Analysis of a Samsung in-the-wild exploit chain&lt;/a>. I&amp;rsquo;ve been using semgrep for a while to tweak my findings instead of naive grep, CodeQL and the Samsung exploit chain may look trivial but how a simple permission bypass can affect system level apps in the Android phone. Later this year, I have added semgrep to my mobile pentesting suite which helps me to run these scripts over large Android projects, decompiled projects in automated way which pings me on Slack 🤖.&lt;/p></description></item><item><title>Cross-Site Scripting attack on Leetcode</title><link>http://shivasurya.me/2020/12/07/leetcode-xss/</link><pubDate>Mon, 07 Dec 2020 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2020/12/07/leetcode-xss/</guid><description>&lt;p>Reflected XSS (Cross-Site Scripting) attack is my favorite vulnerability category as it&amp;rsquo;s relatively easy to exploit by checking for params as the source and rendering DOM as the sink.&lt;/p>
&lt;h3 id="problem">Problem&lt;/h3>
&lt;p>The core problem of the Reflected Cross-Site scripting attack is appending the URL parameter values in the DOM without validation or filtering. Though the reflected XSS requires user interaction by visiting the page or clicking on links in real-life attacks, people should think about Iframe tags that don&amp;rsquo;t need any interaction to load them on other third party web pages.&lt;/p></description></item><item><title>Securing an ExpressJS server - Part 1</title><link>http://shivasurya.me/2020/11/05/securing-express-server-part-1/</link><pubDate>Thu, 05 Nov 2020 00:00:00 +0000</pubDate><guid>http://shivasurya.me/2020/11/05/securing-express-server-part-1/</guid><description>&lt;p>As Javascript programming language popularity increases, platforms have already started adopting it from native desktop apps, mobile, browser to server-side, giving rise to exciting frameworks, style guides, tools.&lt;/p>
&lt;p>To JavaScript—you weren&amp;rsquo;t born with a silver spoon in your mouth, but you&amp;rsquo;ve outclassed every language that&amp;rsquo;s challenged you in the browser.&lt;/p>
&lt;p>ExpressJS is not an exception that powers &lt;a href="https://trends.builtwith.com/framework/Express">2.31% of the top 1 million websites&lt;/a> which runs on top of NodeJS and provides excellent features to develop web-based applications. So, let&amp;rsquo;s jumpstart with a few basics, and this particular series will cover a lot more aspects of securing, maintaining and deploying production-grade expressjs server.&lt;/p></description></item></channel></rss>