第一章、概述
前段时间偶然间在一朋友处获得了多个系统的web日志 并被被要求针对这些日志进行分析 一时兴起 随便打开了一个 打开后发
现日志数量极大 接着又打开了好几个 发现每个系统的日志量都极大的。起初准备找web日志分析工具 收集一番后对这些日志
分析工具不熟悉 因此凭着经验进行分析。
联想到有的朋友可能会右这方面的需求 在此针对这些分析 我在此进行分享。
*注:本文思路仅供参考 仅代表个人观点 不喜勿喷!
第二章、攻击日志分析及思路
开始攻击日志分析之前 首先我们需要了解到有哪些常见的web攻击日志 这里我列举如下:sql注入和上传漏洞
后文中也主要针对这两类日志进行分析。
2.1、Web日志中数据格式
在开始进行web日志分析之前 我们先要了解web日志中记录数据的情况 这里我将web日志记录的类容列举如下:
2.2、GET与POST请求包在web日志中记录的区别
了解web日志记录的的数据格式后 我们还需了解GET与POST请求在web日志中数据记录的情况。
首先我们先看一下GET数据在web日志中的记录形式:
这里我们可以看出post数据请求在web日志中记录的格式如下:
通过对GET与POST请求包进行对比 可知 GET请求中在路径后面会带参数 而POST请求则不会。
2.3、200返回码误区
通常情况下 一个web日志文件中有大量访问日志 针对如此多的访问日志我们又该如何选择?在Web日志中数据
格式中我们知道有返回码这条数据 但如果只是针对返回码进行全文搜索 则会发在查找的结果中会混有其他数据
因此我们针对协议版本和返回码一起搜索 可以得到我们需要的数据。
搜索格式如下:
这里我针对200返回码存在的误区进行一下阐述 尤其是在web日志分析中 200返回码只
代表服务器针对请求作出了回应 并不代表一定成功。
由于200码表示服务器有回应 因此我们分析的主要是200返回码。
2.4、工具使用
打开一个web日志的方式有很多 可以使用txt 也可以使用其他 这里我使用Notepad++。
接下来开始攻击日志分析之旅。
2.5、sql注入日志分析
首先我们要知道sql注入有哪些类型 不同类型sql注入的攻击数据包是怎样的?通常情况下sql注入有如下几类 post注入联合
注入延迟注入 基于错误的注入等 由于手中日志有限 进进行一下日志进行分析 本次分析仅针对GET型请求进行分析 POST类
型请求在web日志无信息记录 。
联合注入
联合注入通常情况下在请求的数据中会包含union这个单词 为了避免无效数据
因此我们先针对200码进行一次过滤。
首先筛选出返回码为200的日志条数:
通过200码日志筛选后我们可以获得需要的相关日志 然后对筛选出的日志进行查看 我们发现明显
少掉大部分数据借此可以查找我们需要的数据 如下:
由于这里是已明确是联合注入 因此我们可以在第二次对全网进行日志搜索 可针对union一词进行搜索:
其他注入日志分析
针对其他注入日志 我们可以我们可以根据特定词进行分析 如可以通过select %27 and等资产进
行查找有其他更好经验者也可以联系我进行分享。
2.6、上传漏洞
日志筛选过程依旧如上述所说 查找到相关200日志后 针对上传中常用单词
upload和uploads进行搜索 详细如下:
倘若日志量大 则可以检索到upload或uploads后在对shell脚本后缀进行检索 如:.jsp .asp .php等;
另外可通过日期命名的目录或者以get包传递的参数 例如pwd=caidao$cmd=whoami之类的字段进行检索确认。
第三章、web日志结合数据库日志综合分析
最后我将结合web日志和数据库日志进行一次综合分析案例 希望对大家有帮助。
案例一:web日志中的post请求结合数据库信息分析
通过对日志进行查看 发现该时间点存在异常数据请求 通过web日志却无法查看详细信息
也不知做了什么操作 如图:
这是无法对该数据进行确认 但根据经验认为这个信息不正常 因此查看数据库信息 通过web操作时间
到数据库中查找对应时间 通过对比 发现该数据为注入 如图:
借此通过数据库信息做支撑 确认了攻击类型 完成对威胁的识别。
案例二:webshell结合数据库日志分析
该案例是发现admin无法登录 通过对数据库日志查看 发现存在修改密码数据:
通过对修改时间进行确认 结合web日志进行分析 发现 在该时间点存在xiaoma.php文件
因此可以确认事件发生原因。
由于手中仅有日志信息 因此部分信息也只是猜测 仅供参考。
第四章、总结
Web攻击日志分析 主要是针对各类漏洞利用中常见数据和字符进行查找 状态码和常见字段进行检索。