0
点赞
收藏
分享

微信扫一扫

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-日志审计

前言

Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。在过去,网络数据包分析软件是非常昂贵,或是专门属于营利用的软件,Wireshark的出现改变了这一切。在GNU通用公共许可证的保障范围底下,用户可以以免费的代价获取软件与其代码,并拥有针对其源代码修改及定制化的权利。Wireshark是目前全世界最广泛的网络数据包分析软件之一。

ASCII是一种字符编码标准,全称为American Standard Code for Information Interchange(美国信息交换标准代码)。它是将常用的字符和符号分别用数字来表示,以便计算机存储和传输。 ASCII编码使用7位二进制数来表示每个字符,共计128个字符,包括英文字母、数字、标点符号及一些控制字符。 ASCII编码在计算机通讯、文件传输、文本编辑等领域得到广泛应用,并被现代计算机系统所支持和继承。

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-日志审计_Wireshark

一、日志审计

1.打开题目

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-日志审计_网络数据_02

2.解题

1、下载文件发现是一堆url,可以得出是url注入

进行url解码 

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-日志审计_网络数据_03

记住flag的

101+1=102 -->f
107+1=108 -->l
96+1=97 -->a
102+1=103 -->g

去找101、107、96、102

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-日志审计_网络数据_04

 依次类推记下 flag 每一个 字符的 ascii 值,然后+1,对应ASCII表

脚本如下

# coding:utf-8
import re
import urllib
 
f = open('D:/access.log','r')  # 下载的access.log文件的绝对路径,笔者是存在了d盘根目录下~
lines = f.readlines()
datas = []
for line in lines:
    t = urllib.unquote(line)     # 就是将文本进行 urldecode 解码
    if '1765' in t and 'flag' in t:  # 过滤出与flag相关,正确的猜解(只要200的)
        datas.append(t)
 
flag_ascii = {}  
for data in datas:
    matchObj = re.search( r'LIMIT 0,1),(.*?),1))>(.*?) AND', data)   # 在date 中搜索符合正则表达的字符串并 将匹配的字符串存入变量 matchObj 中
    if matchObj:
        key = int(matchObj.group(1))  # 取变量matchObj 中 的第一个括号里的内容 (也就是上条语句中的 (.*?)中的内容)并转为10进制
        value = int(matchObj.group(2))+1  # 取变量matchObj中的第二个括号里的内容,并转为 10 进制
        flag_ascii[key] = value     # 使用字典,保存最后一次猜解正确的ascii码
        
flag = ''
for value in flag_ascii.values():
    flag += chr(value)
    
print flag

得到flag:flag{sqlm4p_15_p0werful}

举报

相关推荐

0 条评论