1

http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flaskを読んで、Flask で小さな REST ベースの Web サービスを作成しました。Peach フレームワークを使用して JSON をファジングしたいと思いました。 . ファジングにピットファイル(XML)を使用していることは知っていますが、私の小さな脳では、目的に役立つピットファイルを作成できません。私はピーチピットファイルをたくさん探しましたが、すべて無駄です. ピット ファイルが必要です。ファジング ペイロード用のピット ファイルの作成方法を誰か教えてください。

4

1 に答える 1

2

ピーチに関する素晴らしいチュートリアルがあります。

いくつかの要素を定義する必要があります:

  • 送信するデータの形式を記述するデータ モデル。
  • ファザーの動作を記述する状態モデル。
  • ファジング下でアプリケーションを実行および監視するエージェント。
  • すべての定義をまとめるテスト。

チュートリアルの Peach Pit ファイルの例を次に示します。

<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 データ モデルを使用する場合は、peach アーキテクトの推奨事項に従うことができます。

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# で独自のカスタム パブリッシャーを作成する必要があります。これは、このためのチュートリアルです。

于 2014-11-02T21:05:39.920 に答える