概述
一、常见术语介绍
1、脚本(asp、php、jsp)
2、html(css、js、html)
3、HTTP协议
4、CMS(B/S)
5、MD5
6、肉鸡、抓鸡、跳板……
7、一句话、小马、大马 webshell、提权、后门、跳板……
8、源码打包、脱裤……
9、嗅探、rookit……
渗透测试流程
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
流程:
1、明确目标 2、收集信息 3、漏洞探测 4、漏洞验证 5、编写报告 6、信息整理 7、获取信息 8、信息分析
学习环境配置:
1、虚拟机应用配置
2、测试系统的安装
3、网站搭建配置
4、HTTP协议讲解
超文本传输协议(HTTP,HyperText Transfer Protocol)即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML文档从Web服务器传送到Web浏览器。
HTTP响应码:
1xx:信息
100 Continue:服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101 Switching Protocols:服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。
2xx:成功
200 OK:请求成功(其后是对GET和POST请求的应答文档)
201 Created:请求被创建完成,同时新的资源被创建。
202 Accepted:供处理的请求已被接受,但是处理未完成。
203 Non-authoritative Information:文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。
204 No Content:没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content:没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content:客户发送了一个带有Range头的GET请求,服务器完成了它。
3xx:重定向
300 Multiple Choices:多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。
301 Moved Permanently:所请求的页面已经转移至新的url。
302 Moved Temporarily:所请求的页面已经临时转移至新的url。
303 See Other:所请求的页面可在别的url下被找到。
304 Not Modified:未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy:客户请求的文档应该通过Location头所指明的代理服务器提取。
306 Unused:此代码被用于前一版本。目前已不再使用,但是代码依然被保留。
307 Temporary Redirect:被请求的页面已经临时移至新的url。
4xx:客户端错误
400 Bad Request:服务器未能理解请求。
401 Unauthorized:被请求的页面需要用户名和密码。
402 Payment Required:此代码尚无法使用。
403 Forbidden:对被请求页面的访问被禁止。
405 Method Not Allowed:请求中指定的方法不被允许。
406 Not Acceptable:服务器生成的响应无法被客户端所接受。
407 Proxy Authentication Required:用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout:请求超出了服务器的等待时间。
409 Conflict:由于冲突,请求无法被完成。
410 Gone:被请求的页面不可用。
411 Length Required:“Content-Length” 未被定义。如果无此内容,服务器不会接受请求。
412 Precondition Failed:请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large:由于所请求的实体的太大,服务器不会接受请求。
414 Request-url Too Long:由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。
415 Unsupported Media Type:由于媒介类型不被支持,服务器不会接受请求。
416 Requested Range Not Satisfiable:服务器不能满足客户在请求中指定的Range头。
417 Expectation Failed:执行失败。
423:锁定的错误。
5xx:服务器错误
500 Internal Server Error:请求未完成。服务器遇到不可预知的情况。
501 Not Implemented:请求未完成,服务器不支持所请求的功能。
502 Bad Gateway:请求未完成。服务器从上游服务器收到一个无效的响应。
503 Service Unavailable:请求未完成。服务器临时过载或当机。
504 Gateway Timeout:网关超时。
505 HTTP Version Not Supported:服务器不支持请求中指明的HTTP协议版本
http url:
统一资源定位符(URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
http://host[“:”port][abs_path]
例如:http://www.xxx.com:80/admin/index.php
http头讲解:
[root@localhost ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Thu, 26 Dec 2019 10:08:50 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
200 响应码
date 日期
content-type 类型
Accept-Charset:浏览器可接受的字符集。
Content-Length:表示请求消息正文的长度。
Cookie:这是最重要的请求头信息之一
http请求方法
GET、POST、OPTIONS、PUT、MOVE、DELETE、TRACE
错误配置HTTP方法导致的安全事件
服务器存在允许PUT方式和MOVE方式,这时我们可以通过PUT方式传一个webshell.txt然后通过MOVE方式结合解析漏洞这样就可以很快的拿到网站的webshell。
HTTP头中安全隐患
在PHP中通过会使用
S
E
R
V
E
R
[
"
H
T
T
P
C
L
I
E
N
T
I
P
"
]
或
者
_SERVER["HTTP_CLIENT_IP"]或者
SERVER["HTTPCLIENTIP"]或者_SERVER[“HTTP_X_FORWARDED_FOR”]来获取IP。
因此,我们就可以通过修改http头中的X-Forwarded-For:、client-ip:
来进行攻击。例如:
1、突破服务器访问限制ip
2、http头注入攻击等。
HTTPS协议:
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
重点:
了解常见术语
熟悉渗透测试流程
熟练操作虚拟机配置
熟练安装系统
熟练搭建网站测试环境
掌握常见cms搭建方法
熟悉常见主流cms架构
熟悉http协议
最后
以上就是贤惠中心为你收集整理的渗透测试基础的全部内容,希望文章能够帮你解决渗透测试基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复