maurosoria / dirsearch

Web path scanner
11.57k stars 2.29k forks source link

TypeError: decode() argument 'encoding' must be str, not None #1340

Closed Laura0xiaoshizi closed 6 months ago

Laura0xiaoshizi commented 7 months ago

What is the current behavior?

What actually happens? 偶尔

Traceback (most recent call last): File "dirsearch.py", line 48, in <module> main = Program() File "dirsearch.py", line 44, in __init__ self.controller = Controller(self.script_path, self.arguments, self.output) File "/Users/jason/fuck/tools/dirsearch/lib/controller/controller.py", line 281, in __init__ self.prepare() File "/Users/jason/fuck/tools/dirsearch/lib/controller/controller.py", line 601, in prepare self.fuzzer.start() File "/Users/jason/fuck/tools/dirsearch/lib/core/fuzzer.py", line 146, in start self.setup_scanners() File "/Users/jason/fuck/tools/dirsearch/lib/core/fuzzer.py", line 88, in setup_scanners self.default_scanner = Scanner(self.requester) File "/Users/jason/fuck/tools/dirsearch/lib/core/scanner.py", line 41, in __init__ self.setup() File "/Users/jason/fuck/tools/dirsearch/lib/core/scanner.py", line 92, in setup self.dynamic_parser = DynamicContentParser( File "/Users/jason/fuck/tools/dirsearch/thirdparty/sqlmap/DynamicContentParser.py", line 16, in __init__ self.generateDynamicMarks(firstPage, secondPage) File "/Users/jason/fuck/tools/dirsearch/thirdparty/sqlmap/DynamicContentParser.py", line 33, in generateDynamicMarks self.cleanPage = self.removeDynamicContent(firstPage, self.dynamicMarks) File "/Users/jason/fuck/tools/dirsearch/thirdparty/sqlmap/DynamicContentParser.py", line 107, in removeDynamicContent page = page.decode(encoding, errors="replace") TypeError: decode() argument 'encoding' must be str, not None

DynamicContentParser.py

if page and len(dynamicMarks) > 0: encoding = chardet.detect(page)["encoding"] page = page.decode(encoding, errors="replace")

改成 如下:

if page and len(dynamicMarks) > 0: encoding_info = chardet.detect(page) encoding = encoding_info["encoding"] if encoding_info and encoding_info["encoding"] else "utf-8" page = page.decode(encoding, errors="replace")

ajcriado commented 6 months ago

@Laura0xiaoshizi Could you provide some info to reproduce the issue please?

shelld3v commented 6 months ago

Hi @Laura0xiaoshizi, you are using a very old version of dirsearch, please update it!