XSStrike geckodriver no such file error 해결하기

XSStrike를 맥에서 쓰려고 하니 이런 에러가 나타났었습니다. (보통은 리눅스에서 작업을 많이 했어가지고.. )

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 769, in __init__
    restore_signals, start_new_session)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1516, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "xsstrike.py", line 167, in <module>
    scan(target, paramData, encoding, headers, delay, timeout, skipDOM, find, skip)
  File "/Users/~~~/XSStrike/modes/scan.py", line 149, in scan
    success = browserEngine(response)
  File "/Users/~~~/XSStrike/core/browserEngine.py", line 13, in browserEngine
    browser = webdriver.Firefox(options=options)
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

아무튼 내용을 요약해보면, geckodriver를 못찾아서 발생한 문제입니다. 초기엔 geckodriver의 path 문제인가 싶어서 별도 바이너리로 위치를 맞춰줬지만 실패하였습니다…

알고보니 별다른건 아닙니다. 맥의 경우 brew로 설치해주면 말끔히 해결됩니다. (저처럼 바이너리로 삽질하지 마시길..)

brew install geckodriver

이후 돌려보니 아주 잘 되네요 :)

Checking for DOM vulnerabilities
WAF Status: Offline
Testing parameter: q
Reflections found: 18
Analysing reflections
Generating payloads
Payloads generated: 50
Progress: 28/50