2017-10-29 17 views
-1

私はログファイルを処理するPythonを書いています。プログラムは、2つのパターンの間でbase64でエンコードされた文字列を復号化します。私はここで、「不正なパディングエラー」Pythonはログファイルから文字列をデコードします

を取得するコードを実行するたびに、これはベース85であるので、私のコード

 import base64 
     import re 

     def find_between_r(s, first, last): 
      try: 
       start = s.rindex(first) + len(first) 
       end = s.rindex(last, start) 
       return s[start:end] 
      except ValueError: 
       return "" 

     text='192.168.1.23 - - [18/Jun/2015:12:16:12 +0200] "GET /admin/?action=membres&order=QVNDLChzZWxlY3QgKGNhc2UgZmllbGQoY29uY2F0KHN1YnN0cmluZyhiaW4oYXNjaWkoc3Vic3RyaW5nKHBhc3N3b3JkLDE3LDEpKSksMSwxKSxzdWJzdHJpbmcoYmluKGFzY2lpKHN1YnN0cmluZyhwYXNzd29yZCwxNywxKSkpLDIsMSkpLGNvbmNhdChjaGFyKDQ4KSxjaGFyKDQ4KSksY29uY2F0KGNoYXIoNDgpLGNoYXIoNDkpKSxjb25jYXQoY2hhcig0OSksY2hhcig0OCkpLGNvbmNhdChjaGFyKDQ5KSxjaGFyKDQ5KSkpd2hlbiAxIHRoZW4gVFJVRSB3aGVuIDIgdGhlbiBzbGVlcCgyKSB3aGVuIDMgdGhlbiBzbGVlcCg0KSB3aGVuIDQgdGhlbiBzbGVlcCg2KSBlbmQpIGZyb20gbWVtYnJlcyB3aGVyZSBpZD0xKQ%3D%3D HTTP/1.1" 200 1007 "-" "-"' 

     result = re.search('order=(.*) H', text) 
     t=result.group(1) 

     print(base64.b64decode(t)) 
     #with open("26828869_ch13.txt","rt") as in_file: 
     # for line in in_file: 

The image contains the error

+0

最初に他の部分のデコードを忘れましたか? –

+1

** HOLY BLEEP **、なぜ部分的なSQLをGETパラメータに入れていますか? –

+0

このエラーが何を意味するのか分かりませんが、re.search( 'order =(。*)H'、text) 'を' re.search( 'order =(。*) HTTP/1.1 '、テキスト) 'あなたのバージョンのものが間違ったブレークポイントをとったものです。 – MegaIng

答えて

1

です!ベース64ではない!これを試してみてください:

import base64 
import binascii 
import re 


def find_between_r(s, first, last): 
    try: 
     start = s.rindex(first) + len(first) 
     end = s.rindex(last, start) 
     return s[start:end] 
    except ValueError: 
     return "" 


text = '192.168.1.23 - - [18/Jun/2015:12:16:12 +0200] "GET /admin/?action=membres&order=QVNDLChzZWxlY3QgKGNhc2UgZmllbGQoY29uY2F0KHN1YnN0cmluZyhiaW4oYXNjaWkoc3Vic3RyaW5nKHBhc3N3b3JkLDE3LDEpKSksMSwxKSxzdWJzdHJpbmcoYmluKGFzY2lpKHN1YnN0cmluZyhwYXNzd29yZCwxNywxKSkpLDIsMSkpLGNvbmNhdChjaGFyKDQ4KSxjaGFyKDQ4KSksY29uY2F0KGNoYXIoNDgpLGNoYXIoNDkpKSxjb25jYXQoY2hhcig0OSksY2hhcig0OCkpLGNvbmNhdChjaGFyKDQ5KSxjaGFyKDQ5KSkpd2hlbiAxIHRoZW4gVFJVRSB3aGVuIDIgdGhlbiBzbGVlcCgyKSB3aGVuIDMgdGhlbiBzbGVlcCg0KSB3aGVuIDQgdGhlbiBzbGVlcCg2KSBlbmQpIGZyb20gbWVtYnJlcyB3aGVyZSBpZD0xKQ%3D%3D HTTP/1.1" 200 1007 "-" "-"' 

result = re.search('order=(.*) H', text) 
t = result.group(1) 
print(base64.b85decode(t)) 
+0

私は2つの==テキストファイルに追加時にb'ASC、(選択(サブフィールド(bin(ascii(substring(password、17,1)))、2,1))、 concat(char(49)、char(48))、concat(char(49)、char(49))、concat(char(48) ))1のときはTRUE、2のときはTRUE、3のときはsleep(2)、4のときはsleep(4)、idが1のときはsleep(6)end) ' – mahbuhsj

+0

新しい質問があるときは、別の投稿。 – DRPK

+0

同じ質問のその部分に '=='を追加するとコードが正常に動作します – mahbuhsj

関連する問題