《web安全深度剖析》1.0

第一章:前言及概论
1:在实际的渗透中,更多地靠经验思路,工具反而是其次。由于目前的软件开发水平还达不到智能化,因此工具只是让咱们更方便高效。工具只能按程序员的思惟流程来进行,因此不能一味追求神器,要依靠本身的大脑。
2:原理性的知识为内功,具体的实操,技术点为招式。只有招式而没有内功是没法变成高手的,因此在学习过程当中要刨根问底,从技术层次挖掘到理论层次,站在更高的角度看问题。
3:渗透的媒介是端口,攻击者的计算机与服务器依靠端口正常通讯,客户端与服务器也是同样。端口扫描,密码爆破(FTP,数据库)可直接获取目标权限,但由于技术进步,系统的溢出漏洞愈来愈难挖掘,主要阵地转移到了Web上。Question1:攻击者经过电脑攻击另外一台电脑是否是也同样?服务器的定义是什么?和通常的计算机有什么区别?
4:Web强大的四个要点:数据库,编程语言,Web容器和优秀的Web程序猿。各自的做用:编程语言将程序员的个性化程序变为真实的存在,并与数据库链接。Web容器做为终端解析用户请求与脚本语言。
5:Web安全仍然热门的缘由:首先开发人员没有安全意识,其次代码即便功能完善,也会出现漏洞。项目上线后,服务器环境的改变会让没有问题的代码产生问题。
6:直接对目标下手的三种手段:C段渗透(渗透同一网段内的一台主机进行ARP等手段渗透),社会工程学(高端攻击者必备技能)与Services(传统攻击方式针对服务进行溢出,如缓冲区溢出)
7:攻击者只须要找到程序的一个突破口,而渗透测试人员须要把系统的全部漏洞找齐。编程技术强能更好的理解漏洞产生的缘由,因此信息安全工程师须要编程功底,编程功底是安全程师的分水岭。
8:编程语言的合适搭配:HTML,JavaScript,SQL+任意Web语言(先学好C语言,再学PHP)C/C++,偏底层,C/S架构的软件。缓冲区溢出,底层协议,NC,LCX,DNSSniffer,Hydra,溢出程序,远程控制。Java,跨平台,C/S架构B/S架构都可。C#,两种架构都可,NET framework支持,没法跨平台。PHP,跨平台脚本语言,无需编译,仅限Web,必备。Python,跨平台脚本语言,无需编译,安全研究者多用。HTML,前端语言,必备。JavaScript,前端语言,理解XSS跨站脚本攻击。php

