本帖最后由 gclome 于 2020-7-28 20:15 编辑
原文链接:Web攻击日志初探
第一章、概述前段时间偶然间在一朋友处获得了多个系统的web日志,并被被要求针对这些日志进行分析。一时兴起,随便打开了一个,打开后发现日志数量极大,接着又打开了好几个,发现每个系统的日志量都极大的。起初准备找web日志分析工具,收集一番后对这些日志分析工具不熟悉,因此凭着经验进行分析。 联想到有的朋友可能会右这方面的需求,在此针对这些分析,我在此进行分享。
第二章、攻击日志分析及思路
开始攻击日志分析之前,首先我们需要了解到有哪些常见的web攻击日志,这里我列举如下:sql注入和上传漏洞,后文中也主要针对这两类日志进行分析。 2.1、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日志结合数据库日志综合分析
[color=rgb(51, 51, 51) !important]最后我将结合web日志和数据库日志进行一次综合分析案例,希望对大家有帮助。 - 案例一:
web日志中的post请求结合数据库信息分析
通过对日志进行查看,发现该时间点存在异常数据请求,通过web日志却无法查看详细信息,也不知做了什么操作,如图: 这是无法对该数据进行确认,但根据经验认为这个信息不正常,因此查看数据库信息,通过web操作时间,到数据库中查找对应时间,通过对比,发现该数据为注入,如图: 借此通过数据库信息做支撑,确认了攻击类型,完成对威胁的识别。 该案例是发现admin无法登录,通过对数据库日志查看,发现存在修改密码数据
通过对修改时间进行确认,结合web日志进行分析,发现,在该时间点存在xiaoma.php文件,因此可以确认事件发生原因。
由于手中仅有日志信息,因此部分信息也只是猜测,仅供参考。
第四章、总结Web
攻击日志分析,主要是针对各类漏洞利用中常见数据和字符进行查找,状态码和常见字段进行检索,若有好的建议也可以私聊我,感谢。
|