Исполняемый против стека NX в BOF?

Попробуйте следующее:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get(url)
# find all elements with following xPath (returns a list of elelements)
buttons = driver.find_elements_by_xpath("//a[@class = 'playButton']") # using xPath

, или если вы хотите щелкнуть по одному элементу, используйте это:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get(url)
# wait(at least 10 seconds) for element will be clickable and clcick on it
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class = 'playButton']"))).click();

Здесь вы можете найти больше информация о местонахождении элементов.

1
задан Henok Tesfaye 19 January 2019 в 20:45
поделиться

2 ответа

Основанная на стеке атака переполнения буфера работает путем

  • перезаписи адреса возврата и
  • размещения вредоносного кода дальше по стеку.

Новое значение обратного адреса указывает на правильное место внутри вредоносного кода. Когда функция возвращается, она возвращается в вредоносный код, который начинает выполняться.

Но помните, что это в стеке. Если стек не является исполняемым, программа просто падает, не выполняя плохих вещей.

0
ответ дан user58697 19 January 2019 в 20:45
поделиться

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

gcc -m32 -z execstack -o shell  exploit.c
0
ответ дан Henok Tesfaye 19 January 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: