Skip to content

Commit f206ddf

Browse files
authored
Merge pull request #1 from TechWithOrgito/copilot/create-tech-with-orgito-blog
Implement Jekyll blog with professional dark theme and syntax highlighting
2 parents ac1e8c1 + bb9c3cd commit f206ddf

12 files changed

Lines changed: 618 additions & 27 deletions

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
_site/
2+
.sass-cache/
3+
.jekyll-cache/
4+
.jekyll-metadata
5+
vendor/
6+
.bundle/
7+
Gemfile.lock
8+
node_modules/
9+
*.gem
10+
.DS_Store

Gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
source "https://rubygems.org"
2+
3+
gem "github-pages", group: :jekyll_plugins
4+
gem "webrick", "~> 1.8"

_config.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
title: Tech with Orgito
22
description: Cybersecurity, software engineering & CTF writeups
3-
theme: minima
3+
url: "https://techwithorgito.github.io"
4+
baseurl: ""
5+
6+
# Build settings
47
markdown: kramdown
8+
highlighter: rouge
9+
permalink: /:year/:month/:day/:title/
10+
11+
# Kramdown settings for better code blocks
12+
kramdown:
13+
input: GFM
14+
syntax_highlighter: rouge
15+
syntax_highlighter_opts:
16+
block:
17+
line_numbers: false
18+
19+
# Exclude from processing
20+
exclude:
21+
- Gemfile
22+
- Gemfile.lock
23+
- node_modules
24+
- vendor
25+
26+
# Pagination
27+
paginate: 10
28+
paginate_path: "/page:num/"

_layouts/default.html

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title }}</title>
7+
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
8+
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
9+
</head>
10+
<body>
11+
<header>
12+
<div class="container">
13+
<h1 class="site-title"><a href="{{ '/' | relative_url }}">{{ site.title }}</a></h1>
14+
<p class="site-description">{{ site.description }}</p>
15+
<nav>
16+
<a href="{{ '/' | relative_url }}">Home</a>
17+
<a href="{{ '/about' | relative_url }}">About</a>
18+
</nav>
19+
</div>
20+
</header>
21+
22+
<main class="container">
23+
{{ content }}
24+
</main>
25+
26+
<footer>
27+
<div class="container">
28+
<p>&copy; {{ site.time | date: '%Y' }} {{ site.title }}. Technical blog powered by Jekyll.</p>
29+
</div>
30+
</footer>
31+
</body>
32+
</html>

_layouts/home.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
layout: default
3+
---
4+
5+
<div class="home">
6+
{{ content }}
7+
8+
<h2>Recent Posts</h2>
9+
10+
{% if site.posts.size > 0 %}
11+
<ul class="post-list">
12+
{% for post in site.posts %}
13+
<li>
14+
<span class="post-meta">{{ post.date | date: "%b %d, %Y" }}</span>
15+
<h3>
16+
<a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
17+
</h3>
18+
{% if post.excerpt %}
19+
<p class="post-excerpt">{{ post.excerpt | strip_html | truncatewords: 50 }}</p>
20+
{% endif %}
21+
</li>
22+
{% endfor %}
23+
</ul>
24+
{% else %}
25+
<p>No posts yet.</p>
26+
{% endif %}
27+
</div>

_layouts/page.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
layout: default
3+
---
4+
5+
<article class="page">
6+
<header class="page-header">
7+
<h1 class="page-title">{{ page.title }}</h1>
8+
</header>
9+
10+
<div class="page-content">
11+
{{ content }}
12+
</div>
13+
</article>

