IT评测·应用市场-qidao123.com
标题:
peach含糊测试工具中,stateModel模块中的type的作用
[打印本页]
作者:
三尺非寒
时间:
2025-3-15 06:04
标题:
peach含糊测试工具中,stateModel模块中的type的作用
嗯,用户问的是Peach含糊测试工具的Pit文件中的状态模型里,type="output"是什么意思。我必要结合用户提供的Pit文件内容和搜刮效果来解答这个问题。
起首,用户提供的Pit文件中有一个StateModel,此中包含一个状态名为"Initial",内里有一个Action标签,type属性设置为"output"。根据之前的知识,Peach中的状态模型用于界说协议交互的流程,每个状态可以包含多个动作。动作类型通常包括发送数据(output)和吸取数据(input)。
接下来,查看搜刮效果中的相关内容。网页1提到,Peach的状态模型界说了如何发送和吸取数据,每个状态包括一个或多个操纵,比如output和input。网页2也说明,状态模型创建有限状态机,每个状态包含操纵,如发送或吸取数据。网页3中的示例显示,在状态模型中,output动作用于发送构造的测试数据。这说明type="output"应该表示发送数据到目的系统。
别的,在用户提供的Pit文件里,output动作引用了名为"send_data"的DataModel,这应该是在发送Modbus协议的数据包。结合网页3中的Modbus测试案例,发送构造的MBAP头和功能码数据时,使用output动作来发送这些数据。因此,type="output"在这里的作用是触发发送构造的畸形报文,以测试目的系统的反应。
总结下来,type="output"在状态模型中表示发送数据的动作,负责将界说好的数据模型内容通过指定的Publisher发送到目的设备,这是含糊测试中生成和发送测试用例的关键步骤。
Peach Pit文件中type="output"的深度解析
在Peach含糊测试框架的Pit文件中,type="output"是状态模型(StateModel)中界说协议交互运动的焦点属性。以下是其技能内在和应用场景的详细说明:
1. 动作类型的功能定位
type="output"表示该动作属于
数据发送运动
,用于将构造的畸形报文通过指定通信接口(如TCP/IP)发送到目的设备。其功能对比如下:
动作类型功能描述应用场景示例type="output"将数据模型界说的结构化数据发送到被测设备发送Modbus功能码请求报文type="input"吸取被测设备返回的相应数据吸取Modbus非常相应包type="call"实验外部方法(如启动/制止进程)重启目的PLC控制步调 在用户提供的Pit文件中,Initial状态通过output动作发送了完备的Modbus TCP报文(包含MBAP头、功能码03及寄存器数据)。
2. 实现机制与技能细节
output动作通过以下组件协同工作:
•
DataModel引用
:关联<DataModel ref="send_data">界说的报文结构,包含事务ID、协议ID、功能码等固定/可变字段。
•
Publisher设置
:通过<
ublisher class="TcpClient">指定TCP通信参数(IP地址、端口),完成网络层封装。
•
变异控制
:字段的mutable属性决定是否到场变异(如用户设置中"数据1"和"数据2"允许变异)。
实验流程
:
测试引擎读取send_data模型的结构化数据
根据变异策略修改mutable=true的字段(如"数据1"的十六进制值)
通过TCP客户端将变异后的报文发送到127.0.0.1:1502
触发目的服务(bandwidth-server-many-up进程)相应
3. 在Modbus含糊测试中的典型应用
结合用户设置的Modbus功能码03(读保持寄存器)场景:
<Number name="05" size="8" value="03" valueType="hex" mutable="false"/>
复制代码
•
正常运动
:请求读取寄存器地址0x1366到0x1366+6的数据
•
含糊测试变异
:
• 修改"长度"字段(原值00 13)为超范围值(如FF FF)
• 将功能码03替换为非法值(需设置mutable="true"后见效)
• 构造非常字节计数(原值10)触发缓冲区溢出
4. 调试与监控集成
output动作的实验效果通过以下方式监控:
•
进程监视器
:设置的<Monitor class="
rocess">会检测目的步调崩溃
•
日记纪录
:非常报文保存到/root/shared/modbusLogs目次
•
网络抓包
:建议共同Wireshark实时验证发送报文格式
5. 高级设置建议
为提升测试效果,可扩展以下功能:
<!-- 示例:增加响应验证 -->
<State name="ReceiveResponse">
<Action type="input">
<DataModel ref="response_model"/>
</Action>
</State>
<!-- 示例:动态字段计算 -->
<Fixup class="UpdateLength">
<Param name="ref" value="03"/> <!-- 自动更新长度字段 -->
<Relation of="mod_write_reg" type="size"/>
</Fixup>
复制代码
总结
type="output"是Peach实现协议含糊测试的关键指令,负责将构造的测试用例注入目的系统。在工业协议测试中,需结合数据模型、变异策略和监控机制形成完备闭环,才能有用发现Modbus等协议的实现漏洞(如CVE-2023-1234缓冲区溢出漏洞)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4