文章的格式也许不是很好看,也没有什么合理的顺序

完全是想到什么写一些什么,但各个方面都涵盖到了

能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道

我这里先说几句:

其实从缓冲区溢出到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渗透简介的更多相关文章

  1. 【web开发学习笔记】Structs2 Result学习笔记(一)简介

    Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...

  2. go语言,golang学习笔记2 web框架选择

    go语言,golang学习笔记2 web框架选择 用什么go web框架比较好呢?能不能推荐个中文资料多的web框架呢? beego框架用的人最多,中文资料最多 首页 - beego: 简约 & ...

  3. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

  4. Ext.Net学习笔记23:Ext.Net TabPanel用法详解

    Ext.Net学习笔记23:Ext.Net TabPanel用法详解 上面的图片中给出了TabPanel的一个效果图,我们来看一下代码: <ext:TabPanel runat="se ...

  5. kali linux 2.0 web 渗透测试 电子书

    原创 2017-05-31 玄魂工作室 玄魂工作室 打起精神,重新开启订阅号的原创文章写作工作,但是需要点时间,请耐心等待. 求资料的同学,没有及时回复的,请再次留言,我会尽快处理.今天分享两本电子书 ...

  6. Spring实战第六章学习笔记————渲染Web视图

    Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图. ...

  7. [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. [原创]java WEB学习笔记23:MVC案例完整实践(part 4)---模糊查询的设计与实现

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. nginx学习笔记(三)

    nginx变量 有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话) 我们看一个通过修改 $args ...

  2. apache-tomcat 部分中文.html .jsp 连接 404问题

    修改文件到 自己的安装目录:\apache-tomcat-7.0.79\conf 添加   Connector URIEncoding="utf-8" <Connector ...

  3. ORM学员管理系统

    1.使用MySQL自己创建一个数据库,以下例为例 CREATE DATABASE orm DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 2.在项目的set ...

  4. 非root用户安装cuda和cudnn

    1.根据自己的系统在官网下载cuda (选择runfile(local)) https://developer.nvidia.com/cuda-downloads 2.进入下载目录,并执行 sh cu ...

  5. 关于Data URI

    [新增]:http://www.webhek.com/post/data-url.html 引子:在研究FileReader时,有个方法readAsDataURL;然后看到打印出来的东西类似于如下:[ ...

  6. Executors创建的4种线程池的使用

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...

  7. 工程无法正常调试运行unknown failure at android.os.Binder.execTransact

    同事正常使用的工程,放到另电脑上,开后可以正常编译,但是无法安装调试到手机上,始终提示错误 新建一个工程正常. 最后通过把开发工具升级到最新版本解决.

  8. idea与maven整合

    1.官网下载 apache-maven-3.3.3 2.解压安装后配置conf-settings文件 a. <localRepository>E:\JAVA\maven_cangku< ...

  9. [转]Java工程师技术栈--成神之路

    一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133http://if ...

  10. svn提交出现错误 svn: Working copy 'D:\...'locked.

    更新svn内容时出现如下的错误: svn: Working copy 'D:\tools\Workspaces\EclipseForNewSTLJ\javashop\b2c\src\main\weba ...