Kali学习笔记23:Web渗透简介
文章的格式也许不是很好看,也没有什么合理的顺序
完全是想到什么写一些什么,但各个方面都涵盖到了
能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道
我这里先说几句:
其实从缓冲区溢出到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:
作用:完全复制一个网站
为什么要用它呢?防止与目标过多的交互,以免被发现
具体使用方法:这里有向导,会英文的人就会用

这一篇的内容偏少,主要是介绍和环境搭建,具体的扫描工具以及渗透方法后边的文章介绍
Kali学习笔记23:Web渗透简介的更多相关文章
- 【web开发学习笔记】Structs2 Result学习笔记(一)简介
Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...
- go语言,golang学习笔记2 web框架选择
go语言,golang学习笔记2 web框架选择 用什么go web框架比较好呢?能不能推荐个中文资料多的web框架呢? beego框架用的人最多,中文资料最多 首页 - beego: 简约 & ...
- Linux学习笔记之 Btrfs文件系统简介及使用
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...
- Ext.Net学习笔记23:Ext.Net TabPanel用法详解
Ext.Net学习笔记23:Ext.Net TabPanel用法详解 上面的图片中给出了TabPanel的一个效果图,我们来看一下代码: <ext:TabPanel runat="se ...
- kali linux 2.0 web 渗透测试 电子书
原创 2017-05-31 玄魂工作室 玄魂工作室 打起精神,重新开启订阅号的原创文章写作工作,但是需要点时间,请耐心等待. 求资料的同学,没有及时回复的,请再次留言,我会尽快处理.今天分享两本电子书 ...
- Spring实战第六章学习笔记————渲染Web视图
Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图. ...
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记23:MVC案例完整实践(part 4)---模糊查询的设计与实现
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
随机推荐
- github上用golang写的项目
1.moby/moby docker的新马甲 2.kubernetes/kubernetes 分布式容器管理 3.grafana/grafana 一个可视化面板,有漂亮的仪表盘,多种数据来源,适合做系 ...
- [精华][推荐] CAS SSO单点登录环境搭建及实例
1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 12 ...
- Python 数据可视化 -- pillow 处理图像
Python 图像库(Python Image Library,PIL)为 Python 提供了图像处理能力. PIL 官网:http://www.pythonware.com/products/pi ...
- Java 字符编码(三)Reader 中的编解码
Java 字符编码(三)Reader 中的编解码 我们知道 BufferedReader 可以将字节流转化为字符流,那它是如何编解码的呢? try (BufferedReader reader = n ...
- DataTables warning : Requested unknown parameter '0' from the data source for row 0错误
在做datatables的项目,从后台取得数据后,返回给datatables界面时会报下面的错误: DataTables warning : Requested unknown parameter ' ...
- Django高级实战 开发企业级问答网站完整
资源获取链接点击这里 Django高级实战 开发企业级问答网站 从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态.文章.问答.私信.消息通知.搜索.个人中心,打造企业级知识问答网站,由此全 ...
- RT-thread内核对象--事件集
rt-thread 线程的同步:线程同步是指多个线程通过特定的机制(如互斥量,事件对象,临界区)来控制线程之间的执行顺序 1.事件集:(可以实现一对多,多对多的同步) RT-Thread 定义的事 ...
- OO第二单元单元总结
总述 OO的第二单元主题是电梯调度,与第一单元注重对数据的输入输出的处理.性能的优化不同,第二单元的重心更多的是在线程安全与线程通信上.这此次单元实验之前,我并未对线程有过了解,更谈不上“使用经验”, ...
- ASP.NET Core使用EntityFrameworkCore CodeFrist
1,安装环境: 如果是VS2015,确保已经升级至 update3或以上 .net core sdk (https://www.microsoft.com/net/download/core) vs2 ...
- LeetCode —— 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...