如何修复Sulley模糊测试器网络层模糊测试的语法错误
修复Sulley模糊测试脚本中的语法错误
我看到你在编写Sulley框架的模糊测试脚本时遇到了语法错误,这是因为脚本里有两处明显的语法问题,我们一步步来修复:
错误原因分析
报错指向的第8行存在两个核心问题:
- 错误使用了
@符号,这个符号在Python里是装饰器语法,完全不适用于当前配置场景 - 字典键值对的分隔符误用了竖线
|,Python字典的键值对正确分隔符是冒号:
另外,这行代码和后面正确的procmon_options定义重复,属于冗余代码。
修复后的完整代码
from sulley import * from requests import httpcallAX # 初始化模糊测试会话 sess = sessions.session(session_filename="audits/http.session") # 配置目标主机与监控客户端 target = sessions.target("192.168.175.129", 30888) target.netmon = pedrpc.client("192.168.175.129", 26001) target.procmon = pedrpc.client("192.168.175.129", 26002) # 配置进程监控选项(使用标准Python字典语法) target.procmon_options = { "proc_name": "tvMobiliService.exe", "stop_commands": ['net stop tvMobiliService'], "start_commands": ['net start tvMobiliService'], } # 绑定目标并启动模糊测试 sess.add_target(target) sess.connect(sess.root, s_get("HTTP")) sess.fuzz()
关键修改点
- 移除冗余错误代码:直接删掉
@ target.procmon_options = ("proc_name" | "tvMobiliService.exe")这一行,它既存在语法错误又和后续配置重复 - 修正字典格式:把原来的括号
()替换为Python标准的字典大括号{},同时确保所有键值对使用冒号:分隔,让代码符合Python语法规范 - 优化代码结构:调整了代码的缩进和换行,让配置逻辑更清晰,便于后续维护
另外补充:如果你导入的httpcallAX不是自定义的请求模块,可能存在笔误,但这不是当前语法错误的根源,你可以后续根据实际需求调整导入语句。
内容的提问来源于stack exchange,提问作者Wei Wei Tan
相关产品推荐
相关产品推荐

