データ作成画面と削除画面3(残ったデータを削除するための連続実行)(連続してHTTPリクエストを送信する(マクロの使い方))

# sWebMachineGun.exe実践編

「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」や「[データ作成画面と削除画面2(削除画面)](https://qiita.com/tomoki0sanaki/items/a7673dd160e79950186e)」で説明したように、1レコード作って削除して、、、を繰り返してもいいが、データ作成画面だけイッキに脆弱性診断を実施して、、、次に削除画面を脆弱性診断を実施する、という作業手順でもよいだろう。

どちらにしても、作成したデータが残ってしまうことがあるわけで、それを一斉に削除する方法、が今回のテーマです

ポイントとしては、変化する部分をカウント数を示すマクロ「%%c%」、またはグローバルな値を示すマクロ「%%g%」あたりを使って削除リクエストを連続実行して、脆弱性診断で作成したデータを一斉に削除することができるでしょう。

## 診断対象

こんな感じ
<table border="1">
<tr>
<th align="center">登録データ一覧画面</th>
<th align="center">データ削除画面</th>
</tr>
<tr>
<td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/bf50f546-58af-45d6-94cf-e056bb067308.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/bf50f546-58af-45d6-94cf-e056bb067308.png" width="70%" height="70%"></a></td>
<td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/91cc1f2c-9230-efa6-e3e2-c2db8658954b.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/91cc1f2c-9230-efa6-e3e2-c2db8658954b.png" width="70%" height="70%"></a></td>
</tr>
<tr>
<td colspan="2" valign="top">GET /sanaki/yourdata/testIdInputDelete.asp?id=10 HTTP/1.0</td>
</tr>
</table>

「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」または「[データ作成画面と削除画面2(削除画面)](https://qiita.com/tomoki0sanaki/items/a7673dd160e79950186e)」の削除リクエストだけ取り出した感じです

## 事前作業

### 事前にどのデータを消すのか調べておく

![068.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/59b95ea5-9465-f6a0-0201-89f306066458.png)

例えば、こんな感じ。

ここでは、データ作成画面に対して脆弱性診断を実施した結果、id=24以降で、id=37までのデータが作成されたので、(37-24=13...大体20リクエスト)削除しようと思う。

## sWebMachineGun.exeの設定

メインの設定は、HTTPリクエストの設定と、置換方法の設定

### sWebMachineGun.exeの設定1

「Request」タブに、一つのHTTPリクエストを設定する

![069.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/9abd3a61-b7d3-b63b-95ab-df7e929517c1.png)

このリクエストテンプレート画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」や「[データ作成画面と削除画面2(削除画面)](https://qiita.com/tomoki0sanaki/items/a7673dd160e79950186e)」の削除リクエストテンプレートと基本的に同じですが、マクロが「%%c%」となっている点が異なっています。

### sWebMachineGun.exeの設定2

今回は、様々な文字列へ置換していく、、、というより、データ削除を連続実行したいだけなので、「Use ReplaceList」チェックボックスはOffにして、単純な繰り返し実行のモードにする。

そして、カウンタ設定にして、マクロ「%%c%」へ埋め込む値を設定する。
初期値は、24で、ステップ数は「+1」なので、マクロ「%%c%」は、24,25,26,27....と続き、繰り返し回数は、「%%c%」が37よりはちょっと大きい値になるであろう20回とした。

![070.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/d5384886-feb8-6b20-6094-824a42fbdf9d.png)

### sWebMachineGun.exeの設定2a

今回はマクロ「%%c%」を用いているが、マクロ「%%g%」を用いる場合は、「General Setting」タブの「グローバルカウンタ」設定で設定する

![071.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/cc3446d1-3d86-e48e-7a17-b13603ba76b8.png)

マクロ「%%c%」は、実行ボタンを押下ごとに初期化される

一方、マクロ「%%g%」は、sWebMachineGun.exeが起動中保持される値(起動直後は&quot;1&quot;)で、画面では次の「%%g%」は「24」、次の次はステップ数が「1」なので「25」....というような感じ。

まぁ、繰り返し回数は上記の「Setting」タブで指定する必要はあるが・・・

## sWebMachineGun.exeの実行

「Execute」ボタンで、実行できるのですが、結果はこんな感じで、

![072.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/395b8aa4-063c-772a-5c29-7418fe9be80b.png)

id=24～id=44までのデータ削除リクエストが送られていることが分かると思う。

実際に、実行後は、こんな感じで、削除したいデータが削除されていることが分かる

![073.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/104aa327-5c11-1ef0-2c8a-01e113bc306b.png)

# そのほかのマクロ

いろいろあるよ。
「Macro」というボタンを押すと、ヘルプメッセージのダイアログが表示されるよ

![074.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/cf06a595-5cb0-d155-8d08-74f9f3a129a4.png)

# 注意事項

- 脆弱性診断中に、お客さん側もデバグ(検収)していると、お客さん側が新規作成したデータも削除されるかもしれない

# sWebMachineGun.exe Index

[sWebMachineGun.exe のメインメニューに戻る](https://qiita.com/tomoki0sanaki/items/e2b7767551a576b1dbd3)