玄机靶场:apache日志分析

发布于:2025-04-08 ⋅ 阅读:(30) ⋅ 点赞:(0)

什么是Apache日志

Apache日志‌是Apache Web服务器在处理HTTP请求时记录的所有事件的详细信息。Apache是全球最受欢迎的Web服务器软件之一,支持约30.2%的所有活跃网站。Apache通过记录每次请求的信息,包括时间、来源IP、请求的资源等,帮助分析和排查问题‌。

Apache日志主要分为两类:‌访问日志‌和‌错误日志‌。

  • 访问日志‌:记录了所有访问服务器的远程机器的地址、浏览者访问的资源、浏览时间、使用的浏览器等信息。通过分析访问日志,可以了解网站的访问情况、流量分布、用户行为等,从而优化网站性能和用户体验‌。
  • 访问服务器的远程机器的地址:可以得知浏览者来自何方
  • 浏览者访问的资源:可以得知网站中的哪些部分最受欢迎
  • 浏览者的浏览时间:可以从浏览时间(如工作时间或休闲时间)对网站内容进行调整
  • 浏览者使用的浏览器:可以根据大多数浏览者使用的浏览器对站点进行优化
  • 错误日志‌:包含了Web服务器在处理请求时遇到的错误信息,如失效链接、CGI错误、用户认证错误等。错误日志使用不同的日志级别(如level、emerg、alert、crit、error、warn、notice、info、debug)来表示错误的严重程度‌。

打开靶场环境

利用ssh root@IP进行连接

第一题

1.先去apache目录下看一下信息

可以看到有一个备份文件,access.log.1

我们查看一下

发现有很多消息我们需要过滤一下

cut -d- -f 1 access.log.1|uniq -c | sort -rn | head -20

1. cut -d- -f 1 access.log.1

    cut:用于从文本中提取特定字段。

    -d-:指定字段分隔符为 -。

    -f 1:提取第一个字段。

    access.log.1:要处理的日志文件

2. uniq -c

    uniq:用于过滤或统计连续重复的行。

    -c:在每行前加上该行重复出现的次数。

作用:
统计提取的字段中连续重复的行及其出现次数。

注意:
uniq 只能处理连续重复的行,因此在使用 uniq -c 之前,通常需要先对数据进行排序(例如使用 sort)。
3. sort -rn

    sort:用于对文本行进行排序。

    -r:按降序排序。

    -n:按数值大小排序。

作用:
将 uniq -c 的输出按出现次数从高到低排序。
4. head -20

    head:输出文件的前几行。

    -20:输出前 20 行。

作用:
从排序后的结果中提取出现次数最多的前 20 个字段及其次数。
cat 和 cut 的区别

cat 和 cut 是 Linux 系统中常用的文本处理命令,但它们的功能和用途有所不同。
cat

cat(concatenate)用于连接文件并打印到标准输出。它通常用于查看文件内容、合并文件和创建文件。
cut

cut 用于从文件的每一行中提取指定的部分。它通常用于处理列格式数据,比如从 CSV 文件中提取某些列。

两者区别:

    用途不同:

        cat 主要用于连接和显示文件内容。

        cut 主要用于从文件中提取特定的列或字段。

    功能不同:

        cat 可以将多个文件内容合并输出到一个文件或标准输出。

        cut 可以根据指定的字符位置、字节位置或分隔符提取部分内容。

    常见用法不同:

        cat 常用于快速查看文件内容或合并文件。

        cut 常用于处理表格数据、日志文件等,需要提取特定列的数据。

然后便知道了他访问最多的ip是192.168.200.2,所以第一题flag为这个

flag{192.168.200.2}

第二题

由于我们第一题已经知道了他的ip所以直接筛选

cat access.log.1 | grep 192.168.200.2 | more

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
Kit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36

将其进行MD5加密获得第二个flag

flag{2D6330F380F44AC20F3A02EED0958F66}

第三题

也是直接筛选

cat access.log.1 |grep '/index.php' | wc -l

wc -l 用来统计次数的

所以第三个flag为27

flag{27}

确实是27个但是提交flag为25,我也不知道怎么回事

flag{25}

第四题

一样

cat access.log.1 | grep '192.168.200.2 - - '  | wc -l

cat access.log.1 | grep 192.168.200.2  | wc -l

flag{6555}

第五题

cat access.log.1 | grep "03/Aug/2023:08:" | awk '{print $1}' | sort | uniq -c | wc -l

cat access.log.1:读取日志文件。

grep "03/Aug/2023:08:":过滤出 2023 年 8 月 3 日 8 点的日志行。

awk '{print $1}':提取每行的第一个字段(IP 地址)。

sort:对 IP 地址进行排序。

uniq -c:统计每个 IP 地址的出现次数。

wc -l:统计不同 IP 地址的数量。

所以第五个flag为5

flag{5}