一.常见术语
1、 脚本(asp,php,jsp)(动态脚本语言)
2、 html(scc,js,html)(静态脚本语言)
对于动静态脚本的区别:
静态脚本不会与数据库进行交互,是直接在本地浏览器上运行,且速度很快,但是可以直接查看到源码;
动态脚本是会与数据库发生交互的,是运行在web服务器上,显示的是执行结果(在浏览器中也可以运行,源码可以看到)
3、 HTTP协议
4、 CMS(B/S)
5、 MD5(不可逆的,常见的MD5解密网站其实是将一些明文进行MD5加密,形成一个库,在查询的时候将密文与库中的信息进行碰撞,最后得到明文)
6、 肉鸡、爪鸡、跳板
7、 一句话、小马、大马、webshell、提权、后门、跳板
在这里“一句话、小马、大马”我们统称为webshell;
提权就是我们获得目标的管理权的一个过程;
跳板就是在我们对目标机进行渗透是为了防止追踪到我们的本机IP,我们控制肉鸡对目标机进行渗透,这个肉鸡就是一个跳板。
8、 源码打包、脱库
9、 嗅探、rookit
10、poc
简单来说就是一个测试的流程
比如对一个网站进行SQL注入的检查:
?id=1'
?id=1 and 1=1
?id=1 and 1=2
这一过程就是一个poc,他只是一个验证过程不需要结果。
11、exp
就是要实现攻击,得到我们想要的东西,与poc不同的是最后要有一个结果。
二、渗透测试
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
我们通常认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。(源自百度百科)说的直白点,就是入侵,目的是发现网络隐患。
三、流程
明确目标 信息收集 漏洞探测 漏洞验证
编写报告 信息整理 获取所需 信息分析
四、环境
虚拟机 目标靶机系统的安装 HTTP协议 网站搭建
五、HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(源自百度百科)说得直白点就是一种规则,公认的约束,要想上网就必须遵循这种规则。
把域名翻译成IP地址的软件称为域名系统,即DNS。它是一种管理名字的方法。这种方法是:分不同的组来负责各子系统的名字。系统中的每一层叫做一个域,每个域用一个点分开。所谓域名服务器(即Domain Name Server,简称Name Server)实际上就是装有域名系统的主机。它是一种能够实现名字解析(name resolution)的分层结构数据库。在我们上网的过程中,会在地址栏里输入地址然后点击确定,就可以连接到相应的页面。在这个过程中,我们输入的那一串字符其实并没有什么意义,重点是将那串字符解析成的IP地址才是重点,那一串字符仅仅是为了方便人们记忆,如果在地址栏里输入相应的IP也一样可以连接到我们想去的网页。
全球有13台DNS根服务器,分布如下:
美国VeriSign公司 2台
网络管理组织IANA(Internet Assigned Number Authority) 1台
欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台
美国PSINet公司 1台
美国ISI(Information Sciences Institute) 1台
美国ISC(Internet Software Consortium) 1台
美国马里兰大学(University of Maryland) 1台
美国太空总署(NASA) 1台
美国国防部 1台
美国陆军研究所 1台
挪威NORDUnet 1台
日本WIDE(Widely Integrated Distributed Environments)研究计划 1台
1、http响应码
2、http URL
url是统一资源定位符,就是我们常说的网址,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
我们可通过地址判断其服务器的操作系统类型
例如:
http://www.xxx.xxx.com/admin/index.php
对于Windows而言不会区分文件名称的大小写,如果输入index.php和index.PHP都不会报错;
但是对于Linux系统而言,就是区分大小写的,输入index.php就不会报错,index.PHP就会报错。
3、http头
200 响应码
date 日期
content-type 类型
Accept-charset 浏览器可接受的字符集
Content-length 表示请求信息的正文的长度
Cookie 是很重要的信息之一
http ://www.xxx.xxx.com/IPsot=373
4 、http请求
GET 通过URL传值的方式进行传值,明文的,不安全
POST
OPTIONS
PUT
MOVE
DELETE
TRACE
5、HTTP错误配置会导致安全漏洞
服务器存在允许PUT方式和MOVE方式,这时可以通过PUT方式传输一个webshell.txt然后通过MOVE方式结合解析漏洞就可以拿到webshell。(同文件夹下MOVE同一个文件就是修改名字)
6、HTTP头文件中安全隐患
在PHP中通常会使用$_SERVR[“HTTP_CLIENT_IP”]或者$_SERVER[“HTTP_X_FORWARDED_FOR”]来获取IP。
所以可以通过修改http头中的X-Forwarded-For:、client-ip:来进行攻击。
突破服务器访限制IP
http头注入攻击
注入 X-Forwarded-For:1.1.1.1’
在对ip进行传输的时候用的是insert into update方式来传输获修改,用上述方式就可能通过报错形成注入攻击。
7、https协议
https其实就是两部分的组成:http+ssl/TLS
对HTTP加了一层处理加密信息的模块
8、环境搭建
Windows:
Iis+asp/aspx/php/+mysql/sqlserver/access
2019-04-16 08:42:58