maurosoria / dirsearch

Web path scanner
11.76k stars 2.29k forks source link

OSError: Too many open files #1212

Open shamrocksu88 opened 1 year ago

shamrocksu88 commented 1 year ago

What is the current behavior?

Errors out during the scan with error - OSError: [Errno 24] Too many open files when ran with domain list as param.

python3 dirsearch.py -l domains.txt

Tried with various thread values as well but still the same error.

What is the expected behavior?

Should not error out instead directory scan should complete.

Any additional information?

Version: dirsearch v0.4.2 OS: macOS

Error:

[########### ] 56% 6427/11460 161/s job:89/1067 errors:220Traceback (most recent call last): [ ] 0% 5/11460 161/s job:90/1066 errors:220 File "dirsearch.py", line 71, in [ ] 0% 5/11460 161/s job:90/1066 errors:220 File "dirsearch.py", line 67, in main File "/Users/test/Desktop/tool/dirsearch/lib/controller/controller.py", line 79, in init [ ] 0% 6/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/controller/controller.py", line 221, in run [ ] 0% 6/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/controller/controller.py", line 265, in start File "/Users/test/Desktop/tool/dirsearch/lib/controller/controller.py", line 550, in process [ ] 0% 6/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/core/fuzzer.py", line 54, in wait [ ] 0% 7/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/core/fuzzer.py", line 184, in scan [ ] 0% 7/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/controller/controller.py", line 453, in match_callback [ ] 0% 7/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/core/decorators.py", line 57, in with_locking [ ] 0% 8/11460 161/s job:90/1066 errors:220 File "/Users/test/Desktop/tool/dirsearch/lib/reports/base.py", line 37, in save OSError: [Errno 24] Too many open files: '/Users/test/Desktop/tool/dirsearch/reports/BATCH-22-10-06_15-10-27/BATCH.txt'

shelld3v commented 1 year ago

python3 dirsearch.py --version output?

iamxhunt3r commented 1 year ago

dirsearch v0.4.3

maurosoria commented 6 months ago

Please, try one of this bugfixes. If you can try both and give us feedback, far far better!

Increasing File Limit with ulimit on macOS

Temporary Increase

  1. Open the Terminal.
  2. Execute ulimit -n 4096 (or another higher number) to increase the file limit temporarily.
  3. Run dirsearch in the same Terminal session.

Permanent Increase

  1. Open your shell configuration file (.bashrc, .bash_profile, .zshrc, etc.) in a text editor.
  2. Add the line ulimit -n 4096 at the end of the file.
  3. Save the file and restart the Terminal.

Modifying dirsearch Main Function in Python

Edit the Python Script

  1. Locate the dirsearch.py file.
  2. Open it in a text editor.

Import the resource Module

Set File Limit in Python

shelld3v commented 6 months ago

@maurosoria I'm not sure but maybe we forgot to close files somewhere? I have a local work that will refactor the entire report-saving thing so let's hope that it will somehow fix this 🙏

maurosoria commented 6 months ago

yes @shelld3v that must be the issue!! Report manager should close the files but for some reason is not doing it. Perhaps a line missing in controller.py ? Does ReportManager has a proper destructor function?