一、渗透测试是什么

渗透测试(PenetrationTest)是对安全情况最客观、最直接的评估方式,主要是模拟黑客的攻击方法对系统和网络进行非破坏性质的攻击性测试,在保证整个渗透测试过程都在可以控制和调整的范围之内尽可能的获取目标信息系统的管理权限以及敏感信息,并将入侵的过程和细节产生报告给用户,由此证实用户系统所存在的安全威胁和风险,并能及时提醒安全管理员完善安全策略。

渗透测试是工具扫描和人工评估的重要补充。工具扫描具有很好的效率和速度,但是存在一定的误报率,不能发现高层次、复杂的安全问题;渗透测试需要投入的人力资源较大、对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能),但是非常准确,可以发现逻辑性更强、更深层次的弱点。

二、渗透测试的流程

三、渗透测试内容

《代码层安全

应用程序及代码在开发过程中,由于开发者缺乏安全意识,疏忽大意极为容易导致应用系统存在可利用的安全漏洞。一般包括SQL注入漏洞、跨站脚本漏洞、上传漏洞、CSRF跨站请求伪造漏洞等。

1)     SQL注入漏洞

SQL注入漏洞的产生原因是网站程序在编写时,没有对用户输入数据的合法性进行判断,导致应用程序存在安全隐患。SQL注入漏洞攻击就是利用现有应用程序没有对用户输入数据的合法性进行判断,将恶意的SQL命令注入到后台数据库引擎执行的黑客攻击手段。

2)     跨站脚本漏洞

跨站脚本攻击简称为XSS又叫CSS (Cross Site Script Execution),是指服务器端的CGI程序没有对用户提交的变量中的HTML代码进行有效的过滤或转换,允许攻击者往WEB页面里插入对终端用户造成影响或损失的HTML代码。

3)     会话管理漏洞

会话管理主要是针对需授权的登录过程的一种管理方式,以用户密码验证为常见方式,通过对敏感用户登录区域的验证,可有效校验系统授权的安全性,测试包含以下部分:

4)     用户口令易猜解

通过对表单认证、HTTP认证等方式的简单口令尝试,以验证存在用户身份校验的登录入口是否存在易猜解的用户名和密码

5)     是否存在验证码防护

验证码是有效防止暴力破解的一种安全机制,通过对各登录入口的检查,以确认是否存在该保护机制

6)     是否存在易暴露的管理登录地址

某些管理地址虽无外部链接可介入,但由于采用了容易猜解的地址(如:admin)而导致登录入口暴露,从而给外部恶意用户提供了可乘之机

7)     是否提供了不恰当的验证错误信息

某些验证程序返回错误信息过于友好,如:当用户名与密码均错误的时候,验证程序返回“用户名不存在”等类似的信息,通过对这一信息的判断,并结合HTTP Fuzzing工具便可轻易枚举系统中存在的用户名,从而为破解提供了机会。

会话管理主要是针对验证通过之后,服务端程序对已建立的、且经过验证的会话的处理方式是否安全,一般会从以下几个角度检测会话管理的安全性:

8)     Session是否随机

Session作为验证用户身份信息的一个重要字符串,其随机性是避免外部恶意用户构造Session的一个重要安全保护机制,通过抓包分析Session中随机字符串的长度及其形成规律,可对Session随机性进行验证,以此来确认其安全性。

9)     校验前后Session是否变更

通过身份校验的用户所持有的Session应与其在经过身份验证之前所持有的Session不同

10)   会话储存是否安全

会话存储是存储于客户端本地(以cookie的形式存储)还是存储于服务端(以Session的形式存储),同时检测其存储内容是否经过必要的加密,以防止敏感信息泄露

11)   不安全的对象引用

不安全的对象引用是指程序在调用对象的时候未对该对象的有效性、安全性进行必要的校验,如:某些下载程序会以文件名作为下载程序的参数传递,而在传递后程序未对该参数的有效性和安全性进行检验,而直接按传递的文件名来下载文件,这就可能造成恶意用户通过构造敏感文件名而达成下载服务端敏感文件的目的。

12)   跨站请求伪造

跨站请求伪造(Cross-site request forgery,缩写为CSRF),也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

《应用层安全

由于应用系统和数据库系统开发配置的具体过程中,可能由于管理员缺乏安全意识或疏忽大意导致应用层存在安全隐患。

1)     弱口令

弱口令通常有以下几种情况:用户名和密码是系统默认、口令长度过短、口令选择与本身特征相关等。系统、应用程序、数据库存在弱口令可以导致入侵者直接得到系统权限、修改盗取数据库中敏感数据、任意篡改页面等。

2)     敏感信息泄露

敏感信息泄露漏洞指泄露有关WEB应用系统的信息,例如,用户名、物理路径、目录列表和软件版本。尽管泄露的这些信息可能不重要,然而当这些信息联系到其他漏洞或错误设置时,可能产生严重的后果。例如:某源代码泄露了SQL服务器系统管理员账号和密码,且SQL服务器端口能被攻击者访问,则密码可被攻击者用来登录SQL服务器,从而访问数据或运行系统命令。

3)     安全配置错误

某些HTTP应用程序,或第三方插件,在使用过程中由于管理人员或开发人员的疏忽,可能未对这些程序或插件进行必要的安全配置和修改,这就很容易导致敏感信息的泄露。而对于某些第三方插件来说,如果存在安全隐患,更有可能对服务器获得部分控制权限。

