defspider(script_path,script_type): final_files = [] for root, dirs, files in os.walk(script_path, topdown=False): for fi in files: dfile = os.path.join(root, fi) if dfile.endswith(script_type): final_files.append(dfile.replace("\\","/")) print("[+] 共找到了 {} 个PHP文件".format(len(final_files))) return final_files
defscanner(files_list,cmd): for item in files_list: fp = open(item, "r",encoding="utf-8") data = fp.readlines() for line in data: Code_line = data.index(line) + 1 Now_code = line.strip("\n") for unsafe in [cmd]: flag = re.findall(unsafe, Now_code) iflen(flag) != 0: print("函数: {} ---> 函数所在行: {} ---> 路径: {} " .\ format(flag,Code_line,item))
if __name__ == "__main__": path = sys.argv[1] shell = sys.argv[2] ret = spider(path,".php") scanner(ret,shell)