_layouts/post.html

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
1-
<!DOCTYPE html>
2-
<html>
3-
<head>
4-
<meta charset="utf-8">
5-
<title>{{ page.title }}</title>
6-
</head>
7-
<body>
8-
<article>
9-
<h1>{{ page.title }}</h1>
10-
<p><em>{{ page.date | date: "%B %d, %Y" }}</em></p>
1+
---
2+
layout: default
3+
---
4+
5+
<article class="post">
6+
<header class="post-header">
7+
<h1 class="post-title">{{ page.title }}</h1>
8+
<p class="post-meta">
9+
<time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time>
10+
</p>
11+
</header>
12+
13+
<div class="post-content">
1114
{{ content }}
12-
</article>
13-
</body>
14-
</html>
15+
</div>
16+
17+
<footer class="post-footer">
18+
<a href="{{ '/' | relative_url }}">&larr; Back to all posts</a>
19+
</footer>
20+
</article>
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
layout: post
3+
title: "Understanding SQL Injection Attacks"
4+
date: 2026-01-15
5+
---
6+
7+
SQL injection remains one of the most common and dangerous web application vulnerabilities. This post explains the fundamentals.
8+
9+
## The Vulnerability
10+
11+
SQL injection occurs when user input is directly concatenated into SQL queries without proper sanitization:
12+
13+
```python
14+
# Vulnerable code
15+
username = request.GET['username']
16+
query = f"SELECT * FROM users WHERE username = '{username}'"
17+
cursor.execute(query)
18+
```
19+
20+
An attacker can input `admin' OR '1'='1` to bypass authentication.
21+
22+
## Exploitation Technique
23+
24+
Basic SQL injection follows this pattern:
25+
26+
```sql
27+
-- Original query
28+
SELECT * FROM users WHERE username = 'admin' AND password = 'pass123'
29+
30+
-- Injected payload
31+
username: admin' OR '1'='1' --
32+
password: anything
33+
34+
-- Resulting query
35+
SELECT * FROM users WHERE username = 'admin' OR '1'='1' --' AND password = 'anything'
36+
```
37+
38+
The `--` comment operator causes everything after it to be ignored.
39+
40+
## Prevention
41+
42+
Use parameterized queries:
43+
44+
```python
45+
# Secure code
46+
username = request.GET['username']
47+
query = "SELECT * FROM users WHERE username = ?"
48+
cursor.execute(query, (username,))
49+
```
50+
51+
Additional defenses:
52+
53+
- Input validation and sanitization
54+
- Least privilege database accounts
55+
- Web application firewalls
56+
- Regular security audits
57+
58+
## Detection
59+
60+
Look for these indicators in logs:
61+
62+
```text
63+
username=admin' OR '1'='1
64+
id=1 UNION SELECT null,null,null--
65+
search=' AND 1=CONVERT(int, (SELECT @@version))--
66+
```
67+
68+
Tools like SQLMap automate detection and exploitation during security assessments.
69+
70+
## Real-World Impact
71+
72+
SQL injection can lead to:
73+
74+
- Authentication bypass
75+
- Data exfiltration
76+
- Database modification or deletion
77+
- Remote code execution (in some configurations)
78+
79+
Always validate input and use parameterized queries.
Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,42 @@
11
---
22
layout: post
33
title: "Welcome to Tech with Orgito"
4+
date: 2026-01-30
45
---
56

6-
This blog is about:
7-
- Cybersecurity
8-
- Software engineering
9-
- CTF writeups
10-
- Technical research
7+
This blog covers cybersecurity, software engineering, CTF writeups, and technical research.
118

12-
No fluff. Just tech.
9+
## What to Expect
10+
11+
Technical content focused on:
12+
13+
- Security vulnerabilities and exploit development
14+
- Software architecture and design patterns
15+
- CTF challenges and writeups
16+
- Code analysis and reverse engineering
17+
- Cloud security and infrastructure
18+
19+
## Code Examples
20+
21+
All posts include properly formatted code with syntax highlighting:
22+
23+
```python
24+
def exploit_buffer_overflow(target, payload):
25+
"""
26+
Example: Buffer overflow exploitation
27+
"""
28+
offset = 268
29+
return_address = b"\xef\xbe\xad\xde"
30+
31+
exploit = b"A" * offset
32+
exploit += return_address
33+
exploit += payload
34+
35+
return exploit
36+
```
37+
38+
## Technical Writing Style
39+
40+
Posts are concise and technical. No marketing language, no emojis, just clear explanations of complex topics.
41+
42+
Stay tuned for deep dives into security research, software engineering best practices, and CTF solutions.

about.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,13 @@ layout: page
33
title: About
44
---
55

6-
Tech with Orgito is a technical blog focused on cybersecurity, CTFs, and software engineering.
6+
Tech with Orgito is a technical blog focused on:
7+
8+
- Cybersecurity research and practical security
9+
- Software engineering and system design
10+
- CTF writeups and challenges
11+
- Technical experiments and deep dives
12+
13+
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.
14+
15+
Topics include exploit development, secure coding practices, reverse engineering, network security, cloud architecture, and various programming languages and frameworks.

0 commit comments

Comments
 (0)