轻松了解 web 日志分析过程,从零基础到精通,收藏这篇就够了!

日志分析,其实涵盖的面是很广的,什么地方都可以有日志。而本篇文章主要针对 web 日志做一下分析。因为之前去学校里授课的时候有讲过一次,感觉内容挺不错的,就写到了文章里。(可绝不是偷懒什么的呢o(´^`)o)

相关资料及工具

【链接: https://pan.baidu.com/s/1o7FcHui 密码: jpdn】

Lesson1 日志格式学习

一条访问信息记录如下:

218.19.140.242 - - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1” 200 1933 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)”

共有九项内容:

218.19.140.242

这是一个请求到 apache 服务器的客户端 ip, 默认的情况下,第一项信息只是远程主机的 ip 地址,但我们如果需要apache 查出主机的名字,可以将 HostnameLookups 设置为 on, 但这种做法是不推荐使用,因为它大大的减缓了服务器。另外这里的 ip 地址不一定就是客户主机的 ip 地址,如果 客户端使用了代理服务器,那么这里的 ip 就是代理服务器的地址,而不是原机.

-

The “hyphen” in the output indicates that the requested piece of information is not available. In this case, the information that is not available is the RFC 1413 identity of the client determined by identd on the clients machine. This information is highly unreliable and should almost never be used except on tightly controlled internal networks. Apache httpd will not even attempt to determine this information unless IdentityCheck is set to On

-

这一项又是为空白,不过这项是用户记录用户 HTTP 的身份验证,如果某些网站要求用户进行身份验证,那么这一项就是记录用户的身份信息

[10/Dec/2010:09:31:17 +0800]

第四项是记录请求的时间,格式为 [day/month/year:hour:minute:second zone], 最后的 +0800 表示服务器所处的时区为东八区

“GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1”

这一项整个记录中最有用的信息,首先,它告诉我们的服务器收到的是一个 GET 请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时 HTTP/1.1, 整个格式为 "%m %U%q %H" ,即"请求方法/访问路径/协议"

200

这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为 200,表示服务器已经成功的响应了客户端的请求,一般来说,这项值以 2 开头的表示请求成功,以 3 开头的表示重定向,以 4 开头的标示客户端存在某些的错误,以 5 开头的标示服务器端存在某些错误,详细的可以参见 HTTP specification (RFC2616 section 10) http://www.w3.org/Protocols/rfc2616/rfc2616.txt

1933

这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少。

-

HTTP Referer:告诉服务器我是从哪个页面链接过来的,没有值时可能是直接打开网页的原因。

“Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)”

user-agent 这项主要记录客户端的浏览器信息

Lesson2 黑客入侵日志分析

客户的网站被大黑阔入侵了,你现在需要做的是:

1、找到大黑阔的 IP 地址

2、大黑阔是如何找到网站后台的?

3、大黑阔如何进入后台?

4、大黑阔修改了什么文件来写一句话?

5、大黑阔通过一句话后门做了什么?

开始做,下载日志分析【access.log】【error.log】

可以看到是两个黑嫲嫲的日志,看起来不太方便,我们可以使用工具【apache log viewer】看。

世界就变成彩色的了,还有过滤功能,很方便。

找到大黑阔的 IP 地址

因为一般来说,如果不能一下子找到后台的话,就需要用一些目录爆破工具,而爆破的过程中,因为请求了很多不存在的目录,就会出现很多 404 状态的日志。

我们可以看一下报错状态的记录,点击【status】,就能发现了有几个 IP 的请求出现了404。

再往下拉,可以发现很明显的带有 payload 的恶意请求,它们都来自 IP【219.239.105.18】,说明这个 IP 地址就是大黑阔的地址。

大黑阔是如何找到网站后台的?

复制这个 IP 地址。

放到过滤器里,使用包括【include】的方式,然后应用该过滤【Apply Filter】

过滤出来的数据,点击【Date】按递增时间排序,就可以看到第一条记录是【2016/8/9 2:54:12】,即是大黑阔第一次访问时间。

往下看,可以看到出现大量 404 的访问记录,说明是在爆目录。

到了【2016/8/9 22:17:02】之后明显没有 404 访问记录,说明已经停止了爆目录,并且可以看到大黑阔开始访问后台了。

大黑阔如何进入后台?

从【2016/8/9 22:37:30】开始可以看到大量的 POST 请求,几秒之内就有多个请求,说明这是在进行爆破。

而在【2016/8/9 23:02:28】从【http://192.168.0.104/phpcms/index.php?m=admin&c=index&a=public_current_pos&menuid=10】这一条开始,请求的内容都是后台界面才有的,可见大黑阔成功爆破出密码并登录后台。

大黑阔修改了什么文件来写一句话?

我们可以看到最后这一句

GET /index.php?%20%20m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=…/…/phpsso_server/caches/configs/database.php HTTP/1.1

通过搜索相关资料

http://blog.youkuaiyun.com/god_7z1/article/details/7816389

可以知道该漏洞的利用方法如下:

这一部分即是大黑阔在修改的时候发起的请求:

大黑阔通过一句话后门做了什么?

可以看到读取了数据库的帐号密码和系统的帐号密码。

Lesson3 通过 SQL 注入日志分析

客户的网站又被大黑阔入侵了,而且还是 sql 注入的形式,你现在需要做的是

1、大黑阔使用的方法属于 sql 注入中的什么方法?

2、大黑阔从什么时候开始用脚本跑数据的?

3、大黑阔的 payload 格式是怎样的,解译一下。

4、大黑阔拿到了什么数据?数据内容是什么?

下载日志文件之后,发现是都是类似的请求

大黑阔使用的方法属于 sql 注入中的什么方法?

GET /?id=1%27%20and%20ascii(substr((select%20database()),1,1))%3E104%23 HTTP/1.1

很明显是通过盲注的形式跑数据的。使用盲注的脚本可以参考:

https://github.com/yuesecurity/sqli-exploit/blob/master/sqliblind/sqlibaseblind.py

大黑阔从什么时候开始用脚本跑数据的?

从【2017/9/2 12:20:42】开始短时间内发起大量请求。

大黑阔的 payload 格式是怎样的,解译一下。

payload 为

/?id=1%27%20and%20ascii(substr((select%20database()),1,1))=114%23】

其中读取 database(),然后 substr 选择。

选择出来的数据用 ascii 编码,与后面的数字 114 比较。

大黑阔拿到了什么数据?数据内容是什么?

拿到 database() 和 user()。

仔细观察,可以发现是后面的 1 去比较这个 database() 的 1 到 15 位。然后再用 2 去比较 1 到 15 位。

而判断是否匹配的方法是看返回的包的大小:

【654】包的数量比【665】的多很多,【665】的包是盲注匹配成功时候返回的包。

于是把【665】的包里的数值一个个写到表格里,用 http://evilcos.me/lab/xssor/ 转成对应的字符。当然我比较懒,这里没有填完。

还是用脚本跑一下比较爽:

可以看到 database 是【security】,user 是【flag0isfjisas8hh@loc】。

网络安全学习路线&学习资源

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

“脚本小子”成长进阶资源领取

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一粟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值