2018年10月12日

SQLインジェクションを受けた際のアクセスログのデコード(Python)

# coding: cp932
# for Python 2.x

import sys,io
import codecs
import urllib2

param = sys.argv
if (len(param) == 3):
 pass
else:
 print("(Usage) : SQLinjection_log_decode.py LogFileName OutputFileName(decoded)")
 print(" %URL DECODE & 0x DECODE")
 quit()

# 入出力ファイルのオープン
ifile = open(param[1], 'r')
ofile = codecs.open(param[2], 'w', 'utf-8')

# 1行読み込み
buf_line = ifile.readline()
icnt = 0

# --- Start of loop ---
while buf_line:
 # %エンコードされたテーブルの列名や、16進表記のASCII文字をデコード
 buf_line = buf_line.replace("0x","%")
 buf_line = urllib2.unquote(buf_line)
 # デコードしたログを1行出力
 ofile.write(buf_line.decode("utf-8"))
 icnt = icnt + 1
 if ((icnt % 50) == 0):
  print("--- processed " + str(icnt) + " lines \n")
 # 1行読み込み
 buf_line = ifile.readline()
# --- End of loop ---

# 入出力ファイルのクローズ
ifile.close
ofile.close
posted by 貝貝 at 14:12| Comment(0) | Internet | このブログの読者になる | 更新情報をチェックする