質問するログイン新規登録

質問編集履歴

8

試してみたことを追加

2020/10/28 08:27

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -143,4 +143,10 @@
143
143
  passwd_q = ''.join(passwd_q)
144
144
  attempt_brute_force = BruteForcer(passwd_q)
145
145
  attempt_brute_force.html_brute_forcer_thread_starter()
146
- ```
146
+ ```
147
+
148
+ ### 試してみたこと
149
+ ```
150
+ print(brute_force_page)
151
+ ```
152
+ でパスワードを入れてリクエストしか結果を確認しようとしても、そのデータが出力されません。

7

情報の追加

2020/10/28 08:27

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -46,6 +46,8 @@
46
46
  ```
47
47
  で返ってくるWebページの結果をちゃんと解析できてないのかな、と思うのですが、どこを修正すればいいのか今一つ見当がつきません...。
48
48
 
49
+ パスワードが間違っていたならば、返ってくるWebページにはちゃんと<form>要素は含まれ、それを検知してまだログインできていないと認識できるはずなのですが。
50
+
49
51
  ### 該当のソースコード
50
52
 
51
53
  ```python

6

タイトルの修正

2020/10/28 08:23

投稿

aardvark
aardvark

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- パスワード保護されたWordPressページに総当たり攻撃をかけるとしたら
1
+ パスワード保護されたWordPressページに総当たり攻撃をかけてみ実験を行っているのですが
body CHANGED
File without changes

5

何が問題なのかをちゃんと説明してみました

2020/10/28 08:21

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,11 @@
1
+ ### 前提・実現したいこと
2
+
1
3
  実験として、パスワード保護されたWordPressページに総当たり攻撃をかけるPythonプログラムを書いています。
2
4
 
3
5
  (例えば、仮に英数字3文字のパスワードを用いたら、どれほど簡単に突破されてしまうか、といった実験です。)
4
6
 
7
+ 第三者サーバーではなく、Localで適当にやってみて実験しております。
8
+
5
9
  手順としては、
6
10
  1) パスワードを入れる前のWordPressページを解析する
7
11
  2) パスワードを総当たりで順に入力していく
@@ -22,9 +26,29 @@
22
26
  ```
23
27
  という感じのformがあり、それに総当たり攻撃を仕掛けてみようということです。
24
28
 
25
- それで書いてみたのが以下のコードなのですが、どうやらどのパスワードでも"Brute-Force Attempt is Successful!"という出力になり、正しいパスワドが取得できません。
29
+ ### 発生る問題・エラメッセージ
26
30
 
31
+ パスワードがxyzになっているWordPressページで実験してみるとして、デバッグ用にパスワードの候補をabcのみにして実行してみたところ、
32
+ ```
33
+ [*] Started HTML Form Brute-Forcer Script
34
+ [*] Attempting abc
35
+ [*] Attempting abc
36
+ [*] Brute-Force Attempt is Successful!
37
+ [*] Password: abc
38
+ [*] Done
39
+ ```
40
+ と、明らかに違うのに正しいパスワードとして出力されます。
41
+
42
+ もしかしたら、
27
43
  ```python
44
+ brute_force_request = urllib.request.Request(post_url, headers=headers)
45
+ brute_force_response = urllib.request.urlopen(brute_force_request, data=post_data)
46
+ ```
47
+ で返ってくるWebページの結果をちゃんと解析できてないのかな、と思うのですが、どこを修正すればいいのか今一つ見当がつきません...。
48
+
49
+ ### 該当のソースコード
50
+
51
+ ```python
28
52
  from html.parser import HTMLParser
29
53
  import urllib.request
30
54
  import urllib.parse

4

修正

2020/10/28 08:18

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -13,9 +13,9 @@
13
13
  ```HTML
14
14
  <div class="row">
15
15
  <div class="eight columns centered entry-main">
16
- <form action="http://www.hogehoge.net/wp-login.php?action=postpass" class="post-password-form" method="post">
16
+ <form action="http://www.example.net/wp-login.php?action=postpass" class="post-password-form" method="post">
17
17
  <p>このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。</p>
18
- <p><label for="pwbox-hoge">パスワード <input name="post_password" id="pwbox-hoge" type="password" size="20" /></label> <input type="submit" name="Submit" value="送信" /></p>
18
+ <p><label for="pwbox-1234">パスワード <input name="post_password" id="pwbox-1234" type="password" size="20" /></label> <input type="submit" name="Submit" value="送信" /></p>
19
19
  </p></form>
20
20
  </div>
21
21
  </div>
@@ -38,7 +38,7 @@
38
38
  threads = 5
39
39
  resume_word = None
40
40
  headers = {}
41
- target_url = "http://www.example.net/archives/example" #パスワード保護がかかっているWordPressページを対象に検証を行う
41
+ target_url = "http://www.example.net/archives/1234" #パスワード保護がかかっているWordPressページを対象に検証を行う
42
42
  post_url = "http://www.example.net/wp-login.php?action=postpass" #このphpファイルを経由して処理が行われるらしい
43
43
  password_field = "post_password" #パースしたHTML内にpost_passwordという項目があれば、まだページに入れていないと判断
44
44
 

3

修正

2020/10/28 05:33

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
  print("[*] Started HTML Form Brute-Forcer Script")
114
114
  http.cookiejar.FileCookieJar("cookies").clear()
115
- combos=iterator.product("abcdefghijklmnopqrstuvwxyz1234567890", repeat=3)
115
+ combos=itertools.product("abcdefghijklmnopqrstuvwxyz1234567890", repeat=3)
116
116
  for passwd_q in combos:
117
117
  passwd_q = ''.join(passwd_q)
118
118
  attempt_brute_force = BruteForcer(passwd_q)

2

追加

2020/10/28 05:05

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,7 @@
22
22
  ```
23
23
  という感じのformがあり、それに総当たり攻撃を仕掛けてみようということです。
24
24
 
25
- それで書いてみたのが以下のコードなのですが、どうやらどのパスワードでも"Brute-Force Attempt is Successful!"という出力になるよう
25
+ それで書いてみたのが以下のコードなのですが、どうやらどのパスワードでも"Brute-Force Attempt is Successful!"という出力になり、正しいパスワードが取得きません
26
26
 
27
27
  ```python
28
28
  from html.parser import HTMLParser

1

誤字

2020/10/28 05:03

投稿

aardvark
aardvark

スコア17

title CHANGED
File without changes
body CHANGED
@@ -39,7 +39,7 @@
39
39
  resume_word = None
40
40
  headers = {}
41
41
  target_url = "http://www.example.net/archives/example" #パスワード保護がかかっているWordPressページを対象に検証を行う
42
- post_url = "http://www.tavuniv-refer.net/wp-login.php?action=postpass" #このphpファイルを経由して処理が行われるらしい
42
+ post_url = "http://www.example.net/wp-login.php?action=postpass" #このphpファイルを経由して処理が行われるらしい
43
43
  password_field = "post_password" #パースしたHTML内にpost_passwordという項目があれば、まだページに入れていないと判断
44
44
 
45
45
  class BruteForcer():