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")
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")