文章的格式也许不是很好看,也没有什么合理的顺序
完全是想到什么写一些什么,但各个方面都涵盖到了
能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道
我这里先说几句:
其实从缓冲区溢出到Web渗透之间还有很多的内容
但是Web渗透实在有学习的必要,我打算先学习这些内容
Web渗透:
早期Web渗透其实是攻击Web服务器,比如IIS或者是Tomcat
C/S架构时期:程序员很累,需要兼顾两方面的问题
后来程序猿们觉得这种方式复杂,后来就有了B/S架构:
只需要一个浏览器即可,而程序猿只需要遵循浏览器的规则进行编码即可
服务器会根据用户使用浏览器提交的数据来存储或者返回对应的信息
张三只够看到的页面和信息,李四未必就可以看到
服务器端通常包括:Web服务器(Tomcat),应用程序服务器,数据库
应用程序是什么?是可以交互的,我给它一个值,它会做出相应的反应
因此,至少这里,就存在着漏洞
其实Web攻击技术共有几百种,而我会介绍一部分典型的,以及一些基本工具的使用
而我们如果想做Web渗透,有很多个大的方面可以考虑:
浏览器、网络、服务器操作系统、Web服务器类型、应用程序服务器、应用程序代码、数据库
就拿Java来说,WebServer采用Tomcat,应用程序服务器(SpringBoot、Struts2)数据库(MySQL、Sqlite)
程序猿也是人,总会有漏洞,应用程序代码也总会存在漏洞
前端来说:浏览器本身的安全机制以及很完善,基本找不到漏洞
于是,对我们来说,现在能够考虑渗透的方面主要就是:应用程序方面,数据库方面
恶意的指令传递给应用程序或者传递到数据库从而造成漏洞利用
这么来说,想做Web渗透,那么就需要了解HTTP协议:
HTTP协议:
应用层明文协议,在网络中如果采用嗅探或代理截断技术即可获取所有的信息
有些不懂安全的人会认为:HTTPS会变得很安全,其实不然,HTTPS只能提升传输层的安全性,并不能保证安全
在后面的一些文章我会详细介绍HTTPS攻击,总之不要过度相信HTTPS
下面继续看一看HTTP协议的特点:
无状态:类似于UDP协议,服务器发送数据包过去,接受与否与它无关
从协议上来看,HTTP协议每一次客户端和服务器端的通信都是独立的过程
有人会疑问:那么我登陆上账号做相关的操作,感觉似乎每一步并不是独立的?
其实不然,这是由于服务器端的程序猿的代码造成的错觉(Cookie)
而客户端和服务器端的会话是如何实现的?Cookie技术
形象地来看:Cookie类似与学校的校园卡,学生没有校园卡是无法进入学校的
服务器端会根据Cookie地不同而返回不同的信息
而如果不使用Cookie呢?如果客户端要访问服务器端的页面,每一次都需要输入账户名密码,用户体验极差
有人会把Cookie和Session混淆:
Cookie本身其实就是SessionID,客户端拿到的是服务器端的Session的SessionID,保存下来作为Cookie
Cookie既然功能强大:凡事有利有弊,正是出现了Cookie才会出现更多的漏洞
比如:张三篡改自己的Cookie变成李四的Cookie,那么,张三就可以操作李四的一些机密信息
客户端和服务器之间一个请求一个响应为一个Cycle:
请求和相应都是由Header和Body组成
接下来看看Web渗透中需要注意的一些头信息:
Set-cookie:服务器端发给客户端的SessionID,如果被窃取,就可以做很多事情
Content-Length:响应Body部分的字节长度,比如我暴力**用户名密码,可以根据返回的这个参数的不同来判断是否成功
Location:重定向用户到另一个页面,可识别身份认证后允许访问的页面
Cookie:客户端回给服务器证明用户状态的信息(头:值成对出现)
Referrer:发起新请求之前用户位于哪个页面,服务器基于此头的安全限制很容易被修改绕过
下面看看响应的状态码:1-5开头表示五大类
100系列:服务器响应信息,没有实际意义,表示还有后续处理,极少出现
200系列:请求被服务器成功接收并处理后返回的结果
300系列:重定向到某一个页面,配合Location头
400系列:客户端请求错误
401:身份认证错误
403:拒绝访问
404:这个很常见,请求目标不存在
500系列:服务器内部错误
介绍就到这里了:
接下来说说我接下来的实验环境:
Metasploitable:集成了各种漏洞的靶机
演示:
启动靶机
默认用户名和密码就是msfadmin
ifconfig查到IP地址是192.168.163.129
然后用Kali的浏览器访问即可:
我在接下来的环境中要使用的就是DVWA
就是这个,其实相当于是一个实际的网站:
使用默认用户admin和默认密码password进入:
对于新手这里设置成Low(低级安全级别),这样更容易找出漏洞
如果要渗透目标网站,我建议先用一个工具httrack:
作用:完全复制一个网站
为什么要用它呢?防止与目标过多的交互,以免被发现
具体使用方法:这里有向导,会英文的人就会用
这一篇的内容偏少,主要是介绍和环境搭建,具体的扫描工具以及渗透方法后边的文章介绍