apache日志分析:
apache日志是apache服务器运行时自动生成的操作记录文件,就像服务器的"日记"--会完整记录和服务器相关的关键行为,是运维中排查问题,统计访问,安全审计的核心依据
apache会默认生成两类核心日志
1.访问日志(access.log,归档文件是access.log.1
核心作用:记录所有客户端对服务器的访问请求,每一次访问不管成功都会记录
记录的关键内容:客户端ip,响应状态码,访问时间,访问的页面,请求方法,客户端浏览器信息
2.错误日志(error.log
核心作用:记录服务器运行时的错误信息,只有出问题才会记录(比如访问失败,配置错误,程序报错
记录的关键内容:错误发生的时间,错误级别,错误原因,触发错误的客户端ip或请求信息
打开靶场
连接靶场

1.提交当天访问次数最多的IP,即黑客IP:
apache的日志路径通常在:/var/log/apache2
root@ip-10-0-10-8:/var/log/apache2# ls
access.log access.log.1 error.log error.log.1 other_vhosts_access.log
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1
发现 access.log.1 备份文件
cat查看一下
太多了过滤一下
cut -d- -f 1 access.log.1 | uniq -c | sort -rn
cut -d- -f 1 access.log.1:从access.log.1中,以-为分隔符,截取每一行的第一个字段并输出
uniq -c:去除连续 重复的行+计数(统计每个客户端 IP 的访问次数
sort -rn:把 IP 的访问次数按数值从大到小排序
默认 sort 是 "从小到大",加 -r 变成 "从大到小"
root@ip-10-0-10-8:/var/log/apache2# cut -d- -f 1 access.log.1 | uniq -c | sort -rn
5241 192.168.200.2
763 192.168.200.2
539 192.168.200.2
27 ::1
12 192.168.200.2
5 192.168.200.38
1 192.168.200.48
1 192.168.200.211
1 ::1
1 ::1
1
发现最多的是192.168.200.2
flag{192.168.200.2}
2.黑客使用的浏览器指纹是什么,提交指纹的md5:
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1 | grep 192.168.200.2 | more
grep 192.168.200.2:过滤192.168.200.2
more:核心用途:解决 "输出刷屏" 问题
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
md5加密后
2d6330f380f44ac20f3a02eed0958f66
flag{2d6330f380f44ac20f3a02eed0958f66}
3.查看包含index.php页面被访问的次数,提交次数:(不包括/xxx/index.php只筛选/index.php)
cat access.log.1 | grep "/index.php" |wc -l
过滤index页面
wc -l:总结次数
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1 | grep "/index.php" |wc -l
27
flag{27}
4.查看黑客IP访问了多少次,提交次数:
cat access.log.1 | grep 192.168.200.2 |wc -l
过滤,总结
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1 | grep 192.168.200.2 |wc -l
6556
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1 | grep "192.168.200.2 " | wc -l
6555
grep的匹配逻辑不同 ------ 加空格是「精确匹配 IP 作为独立字段」,不加空格是「模糊匹配包含该 IP 字符串的所有行」,多出来的 1 行就是「IP 不是独立字段」的日志
正确:flag{6555}
5.查看2023年8月03日8时这一个小时内有多少IP访问,提交次数:
cat access.log.1 | grep "03/Aug/2023:08" |awk '{print$1}'|sort |uniq -c| wc -l
过滤时间
去除连续的+统计次数
排序
统计总共次数
root@ip-10-0-10-8:/var/log/apache2# cat access.log.1 | grep "03/Aug/2023:08" |awk '{print$1}'|sort |uniq -c| wc -l
5
flag{5}