记一次简单的日志分析

题目文件:https://files.cnblogs.com/files/nul1/access.log.tar

直接搜索flag发现是一题关于二分法注入。

页面为200的字节大小为1765,所以可以通过读取每行判断是否有1765以及有没有flag的关键字样,进而提取值。

脚本如下所示:

# coding:utf-8
import re
import urllib

f = open('access.log','r')
lines = f.readlines()
datas = []
for line in lines:
    t = urllib.unquote(line)    
    if '1765' in t and 'flag' in t:  # 过滤出与flag相关,正确的猜解
        datas.append(t)

flag_ascii = {}  
for data in datas:
    matchObj = re.search( r'LIMIT 0,1\),(.*?),1\)\)>(.*?) AND', data)   
    if matchObj:
        key = int(matchObj.group(1))
        value = int(matchObj.group(2))+1
        flag_ascii[key] = value


flag = ''
for value in flag_ascii.values():
    flag += chr(value)

print flag

猜你喜欢

转载自www.cnblogs.com/nul1/p/9965454.html