4)     链接地址重定向

重定向就是通过各种的方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

而某些程序在重定向的跳转过程中,对重定向的地址未进行必要的有效性和安全性检查,且该重定向地址又很容易被恶意用户控制和修改,这就可能导致在重定向发生时,用户会被定向至恶意用户事先构造好的页面或其他URL,而导致用户信息受损。

《移动安全

测试类型

测试项

测试项描述

安装包

反编译

测试app安装文件是否能被反编译

重打包

测试app安装文件是否能被重打包并签名发布

本地存储

内存修改

测试app内存是否可被修改,比如修改内存中的金额

明文存储

测试app是否在本地明文存储敏感文件,如:帐号、协议结构等

数据传输

封包篡改

测试app数据包被拦截下来后修改内容重新发送,服务端是否能识别

封包重放

测试app数据包被拦截下来后重复发送,服务端是否能识别

业务相关

验证码绕过

测试app的验证码是否能被绕过

暴力破解

测试app的登录口是否能进行暴力破解、撞库攻击。

订单篡改

测试app的订单是否能被篡改,比如:订单被新增、修改、删除等。

订单重放

测试app的订单是否能被重放,比如:转帐订单数据包重新提交,是否能再一次转帐。

逻辑安全

测试app是否存在逻辑上的安全漏洞,比如:付款金额为负数,实际上不但没有扣款,反而给买家增加了余额。

自我保护

完整性校验

测试app相关组件是否能被篡改,有无完整性校验机制。

动态调试

测试app能否被IDA等工具动态调试;有无加壳保护

软件源替换

测试app更新源是否可被替换,比如:修改hosts文件将域名定位到指定IP;修改升级文件为自定义文件。

键盘记录

测试app密码是否能被键盘记录工具明文记录

服务端安全

web安全

测试app服务端是否存在web安全漏洞

接口安全

测试app连接的接口是否存在安全漏洞

PenetrationTest的更多相关文章

  1. 常见Web源码泄露总结

    来自:http://www.hacksec.cn/Penetration-test/474.html 摘要 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. .h ...

  2. DoraBox sql注入&文件上传

    SQL注入 1.sqli数字型 判断是否存在注入点,执行1 and 1=1,有回显判断存在注入点 判断字段数,执行1 order by 3以及执行1 order by 4时报错,判断字段数为3 判断具 ...

  3. BlackArch-Tools

    BlackArch-Tools 简介 安装在ArchLinux之上添加存储库从blackarch存储库安装工具替代安装方法BlackArch Linux Complete Tools List 简介 ...

  4. sqli-labs之Page-1

    搭建与安装 参考:https://www.fujieace.com/penetration-test/sqli-labs-ec.html 下载:sqli-labs下载 第一关:单引号报错注入 ?id= ...

  5. 阿里云服务器搭建vulhub靶场

    阿里云服务器搭建vulhub靶场 环境 服务器:阿里云服务器 系统:centos7 应用:vulhub 步骤 vulhub需要依赖docker搭建,首先安装docker. 使用以下方法之一: # cu ...

随机推荐

  1. Android -- Layout布局文件里的android:layout_height等属性为什么会不起作用?

    有的时候,我们配置好的布局文件,在加载完成添加到我们的Activity中后发现,并没有安装我们设置的属性来布局,比如我们设置了android:layout_marginTop="100dip ...

  2. 团队开发——第一篇scrum报告

    一.角色介绍 产品负责人(兼项目经理PM):王雪青 scrum master: 陆宇 开发团队:赵建松.张文冬.徐擎天 二.product backlog 1.买家登录后,显示各个小吃摊的信息,主要是 ...

  3. Html5 Canvas动画旋转的小方块;

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  4. 创建ubuntu软件源

    缘起:虚拟机需要安装一些文件,但是直接从外网下载比较慢,而且安装iso包中是有这些软件的,所以创建一个ubuntu  apt server ubuntu 12.04, 本机192.168.0.124, ...

  5. Ombrophobic Bovines - POJ 2391

    Description FJ's cows really hate getting wet so much that the mere thought of getting caught in the ...

  6. hdu 5691 Sitting in Line 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5691 题解: 和tsp用的状压差不多,就是固定了一些访问顺序. dp[i][j]表示前cnt个点中布 ...

  7. Ext.Ajax中scope的作用

    在Ext的前台Js中使用Ajax请求,如果想让回调函数中的this作用域跟当前的类一样如何实现呢?Ajax提供了一个参数scope. 详细代码如下: layout : { type : 'accord ...

  8. MyEclipse 关闭拼写检查、JavaScript的检查Build、xml、JSP的Bulid检查

    前言 MyEclipse 的拼写检查.JavaScript的检查Build.xml.JSP的Bulid检查很讨厌,有时不仅会一直build卡住,而且明明是对的它却报错,示例: 关闭方法 1.关闭拼写检 ...

  9. 2014 ACM/ICPC Asia Regional Guangzhou Online

    Wang Xifeng's Little Plot http://acm.hdu.edu.cn/showproblem.php?pid=5024 预处理出每个点八个方向能走的最远距离,然后枚举起点,枚 ...

  10. Kali-linux安装之后的简单设置

    1.更新软件源:修改sources.list文件:leafpad /etc/apt/sources.list然后选择添加以下适合自己较快的源(可自由选择,不一定要全部): #官方源deb http:/ ...