第二章:HTTP请求流程(重要+关键)
1:概念:HyperText Transfer Protocol,超文本传输协议,规定浏览器与万维网服务器间的通讯规则,交换信息的基础,容许将HTML文档从Web服务器传到Web浏览器。
2:HTTP请求不必定只能由浏览器发出,如curl+URL,可返回此页面的HTML数据,加上-I可查看访问URL后服务器返回的HTTP响应头,故浏览器将界面直观化。
3:HTTP为无状态协议,浏览器与服务器之间不须要创建持久的链接,服务器端不保留链接的有关信息。于是http请求只能由客户端发起,而服务器不能主动向客户端发送数据。
4:格式:请求行(请求方法)请求头(消息报头)请求正文。请求行的post说明该请求为post方法的请求,/login.php说明请求的是该域名根目录下的login.php,HTTP1.0或HTTP1.1表示版本。
5:HTTP响应中,响应行包含HTTP版本,状态码及消息,响应头,响应正文(服务器向客户端发送的HTML数据)
6:几种请求方法:GET请求页面指定的信息,若请求资源为动态脚本,则返回文本为web解析过的HTML源代码而非源文件。使用GET请求index.php,服务器端脚本语言将选择性接收内定好的参数,并查询数据,向服务器端发送解析过的HTML数据,不会由于干扰而改变;HEAD,除了服务器不能在响应里返回消息主体,其余与GET 相同,经常使用来测试超文本连接有效性可访问性及最近的改变。攻击者编写扫描工具用此方法速度最快(只需测试资源是否存在,不用返回消息主题);POST与GET类似,但post有请求内容,多用于向服务器发送大量数据,GET对内容有长度限制,且会直接显示在浏览器端,不安全。Question2:HTTP协议改怎么写?PUT用于请求服务器把请求中的实体存储在请求资源下,替换旧版或建立,数据位为请求正文。为服务器建立文件,属于危险的方法。DELETE请求服务器删除制定资源,属于危险方法。另外还有TRACE,CONNECT,OPTIONS,WebDAV等等
7:状态码:100至101表示请求已被接收,继续处理。200至206表示成功处理请求。300至305表示被访问的资源已被移动,并从新发起请求。400至415表示客户端错误,服务器没法处理。500到505表示服务器内部错误。重要状态码:200请求成功,302重定向,404资源不存在(原来如此,网页找不到时的404Not found。),400客户端语法错误,401请求未经受权。403收到请求拒绝服务,500服务器内部错误,503目前没法处理请求。
HTTP消息(HTTP头),包括请求头,响应头,普通头与实体头。
请求头容许客户端向服务器传递请求的附加信息和客户端自身信息。Host用于指定被请求的Internet主机与端口号,User-Agent容许客户端将其操做系统,浏览器及其余系统属性告诉服务器。Referer包含当前访问的URL的上一个URL。Cookie表示请求者的身份,是一段文本。(清理浏览器数据时的我的信息就是这个)。Range可请求实体的部份内容,多线程下载必用。如bytes=0~499,bytes=500~999,最后500字节bytes=500,500字节之后bytes=500-。XTF头,即x-forward-for,表明请求的一个或多个IP,以逗号隔开。Accept,指定客户端接收一类MIME类型的信息,如Accept:text/html。Accept-charset域用于指定客户端接收的字符集。
响应头,服务器根据请求向客户端发送的http头。Server,表示服务器所使用的web服务器名称,查看此头可探测名称,故建议于服务器端修改此头信息。Set-Cookie,向客户端设置Cookie,可查看服务器向客户端发送的Cookie信息。Last-modified,服务器经过此头告诉浏览器,资源的最后修改时间。Location,服务器经过此头告诉浏览器目标界面,配合302状态码使用。Rfresh定时刷新浏览器。
普通头,少数报头域用于全部的请求和响应消息,并不用于被传输的实体,用于被传输的消息。
实体头定义了关于实体正文和请求所标识正文的元信息(内容属性,如实体信息类型。长度,压缩方法等),content-type用于向接收方指示实体的介质类型,content-encoding,采用相应的解码机制可得到已经被应用到实体正文的附加内容的编码。content-length指明实体正文的长度,字节方式存储的十进制数字表示。Last-modified指示资源的最后修改时间。
HTTPS是HTTP协议的升级版,在HTTP(链接相对简单,无状态)下加入SSL层加密后身份认证后,网络传送数据的隐秘性和完整性将获得保护。HTTP与HTTPS使用彻底不一样的链接方式,一个采用80端口,一个采用443端口。后者须要CA证书,前者不须要。
黑帽SEO对大型网站入侵挂上“友情连接”,或者劫持搜索引擎利用Referer和User-agent
几种工具:如:Burp Suite Proxy,Web应用安全测试工具的集成平台,全部工具共享一个可处理并显示HTTP消息,持久性,认证,代理,日志,警报的可扩展框架。html

第三章:信息探测
渗透测试前应该搜集目标网站的服务器配置信息及网站信息
Google Hacker,经常使用语法,site即指定域名,intext即正文中存在关键字的网页,intitle即标题中存在关键字的网页,info即一些基本信息,info即一些基本信息,inurl即URL中存在关键字的网页,filetype即搜索指定文件类型。
网络爬虫,按照必定的规则,自动抓取万维网信息的程序或脚本,分为通用爬虫和聚焦爬虫,增量性网络爬虫和深层网络爬虫
Namp,一个开源的网络链接端扫描软件,肯定哪些服务运行在哪些链接端,并推断计算机运行的操做系统,评估网络系统安全。Namp Acript是Namp最好的功能之一,可快速探测服务器,安装目录下的Script文件夹下“.nse”结尾的文本文件即其自带的脚本引擎,亦可本身编写实现漏洞扫描,漏洞利用和目录扫描等功能前端

Dirbuster:DirBuster是Owasp(开放Web软体安全项目- Open Web Application Security Project )开发的一款专门用于探测Web服务器的目录和隐藏文件
指纹识别:与实际中的指纹识别类似,识别网站的CMS与Web容器,最重要的就是特征库。
信息探测的目的是为下一步的渗透测试做准备,不一样的工具各具特点,安全工程师应该以准确为主,速度为辅。
第四章:漏洞扫描程序员

相关文章
相关标签/搜索