4

これは私のターゲット Web サイトです: http://www.rapid7.com/db/で検索を実行したいのですが、その脆弱性をチェックするために文字列「Symphony」としましょう。

入力フォームの要素を調べると、その名前は「q」であることがわかりますが、これまでのところ問題ありませんが、ボタンには値がありません。代わりに、クエリを送信する必要があるボタンは<span id="run_search" class="vbsearchBtn"></span>値フィールドなしです。

私のコード:

$client = new Client();

$crawler = $client->request('GET', 'http://www.rapid7.com/db/');
$form = $crawler->selectButton('????')->form();
$crawler = $client->submit($form, array('q' => 'Symphony'));
print $crawler->html();

誰もこれを実行する方法を知っていますか?

4

1 に答える 1

4

あなたの問題はフォーム要素を取得することだと理解していますが、なぜこれを行うためにボタンが必要なのですか? id でフォームをクエリできます<form id="search_form" ...>。また、照会するデータベース タイプのパラメータを送信することもできtます (aすべての脆弱性mモジュールの場合)。vコードは次のようになります (CssSelector コンポーネントがインストールされている必要があります)。

$client = new Client();

$crawler = $client->request('GET', 'http://www.rapid7.com/db/');
$form = $crawler->filter('#search_form')->first()->form();
$crawler = $client->submit($form, array('q' => 'Symphony', 't' => 'a'));
print $crawler->html();
于 2015-03-25T15:33:18.387 に答える