渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题
渗透测试的基本流程:
1、脚本(asp、php、jsp)
2、html(css、js、html)
3、HTTP协议
4、CMS内容管理系统(B/S)
5、MD5/加盐(salt)
6、肉鸡、抓鸡、DDOS、cc(耗费自己的CPU资源分配代理服务器)
7、一句话、小马、大马
webshell、提权、后门、跳板、rookit
8、源码打包、脱裤、暴库
9、嗅探、rookit、社工
10、poc、exp、cve
11、src平台、0day
12、事件型漏洞,通用型漏洞
13、web服务器、web容器、中间件
超文本传输协议(HTTP,HyperText Transfer Protocol)
即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML文档从Web服务器传送到Web浏览器。
统一资源定位符(URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)
格式如下:
http://host[“:”port][abs_path]
例如:
http://www.cracer.com:80/admin/index.php
小技巧:对于网站的URL,我们可以通过改变大小写的方式来判断网站是什么类型的操作系统,因为,Windows服务器是大小写不敏感的,也就是改变URL大小写之后页面依然会正常显示,而Linux服务器是大小写敏感的,改变网页URL大小写会发生致命的错误!
抓包分析请求头参数和响应参数
在PHP中通过会使用$_SERVER["HTTP_CLIENT_IP"]
或者$_SERVER["HTTP_X_FORWARDED_FOR"]
来获取IP
因此,我们就可以通过修改http头中的X-Forwarded-For
、client-ip
来进行攻击。
例如:
常见的几种请求方法
GET、POST、COOKIE、OPTIONS、PUT、MOVE、DELETE、TRACE
服务器端的接受
GET、POST、COOKIE、REQUEST
HTTPS其实是有两部分组成:HTTP + SSL / TLS
,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据