ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

внедрение sql
  #1  
Старый 13.02.2006, 00:18
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию внедрение sql

Хочу написать вот статью о технологии взлома sql.
Как-то, имхо, статей объясняющих "как" - много – а "почему" - мало.
Вот я и постараюсь объяснить это самое "почему" для тех, кому это интересно.
Итак, приступим.
Язык sql состоит из предопределённых ключевых слов и специальных символов.
Для того чтобы извлечь какие-либо данные из таблицы данных, необходимо воспользоваться оператором SELECT. При работе с web приложениями, как правило, именно этот оператор с ключевыми словами FROM и WHERE. Внедряя инструкции sql в такие запросы, можно добиться результата не предусмотренного … гм… просто непредусмотренного
Формат выражений языка строго не определён, потому одно и тоже выражение может быть записано несколькими способами – что немного усложняет восприятие инструкций языка.
Ну, пожалуй, введение можно закончить.
Перейдём к практике
OR 1=1
(Например видео от zFailure со взломом гостевой книги (advanced guestbook 2.2))
Очевидно, что это выражение создаёт логическое выражение, результатом выражения которого всегда будет "истина". Данное выражение используется, например, в запросах аутентификации когда проверяют пользовательские имя и пароль.

Код:
sqlAuth = "SELECT userid FROM logins WHERE name='" & Username & "' AND password='" & Password & "'"
Если пользователь входит в систему с именем lexa и паролем lamer, то запрос будет выглядеть примерно так -
Код:
SELECT userid FROM logins WHERE name='lexa' AND password='lamer'
Из вышенаписанного получается, что пользователь lexa не сможет зайти в систему пока значение lamer непопадёт в БД. Но если наш Алексей умело вставит значенпие OR 1=1, то он может избавить себя от проверки пароля.
что-т типа того :
Код:
SELECT userid FROM logins WHERE name='lexa' AND password='lamer' OR 1=1
UNION
Этот оператор используется совместно с SELECT для извлечения всех столбцов из таблицы. Синтаксис -
Код:
UNION ALL SELECT field FROM table WHERE condition
Может использоваться например в сообщениях об ошибках sql.

INSERT
Как понятно из названия - этот оператор предназначен для добавления каких-либо значений в БД. С помощью этого оператора можно впринципе добавить нового пользователя - admin с паролем 123
Код:
INSERT INTO Users VALUES('admin', '123')

Мда... Всё таки письменно выражать свои мысли значительно тяжелее, нежели устно. хз что получилось
Тем не менее надеюсь что это поможет хоть кому нибудь.
В заключение приведу небольшую памятку сиволов которые можно использовать в sql injection.
Код:
'
Завершает выражение.
Код:
--
Однострочный комментарий. всё что за ним - игнорируется.
Код:
+
Пробел
Код:
,@переменная
Добавляет переменную
Код:
?Param=lam&Param=mal
Присваивает переменной Param значения lam и mal
Код:
SET
Объявление переменных. Используется для многострочных выражений.



Заключение.
Вот вижу что тут кому-то не понравилось . А ты сам напиши
 
Ответить с цитированием

  #2  
Старый 13.02.2006, 19:18
virgoz
Участник форума
Регистрация: 16.09.2004
Сообщений: 193
Провел на форуме:
621131

Репутация: 47
Отправить сообщение для virgoz с помощью ICQ
По умолчанию

Сори но чето я не догнал
' - это же не всегда завершает выражение, везде по разному...
-- - только для mssql
И про остальное тоже...
Цитата:
SELECT userid FROM logins WHERE name='lexa' AND password='lamer' OR 1=1
тут же проще ?name=1' or 1=1/*
 
Ответить с цитированием

  #3  
Старый 13.02.2006, 20:11
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

' virgoz. Насчёт кавычки? Попрошу поподробнее. Я что-то тебя не понимаю 0_0
А про комментарии - да. Я говорил именно о Microsoft sql server.
 
Ответить с цитированием

  #4  
Старый 13.02.2006, 22:02
virgoz
Участник форума
Регистрация: 16.09.2004
Сообщений: 193
Провел на форуме:
621131

Репутация: 47
Отправить сообщение для virgoz с помощью ICQ
По умолчанию

Union select * from bla where id=$e, где $e=1'
Ну вот тут допустим эта кавычка ниче не закроет.
 
Ответить с цитированием

Тулзу простенькую накодил.
  #5  
Старый 27.12.2007, 12:04
MartS
Новичок
Регистрация: 03.04.2007
Сообщений: 17
Провел на форуме:
90770

Репутация: 11
По умолчанию Тулзу простенькую накодил.

Вот небольшую тулзу накодил, для облегчения взлома серверов, юзая скулю, где фильтруются / слешируются кавычки.
(формирует из строки вида /etc/passwd строку вида char(47,101,116,99,47,112,97,115,115,119,100) )
простенькая, но полезная.

качать тут http://ifolder.ru/4738224

Последний раз редактировалось MartS; 27.12.2007 в 12:12..
 
Ответить с цитированием

  #6  
Старый 27.12.2007, 12:16
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

hack-shop.org.ru/code.php

Последний раз редактировалось Spyder; 27.12.2007 в 12:19..
 
Ответить с цитированием

  #7  
Старый 27.12.2007, 12:21
MartS
Новичок
Регистрация: 03.04.2007
Сообщений: 17
Провел на форуме:
90770

Репутация: 11
По умолчанию

ну а так локально)
(тот линк раньше не видел)
 
Ответить с цитированием

  #8  
Старый 27.12.2007, 12:37
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

PHP код:
<?
$string
='/etc/passwd';
$str='char(';
for(
$i=0;$i<strlen($string);$i++)
{
$i==(strlen($string)-1)?$str.=ord($string[$i]):$str.=ord($string[$i]).",";
}
$str.=')';
echo(
$str);
?>
 
Ответить с цитированием

  #9  
Старый 27.12.2007, 12:40
MartS
Новичок
Регистрация: 03.04.2007
Сообщений: 17
Провел на форуме:
90770

Репутация: 11
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
edit2.Text :='';
edit2.Text :='char(';
    for i:=1 to  length(edit1.Text)     do
      begin
          edit2.Text :=edit2.Text+ inttostr((ord(edit1.text[i])));
          if i <> length(edit1.Text)    then edit2.Text:=edit2.text+',';
      end;
         edit2.Text:=edit2.text+')';
end;

end.
вот сурс дельфинский
 
Ответить с цитированием

  #10  
Старый 27.12.2007, 16:20
n0ne
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме:
2693408

Репутация: 861


По умолчанию

http://webfile.ru/1658613 имхо самая удобная тема (спс какому-то мемберу, кто-то выкладывал...не помню)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть первая k00p3r Чужие Статьи 1 12.07.2005 08:51
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