2014-10-08 24 views
1

我在Flask中通過閱讀http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask製作了一個基於REST的小型Web服務,現在我想用Peach框架來模糊JSON。我知道這是使用坑文件(XML)進行模糊處理,但我的小腦袋無法制作能夠滿足我的目的的坑文件。我爲桃坑文件搜索了很多,但都是徒勞的。 我需要一個坑文件或任何人都可以告訴如何創建一個坑文件fuzzing有效載荷。Fuzz JSON和桃子

回答

2

有一個很好的教程關於桃可用there

幾個因素需要加以定義:

  • 的數據模型描述你要發送的數據的格式。
  • 一個描述模糊器行爲的狀態模型。
  • 代理運行和監視模糊應用程序。
  • 將所有定義結合在一起的測試。

這是一個來自教程的桃坑文件的例子。

<Peach xmlns="http://peachfuzzer.com/2012/Peach" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://peachfuzzer.com/2012/Peach ../peach.xsd"> 
    <DataModel name="DataHTER"> 
    <String value="HTER " mutable="false" token="true"/> 
    <String value=""/> 
    <String value="\r\n" mutable="false" token="true"/> 
    </DataModel> 
    <StateModel name="StateHTER" initialState="Initial"> 
    <State name="Initial"> 
     <Action type="input" ><DataModel ref="DataResponse"/></Action> 
     <Action type="output"><DataModel ref="DataHTER"/></Action> 
     <Action type="input" ><DataModel ref="DataResponse"/></Action> 
    </State> 
    </StateModel> 
    <DataModel name="DataResponse"> 
    <String value=""/> 
    </DataModel> 
    <Agent name="RemoteAgent" location="tcp://127.0.0.1:9001"> 
    <!-- Run and attach windbg to a vulnerable server. --> 
    <Monitor class="WindowsDebugger"> 
     <Param name="CommandLine" value="C:\Documents and Settings\Administrator\Desktop\vulnserver\vulnserver.exe"/> 
     <Param name="WinDbgPath" value="C:\Program Files\Debugging Tools for Windows (x86)" /> 
    </Monitor> 
    </Agent> 
    <Test name="TestHTER"> 
    <Agent ref="RemoteAgent"/> 
    <StateModel ref="StateHTER"/> 
    <Publisher class="TcpClient"> 
     <Param name="Host" value="127.0.0.1"/> 
     <Param name="Port" value="9999"/> 
    </Publisher> 
    <Logger class="File"> 
     <Param name="Path" value="Logs"/> 
    </Logger> 
    </Test> 

如果你想使用一個JSON數據模型,你可以按照recommendation of one of the peach architect

1)定義對應於JSON的數據模型。

JSON對象

{ 
    "name":"John Smith", 
    "address":{ 
    "address1":"555 Main St.", 
    "city":"Seattle" 
    } 
} 

數據模型

<DataModel> 
    <String name="name" value="John Smith" /> 
    <Block name="address"> 
    <String name="address1" value="555 Main St." /> 
    <String name="city" value="Seattle" /> 
    </Block> 
</DataModel> 

然後你必須寫在C#你自己的自定義發佈。這是一個tutorial爲此。

+1

問題是如何模糊JSON部分? – 2014-11-03 13:54:57