diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ffcef5e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+_site/
+.sass-cache/
+.jekyll-cache/
+.jekyll-metadata
+vendor/
+.bundle/
+Gemfile.lock
+node_modules/
+*.gem
+.DS_Store
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..13ee86d
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,4 @@
+source "https://rubygems.org"
+
+gem "github-pages", group: :jekyll_plugins
+gem "webrick", "~> 1.8"
diff --git a/_config.yml b/_config.yml
index 664cfb2..b6c451e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,4 +1,28 @@
title: Tech with Orgito
description: Cybersecurity, software engineering & CTF writeups
-theme: minima
+url: "https://techwithorgito.github.io"
+baseurl: ""
+
+# Build settings
markdown: kramdown
+highlighter: rouge
+permalink: /:year/:month/:day/:title/
+
+# Kramdown settings for better code blocks
+kramdown:
+ input: GFM
+ syntax_highlighter: rouge
+ syntax_highlighter_opts:
+ block:
+ line_numbers: false
+
+# Exclude from processing
+exclude:
+ - Gemfile
+ - Gemfile.lock
+ - node_modules
+ - vendor
+
+# Pagination
+paginate: 10
+paginate_path: "/page:num/"
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..690d772
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+ {% if page.title %}{{ page.title }} | {% endif %}{{ site.title }}
+
+
+
+
+
+
+
+
{{ site.description }}
+
+
+
+
+
+ {{ content }}
+
+
+
+
+
diff --git a/_layouts/home.html b/_layouts/home.html
new file mode 100644
index 0000000..34db57c
--- /dev/null
+++ b/_layouts/home.html
@@ -0,0 +1,27 @@
+---
+layout: default
+---
+
+
+ {{ content }}
+
+
Recent Posts
+
+ {% if site.posts.size > 0 %}
+
+ {% for post in site.posts %}
+ -
+ {{ post.date | date: "%b %d, %Y" }}
+
+ {% if post.excerpt %}
+
{{ post.excerpt | strip_html | truncatewords: 50 }}
+ {% endif %}
+
+ {% endfor %}
+
+ {% else %}
+
No posts yet.
+ {% endif %}
+
diff --git a/_layouts/page.html b/_layouts/page.html
new file mode 100644
index 0000000..32b5f0d
--- /dev/null
+++ b/_layouts/page.html
@@ -0,0 +1,13 @@
+---
+layout: default
+---
+
+
+
+
+
+ {{ content }}
+
+
diff --git a/_layouts/post.html b/_layouts/post.html
index a4db268..dba0ca2 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -1,14 +1,20 @@
-
-
-
-
- {{ page.title }}
-
-
-
- {{ page.title }}
- {{ page.date | date: "%B %d, %Y" }}
+---
+layout: default
+---
+
+
+
+
+
{{ content }}
-
-
-
+
+
+
+
diff --git a/_posts/2026-01-15-sql-injection-fundamentals.md b/_posts/2026-01-15-sql-injection-fundamentals.md
new file mode 100644
index 0000000..90bed4f
--- /dev/null
+++ b/_posts/2026-01-15-sql-injection-fundamentals.md
@@ -0,0 +1,79 @@
+---
+layout: post
+title: "Understanding SQL Injection Attacks"
+date: 2026-01-15
+---
+
+SQL injection remains one of the most common and dangerous web application vulnerabilities. This post explains the fundamentals.
+
+## The Vulnerability
+
+SQL injection occurs when user input is directly concatenated into SQL queries without proper sanitization:
+
+```python
+# Vulnerable code
+username = request.GET['username']
+query = f"SELECT * FROM users WHERE username = '{username}'"
+cursor.execute(query)
+```
+
+An attacker can input `admin' OR '1'='1` to bypass authentication.
+
+## Exploitation Technique
+
+Basic SQL injection follows this pattern:
+
+```sql
+-- Original query
+SELECT * FROM users WHERE username = 'admin' AND password = 'pass123'
+
+-- Injected payload
+username: admin' OR '1'='1' --
+password: anything
+
+-- Resulting query
+SELECT * FROM users WHERE username = 'admin' OR '1'='1' --' AND password = 'anything'
+```
+
+The `--` comment operator causes everything after it to be ignored.
+
+## Prevention
+
+Use parameterized queries:
+
+```python
+# Secure code
+username = request.GET['username']
+query = "SELECT * FROM users WHERE username = ?"
+cursor.execute(query, (username,))
+```
+
+Additional defenses:
+
+- Input validation and sanitization
+- Least privilege database accounts
+- Web application firewalls
+- Regular security audits
+
+## Detection
+
+Look for these indicators in logs:
+
+```text
+username=admin' OR '1'='1
+id=1 UNION SELECT null,null,null--
+search=' AND 1=CONVERT(int, (SELECT @@version))--
+```
+
+Tools like SQLMap automate detection and exploitation during security assessments.
+
+## Real-World Impact
+
+SQL injection can lead to:
+
+- Authentication bypass
+- Data exfiltration
+- Database modification or deletion
+- Remote code execution (in some configurations)
+
+Always validate input and use parameterized queries.
\ No newline at end of file
diff --git a/_posts/2026-02-01-welcome-to-tech-with-orgito.md b/_posts/2026-02-01-welcome-to-tech-with-orgito.md
index fc893ce..76cb81c 100644
--- a/_posts/2026-02-01-welcome-to-tech-with-orgito.md
+++ b/_posts/2026-02-01-welcome-to-tech-with-orgito.md
@@ -1,12 +1,42 @@
---
layout: post
title: "Welcome to Tech with Orgito"
+date: 2026-01-30
---
-This blog is about:
-- Cybersecurity
-- Software engineering
-- CTF writeups
-- Technical research
+This blog covers cybersecurity, software engineering, CTF writeups, and technical research.
-No fluff. Just tech.
+## What to Expect
+
+Technical content focused on:
+
+- Security vulnerabilities and exploit development
+- Software architecture and design patterns
+- CTF challenges and writeups
+- Code analysis and reverse engineering
+- Cloud security and infrastructure
+
+## Code Examples
+
+All posts include properly formatted code with syntax highlighting:
+
+```python
+def exploit_buffer_overflow(target, payload):
+ """
+ Example: Buffer overflow exploitation
+ """
+ offset = 268
+ return_address = b"\xef\xbe\xad\xde"
+
+ exploit = b"A" * offset
+ exploit += return_address
+ exploit += payload
+
+ return exploit
+```
+
+## Technical Writing Style
+
+Posts are concise and technical. No marketing language, no emojis, just clear explanations of complex topics.
+
+Stay tuned for deep dives into security research, software engineering best practices, and CTF solutions.
diff --git a/about.md b/about.md
index 2113fd0..53b348b 100644
--- a/about.md
+++ b/about.md
@@ -3,4 +3,13 @@ layout: page
title: About
---
-Tech with Orgito is a technical blog focused on cybersecurity, CTFs, and software engineering.
+Tech with Orgito is a technical blog focused on:
+
+- Cybersecurity research and practical security
+- Software engineering and system design
+- CTF writeups and challenges
+- Technical experiments and deep dives
+
+This blog aims to provide clear, technical content without fluff. All posts are written in Markdown and focus on practical knowledge and real-world applications.
+
+Topics include exploit development, secure coding practices, reverse engineering, network security, cloud architecture, and various programming languages and frameworks.
diff --git a/assets/css/style.css b/assets/css/style.css
index 092c8b6..94c0f79 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -1,8 +1,367 @@
+/* Reset and Base Styles */
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
body {
- background-color: #0f1117;
- color: #e6e6e6;
- font-family: system-ui, sans-serif;
+ background-color: #0d1117;
+ color: #c9d1d9;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
+ font-size: 16px;
+ line-height: 1.6;
+}
+
+/* Container */
+.container {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 0 20px;
+}
+
+/* Header */
+header {
+ background-color: #161b22;
+ border-bottom: 1px solid #21262d;
+ padding: 2rem 0;
+ margin-bottom: 3rem;
+}
+
+.site-title {
+ font-size: 1.75rem;
+ font-weight: 600;
+ margin-bottom: 0.5rem;
+}
+
+.site-title a {
+ color: #c9d1d9;
+ text-decoration: none;
+}
+
+.site-title a:hover {
+ color: #58a6ff;
+}
+
+.site-description {
+ color: #8b949e;
+ font-size: 1rem;
+ margin-bottom: 1rem;
+}
+
+nav {
+ margin-top: 1rem;
+}
+
+nav a {
+ color: #58a6ff;
+ text-decoration: none;
+ margin-right: 1.5rem;
+ font-size: 0.95rem;
+}
+
+nav a:hover {
+ text-decoration: underline;
+}
+
+/* Main Content */
+main {
+ min-height: calc(100vh - 300px);
+ padding-bottom: 3rem;
}
+
+/* Typography */
+h1, h2, h3, h4, h5, h6 {
+ color: #f0f6fc;
+ font-weight: 600;
+ line-height: 1.25;
+ margin-top: 1.5rem;
+ margin-bottom: 1rem;
+}
+
+h1 { font-size: 2rem; }
+h2 { font-size: 1.5rem; border-bottom: 1px solid #21262d; padding-bottom: 0.3rem; }
+h3 { font-size: 1.25rem; }
+h4 { font-size: 1.1rem; }
+
+p {
+ margin-bottom: 1rem;
+}
+
a {
color: #58a6ff;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+/* Lists */
+ul, ol {
+ margin-bottom: 1rem;
+ padding-left: 2rem;
+}
+
+li {
+ margin-bottom: 0.25rem;
+}
+
+/* Code and Pre */
+code {
+ background-color: #161b22;
+ color: #f0f6fc;
+ padding: 0.2em 0.4em;
+ border-radius: 3px;
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
+ font-size: 0.85em;
+}
+
+pre {
+ background-color: #161b22;
+ border: 1px solid #21262d;
+ border-radius: 6px;
+ padding: 16px;
+ overflow-x: auto;
+ margin-bottom: 1rem;
+ line-height: 1.45;
+}
+
+pre code {
+ background-color: transparent;
+ padding: 0;
+ border-radius: 0;
+ font-size: 0.85rem;
+}
+
+/* Blockquotes */
+blockquote {
+ border-left: 4px solid #21262d;
+ padding-left: 1rem;
+ color: #8b949e;
+ margin-bottom: 1rem;
+ font-style: italic;
+}
+
+/* Home Page */
+.home h2 {
+ margin-top: 2rem;
+ margin-bottom: 1.5rem;
+}
+
+.post-list {
+ list-style: none;
+ padding-left: 0;
+}
+
+.post-list li {
+ margin-bottom: 2rem;
+ padding-bottom: 2rem;
+ border-bottom: 1px solid #21262d;
+}
+
+.post-list li:last-child {
+ border-bottom: none;
+}
+
+.post-meta {
+ color: #8b949e;
+ font-size: 0.9rem;
+ display: block;
+ margin-bottom: 0.5rem;
+}
+
+.post-list h3 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-size: 1.5rem;
+}
+
+.post-list h3 a {
+ color: #f0f6fc;
+}
+
+.post-list h3 a:hover {
+ color: #58a6ff;
+ text-decoration: none;
+}
+
+.post-excerpt {
+ color: #8b949e;
+ margin-bottom: 0;
+}
+
+/* Post Page */
+.post-header {
+ margin-bottom: 2rem;
+ padding-bottom: 1rem;
+ border-bottom: 1px solid #21262d;
+}
+
+.post-title {
+ margin-bottom: 0.5rem;
+ margin-top: 0;
+}
+
+.post-content {
+ margin-bottom: 3rem;
+}
+
+.post-content h1,
+.post-content h2,
+.post-content h3,
+.post-content h4 {
+ margin-top: 2rem;
+}
+
+.post-content img {
+ max-width: 100%;
+ height: auto;
+ border-radius: 6px;
+ margin: 1rem 0;
+}
+
+.post-footer {
+ padding-top: 2rem;
+ border-top: 1px solid #21262d;
+}
+
+.post-footer a {
+ color: #58a6ff;
+}
+
+/* Page Layout */
+.page-header {
+ margin-bottom: 2rem;
+ padding-bottom: 1rem;
+ border-bottom: 1px solid #21262d;
+}
+
+.page-title {
+ margin-top: 0;
+}
+
+.page-content {
+ margin-bottom: 2rem;
+}
+
+/* Footer */
+footer {
+ background-color: #161b22;
+ border-top: 1px solid #21262d;
+ padding: 2rem 0;
+ margin-top: 3rem;
+ color: #8b949e;
+ font-size: 0.9rem;
+}
+
+/* Tables */
+table {
+ border-collapse: collapse;
+ width: 100%;
+ margin-bottom: 1rem;
+}
+
+th, td {
+ border: 1px solid #21262d;
+ padding: 0.5rem;
+ text-align: left;
+}
+
+th {
+ background-color: #161b22;
+ font-weight: 600;
+}
+
+/* Horizontal Rule */
+hr {
+ border: 0;
+ border-top: 1px solid #21262d;
+ margin: 2rem 0;
+}
+
+/* Syntax Highlighting (Rouge GitHub Dark theme) */
+.highlight .c { color: #8b949e; font-style: italic; } /* Comment */
+.highlight .err { color: #f85149; } /* Error */
+.highlight .k { color: #ff7b72; } /* Keyword */
+.highlight .o { color: #ff7b72; } /* Operator */
+.highlight .cm { color: #8b949e; font-style: italic; } /* Comment.Multiline */
+.highlight .cp { color: #8b949e; font-weight: bold; } /* Comment.Preproc */
+.highlight .c1 { color: #8b949e; font-style: italic; } /* Comment.Single */
+.highlight .cs { color: #8b949e; font-weight: bold; font-style: italic; } /* Comment.Special */
+.highlight .gd { color: #ffa198; background-color: #490202; } /* Generic.Deleted */
+.highlight .ge { font-style: italic; } /* Generic.Emph */
+.highlight .gr { color: #f85149; } /* Generic.Error */
+.highlight .gh { color: #79c0ff; font-weight: bold; } /* Generic.Heading */
+.highlight .gi { color: #56d364; background-color: #0f5323; } /* Generic.Inserted */
+.highlight .go { color: #8b949e; } /* Generic.Output */
+.highlight .gp { color: #8b949e; } /* Generic.Prompt */
+.highlight .gs { font-weight: bold; } /* Generic.Strong */
+.highlight .gu { color: #79c0ff; font-weight: bold; } /* Generic.Subheading */
+.highlight .gt { color: #f85149; } /* Generic.Traceback */
+.highlight .kc { color: #79c0ff; } /* Keyword.Constant */
+.highlight .kd { color: #ff7b72; } /* Keyword.Declaration */
+.highlight .kn { color: #ff7b72; } /* Keyword.Namespace */
+.highlight .kp { color: #79c0ff; } /* Keyword.Pseudo */
+.highlight .kr { color: #ff7b72; } /* Keyword.Reserved */
+.highlight .kt { color: #ff7b72; } /* Keyword.Type */
+.highlight .m { color: #79c0ff; } /* Literal.Number */
+.highlight .s { color: #a5d6ff; } /* Literal.String */
+.highlight .na { color: #79c0ff; } /* Name.Attribute */
+.highlight .nb { color: #d2a8ff; } /* Name.Builtin */
+.highlight .nc { color: #f0883e; } /* Name.Class */
+.highlight .no { color: #79c0ff; } /* Name.Constant */
+.highlight .nd { color: #d2a8ff; } /* Name.Decorator */
+.highlight .ni { color: #ffa657; } /* Name.Entity */
+.highlight .ne { color: #f0883e; } /* Name.Exception */
+.highlight .nf { color: #d2a8ff; } /* Name.Function */
+.highlight .nl { color: #79c0ff; } /* Name.Label */
+.highlight .nn { color: #ff7b72; } /* Name.Namespace */
+.highlight .nt { color: #7ee787; } /* Name.Tag */
+.highlight .nv { color: #79c0ff; } /* Name.Variable */
+.highlight .ow { color: #ff7b72; } /* Operator.Word */
+.highlight .w { color: #c9d1d9; } /* Text.Whitespace */
+.highlight .mb { color: #79c0ff; } /* Literal.Number.Bin */
+.highlight .mf { color: #79c0ff; } /* Literal.Number.Float */
+.highlight .mh { color: #79c0ff; } /* Literal.Number.Hex */
+.highlight .mi { color: #79c0ff; } /* Literal.Number.Integer */
+.highlight .mo { color: #79c0ff; } /* Literal.Number.Oct */
+.highlight .sb { color: #a5d6ff; } /* Literal.String.Backtick */
+.highlight .sc { color: #a5d6ff; } /* Literal.String.Char */
+.highlight .sd { color: #a5d6ff; } /* Literal.String.Doc */
+.highlight .s2 { color: #a5d6ff; } /* Literal.String.Double */
+.highlight .se { color: #79c0ff; } /* Literal.String.Escape */
+.highlight .sh { color: #a5d6ff; } /* Literal.String.Heredoc */
+.highlight .si { color: #a5d6ff; } /* Literal.String.Interpol */
+.highlight .sx { color: #a5d6ff; } /* Literal.String.Other */
+.highlight .sr { color: #7ee787; } /* Literal.String.Regex */
+.highlight .s1 { color: #a5d6ff; } /* Literal.String.Single */
+.highlight .ss { color: #a5d6ff; } /* Literal.String.Symbol */
+.highlight .bp { color: #79c0ff; } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #79c0ff; } /* Name.Variable.Class */
+.highlight .vg { color: #79c0ff; } /* Name.Variable.Global */
+.highlight .vi { color: #79c0ff; } /* Name.Variable.Instance */
+.highlight .il { color: #79c0ff; } /* Literal.Number.Integer.Long */
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .container {
+ padding: 0 15px;
+ }
+
+ header {
+ padding: 1.5rem 0;
+ }
+
+ .site-title {
+ font-size: 1.5rem;
+ }
+
+ h1 { font-size: 1.75rem; }
+ h2 { font-size: 1.35rem; }
+ h3 { font-size: 1.15rem; }
+
+ nav a {
+ margin-right: 1rem;
+ }
}
diff --git a/index.md b/index.md
index e00fc76..26b4b13 100644
--- a/index.md
+++ b/index.md
@@ -2,6 +2,4 @@
layout: home
---
-# Tech with Orgito
-
-Cybersecurity, software engineering, and learning by breaking things.
+Technical blog focused on cybersecurity, software engineering, and breaking things to understand how they work.