web安全测试--基础篇-程序员宅基地

技术标签: web安全  安全  测试工具  

一、web应用安全概述

web应用常见的功能与优点

web应用的优点

web应用典型安全漏洞

不完善的身份验证措施 弱密码、验证不完善…… 不完善的访问控制措施 数据和功能缺乏保护,攻击者可以查看其他用户数据,或执行特权操作

SQL注入 攻击者可设计输入,提取数据,执行命令…… 跨站点脚本 攻击者可攻击其他用户、访问其信息、执行未授权的操作…… 信息泄露 应用程序泄露敏感信息,攻击者利用这些信息攻击应用程序 跨站点请求伪造 攻击者可诱使用户无意中使用自己的用户权限对应用程序执行操作

Web应用安全的核心问题:用户可提交任意输入

Web应用防御机制――处理用户输入

1.黑名单 黑名单包括一组已知的字符串或模式。处理用户输入的机制,应阻止任何与黑名单匹配的数据,并接受其它数据。

2.白名单 白名单仅包含与良性输入匹配的一组字符串、模式或一组标准。处理用户输入的机制,应接受任何与白名单匹配的数据,并阻止其它数据

3.净化 对用户输入的数据进行净化处理,防止造成任何不利的影响。如,删除输入数振中的恶意字符,或者对输入数据进行编码或转义。 例如:防御跨站点脚本攻击的常用方法,是将危险字符进行HTML编码。

4.安全数据处理 使用安全的编程方法处理用户数据。如,在数据库访问中正确地使用参数化查询。

有效性:白名单>净化>安全数据处理>黑名单

Web应用防御机制—―处理攻击

1.处理错误 web应用程序的一个关键防御机制是合理地处理无法预料的错误。在生产环境下,应用程序不应在其响应中返回任何系统生成的消息或其他调试信息。因为过于详细的错误消息非常有利于恶意用户向应用程序发动进一步攻击。

2.审计/错误日志 审计日志应记录所有重要事件,至少包括以下几项: (1)所有与身份验证功能有关的事件,如登录(成功或失败)、密码修改等。

(2)关键交易,如信用卡支付与转账。

(3)任何包含已知攻击字符串,公然表明恶意意图的请求。 错误日志记录出错信息,内容至少包括:错误类型、错误编号、错误描述、日期和时间、引发该错误的操作、错误发生时的用户名等。

3.发出警报 对应用异常、交易异常、已知攻击等行为,向管理员发出警报。管理员可采取的措施有:阻止发起攻击的IP地址或账号、将web应用从网络中断开等等。

4.应对攻击 web应用程序自动阻止攻击者的探查:对攻击者提交的请求的响应速度,越来越慢;终止攻击者的会话;强迫攻击者重新登录;要求攻击者执行其他步骤...。

二、服务器端常见平台和语言

Java平台:跨平台,应用多层与负载平衡架构,适于模块化开发。

主要有:EnterpriseJavaBean(EJB),Plain Old Java Object(POJO), Java Servlet, Java Web容器。常见的漏洞:

文件访问:可能会引入路径遍历漏洞

数据库访问:可能受到sQL注入攻击.

动态代码执行:没有动态评估Java源代码的机制,存在用户非法控制数据的风险Os命令执行:可能受到命令执行攻击

URL重定向:可能受到钓鱼攻击

套接字:攻击者可能会接入任意主机

ASP.NET:使用微软的.NET Framework,提供一个虚拟机cLR (Common Language Runtime和一组API。ASP.NET框架能防御一些常见的web应用程序漏洞。常见的漏洞:

文件访问:可能会引入路径遍历漏洞

数据库访问:可能受到sQL注入攻击

动态代码执行:攻击者可能在程序中执行任意命令OS命令执行:可能受到命令执行攻击

URL重定向:可能受到钓鱼攻击

套接字:攻击者可能会接入任意主机

PHP: PersonalHome Page,LAMP组合: Linux+Apache+MySQL+PHP。由于PHP框架原因,容易包含大量安全漏洞。常见的漏洞:

文件访问:攻击者可能会访问服务器文件系统上的任意文件

数据库访问:可能受到sQL注入攻击

动态代码执行:易于受到脚本注入攻击OS命令执行:可能受到命令执行攻击URL重定向:可能受到钓鱼攻击

套接字:攻击者可能会接入任意主机

Ruby on Rails:主要侧重于模型-视图-控制器体系架构。该架构中发现的漏洞,和PHP类似。 SQL:结构化查询语言,用于数据库访问。常见漏洞为:

SQL注入攻击 XML:可扩展标记语言,主要由标签和数据构成。

Web服务: web服务使用soAP来交换数据。SOAP使用HTTP协议来传送消息,开使用XML格式表示数据。服务器会以web服务描述语言(WSDL〉格式公布可用的服务和跌效,蚁击者可据此攻击身份验证服务。

三、客户端功能

HTML:超文本标记语言,是建立web界面所需的核心技术。

超链接:是指从一个网页指向一个目标的连接关系。

表单:通过网页来收集一些用户信息(例如用户名、电话、邮箱地址等)的一组元素。

css:层叠样式表用于格式化网页内容的布局。易引发XSs漏洞。

JavaScript:可根据用户操作,动态修改用户界面。

vBScript:可替代JavaScript。但只有微软浏览器才支持。

文档对象模型:一个web页面是一个文档。DOM提供了对文档的结构化表述(一个由节点和对象组成的结构集合),并定义了一种方式可以使程序对该结构进行访问,从而改变文档的结构、样式和内容,从而将web页面和脚本或程序语言连接起来。

Ajax: Asynchronous Javascript+XML。一些用户操作将由客户端脚本代码,不需要重新加载整个页面。

JSON:Javascript对象表示法,一种轻量级的数据交换格式。

同源策略:浏览器实施的一种关键机制,主要用于防范不同来源的内容相互干扰。如果两个URL的protocol、host和port都相同的话,则这两个URL是同源。两个相同的源之间是可以相互访问资源和操作DOM的。两个不同的源之间若要相互访问资源或者操作DOM,会有安全策略的制约。

HTML5: HTML的新版本。新增的标签、属性和APl,可能引入跨站点攻击、跨域攻击和SQL注入等风险

服务器端/客户端知识―—
​
1.服务器端常见平台和语言有哪些?
2.服务器端常见安全漏洞有哪些?
3.LAMP是指什么?
4.Ruby on Rails主要使用什么体系架构?
5. wSDL是什么?它的受攻击面是什么?
6. DOM是什么?
7、什么是Ajax?它和DOM是什么关系?8.什么是同源策略?
​

四、web测试工具包

1、浏览器:

InternetExplorer/Edge:大多数web应用程序都能在IE中正确显示和使用;支持ActiveX控件;IE8引入反xSS筛选器;HttpWatch和IEWatcha扩展功能有助于攻击web应用程序;只在windows平台使用..... Firefox:绝大多数web应用程序都能在Firefox上正常运行;不支持Activex控件;针对IE无效的许多攻击能够对Firefox实施: HttpWatch, FoxyProxy, LiveHTTPHeaders, PrefBar, Wappalyzer, Web Developer..... Chrome: XSS Rays, cookie编辑器, wWappalyzer, Web Developer....

2、集成测试套件:

BurpSuite, WebScarab, Paros proxy,Zed Attack Proxy, Fiddler...... 主要功能:拦截代理服务器、web应用程序爬虫、web应用程序测试器、漏洞扫描器、手动请求工具、分析会话cookie与其他令牌的工具、各种共享功能与实用工具等......

3、独立漏洞扫描器:

Acunetix, AppScan,Burp Scanner,NetSparker, N-Stalker, Skipfish,Webinspect.... 可探测的漏洞:反射型跨站点脚本、SQL注入、文件路径遍历、命令注入、发现无链接数据...... 无法判定的漏洞:不完善的访问控制、不了解参数的作用、逻辑错误、会话劫持攻击、泄漏敏感信息.... 内在局限性: web应用各不相同、不理解语法、无直觉,不会即兴处理.....

4、其它工具:

Nikto/Wikto: Nikto可确定web服务器上默认或常见的第三方内容。Wikto是Nikto的windows版本。 Firebug:一种浏览器调试工具,可以在当前显示的页面上调试和编辑HTML及JavaScript脚本,还可以浏览和编辑DOM。 Hydra:密码猜测工具,用于攻击web应用程序常用的基于表单的验证。定制脚本:不常见的的会话处理机制、合并数据、多个非标准验证步骤.....

常见测试工具包―—测验
1.常见的web测试工具包有哪几类?
2.浏览器支持的控件类型有哪些?
3.集成测试工具有哪些,提供哪些主要功能?
4.集成测试工具测试过程中的核心数据是什么?
----代理服务器历史记录和站点地图
5.什么是主动扫描和被动扫描?
主动扫描:给出指定的目标主机,对目标主机主动发起扫描
被动扫描:主要指的是在目标无法察觉的情况下进行的信息收集
6.独立漏洞扫描器,可探测的漏洞有哪些?
7.独立漏洞扫描器的局限是什么?
​

五、攻击验证机制

验证机制是web应用程序所有安全机制中最简单的一种,也是web应用程序防御恶意攻击的中心机制,通常也是最薄弱的环节。

一.验证技术

  • 基于HTML表单的验证

  • 多元机制,如组合型密码和物理令牌

  • 客户端SSL证书或智能卡

  • HTTP基本和摘要验证

  • 使用NTLM或Kerberos整合windows的验证.

  • 验证服务

二.验证机制设计缺陷

1.密码保密性不强:非常短、空白、常用词、用户名和密码相同、默认密码.....

2.暴力攻击登录:密码常见;允许重复登录; cookie机制可被绕开;禁用解除.....

3.详细的失败信息:详细的失败消息或差异点,可帮助攻击者发动攻击......

4.证书传输易受攻击:HTTP传输;HTTPS传输....... 5.密码修改功能:提供详细信息,说明用户名是否有效;无限制猜测现有密码; 验证现有密码后,仅检查“新密码”和“确认新密码”是否相同......

6.忘记密码功能:提问;无应答次数限制;密码暗示.....

7.“记住我”(自动登录)功能:通过cookie保存用户相关信息,易被攻击

8.用户伪装功能:允许特权用户伪装成其他用户。特殊链接;特殊cookie;后门 密码

9.证书确认不完善:密码验证较弱......

10.非唯一性用户名:不强制用户使用唯一的用户名,用户名可重复.....

11.可预测的用户名:根据某种可预测的规则,自动生成用户名(test1, test2....

12.可预测的初始密码:相同的初始密码;密码同用户名;密码同部门名......

13.证书分配不安全:通过邮箱激活账号;激活URL存在某种规律.....

三.验证机制执行缺陷

1.故障开放登录机制:代码逻辑存在缺陷,导致异常情况下,用户仍然可以登录

2.多阶段登录机制中的缺陷:后面阶段只验证本阶段;后面阶段信任前面阶段的数据;后面信任前面的用户身份.....

3.不安全的证书存储:明文存储密码;MD5或SHA-1,攻击者可观察散列值数据库.....

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_64444051/article/details/125575212

智能推荐

Dating(PAT A 1061)/ 福尔摩斯的约会(B 1014)-程序员宅基地

文章浏览阅读71次。在一行中输出约会的时间,格式为 `DAY HH:MM`,其中 `DAY` 是某星期的 3 字符缩写,即 `MON` 表示星期一,`TUE` 表示星期二,`WED` 表示星期三,`THU` 表示星期四,`FRI` 表示星期五, `SAT` 表示星期六,`SUN` 表示星期日。题目输入保证每个测试存在唯一解。

labelImg启动闪退的解决方法_labyrinthine闪退-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏25次。labelImg启动闪退解决方法在C:\Users\Administrator将文件.labelImgSettings.pkl删除,重新运行。labelImg软件安装的路径中不能出现中文,更换一个不含中文的路径。使用anaconda prompt终端依次执行以下命令(注意大小写)(使用国内的清华镜像源,下载速度比较快):pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install pyqt5-to_labyrinthine闪退

【转】学会这13个原则写UI界面文案,用户才能秒懂-程序员宅基地

文章浏览阅读78次。原文网址:http://www.niaogebiji.com/article-12011-1.html摘要: 首先,在写UI文案之前,为了理清思路,要先搞清楚三个问题:我(设计师)想让用户做什么? – 我写文案的目的为什么要让用户这么做?– 对用户有什么好处或影响怎么写才能符合用户体验?– 怎么以简洁明了的表达,让 ...首先,在写UI文案之前,为了..._网页语言文案编写规范

Python 3、selenium/执行js命令显示隐藏元素,封装js工具类-程序员宅基地

文章浏览阅读2.4k次。为什么需要js?我们需要执行函数,但是实现成本很高或很难甚至无法实现事件的时候,可以直接通过js命令调用页面上有些元素无点击事件,不可点击等,调用js直接实现效果即可还有种种原因导致,没达到我们想要的效果。使用js是一种途径(方法)1.添加 webdriver依赖from selenium import webdriver2.编写js命令,存储为字符串形式...

数据结构--平衡二叉树和红黑树-程序员宅基地

文章浏览阅读388次。来了来了,今天就要讲讲听起来就很厉害的红黑树。说道红黑树,不得不先弄明白平衡二叉树的概念,我在上一篇博客中简单提到了平衡二叉树的概念。平衡二叉树平衡二叉树又叫AVL树。在平衡二叉树中,任意节点对应的两棵子树的高度差最大为1,因此它也被称为高度平衡树。每个节点除了关键字之外,它还会记录一个平衡因子,这个平衡因子=左子树的高度-右子树的高度。因此平衡因子取值只能为0,+1或-1。拿一张维基百科...

Java入门必备知识-程序员宅基地

文章浏览阅读1.8w次,点赞108次,收藏496次。目录一、前言二、HelloWord案例编写三、基础语法1.快速生成语句:2.注释:3.标识符标识符:标识符的组成:标识符的组成规则:4.标识符命名约定:小驼峰命名法: 命名规则:5.变量变量的注意事项:6.常量常量的概述:常量的种类:7.关键字关键字的描述:关键字的特点:8.java数据类型9.类型转化自动类型转化:自动类型转化的原因:强制类型转化:一、前言前面已经进行..._java入门

随便推点

Hibernate 缓存策略-程序员宅基地

文章浏览阅读94次。Hibernate 缓存策略一级缓存又被称为” Session 的缓存”。Session 缓存是内置的,不能被卸载,是事务范围的缓存,在一级缓存中,持久化类的每个实例都具有唯一的 OID。一级缓存的生命周期与 Session 一致。一级缓存查询保存对象到数据库时,也会将此对象存储到一级缓存中,后续再根据 id 查询该对象时,也会从一级缓存中查询,不会再向数据库发送 select 语句查询。第一次查询时,首先会从一级缓存中查询,若不存在则向 MySQL 数据库发送 SQL 语句,查询到结果并

华为鸿蒙HarmonyOS,HDC2020,华为鸿蒙HarmonyOS会带来哪些不一样的体验?-程序员宅基地

文章浏览阅读678次。说个正事,下个月 HDC.2020 就要来了。算起来,距离华为去年发布 HarmonyOS,已经过去了整整一年。不出意外的话,这次它将迎来一次新的升级。这个在特殊时期诞生的 HarmonyOS,因为某些特殊的因素,一度被很多用户片面地理解成专为智能手机设计的操作系统。至今机哥的后台里,仍然有人在问诸如“Mate40 会不会搭载 HarmonyOS”的问题。其实这种期待并不难理解,但华为想要的并不仅..._华为升级鸿蒙打游戏能开陀螺仪吗?

滤波器设计(二)模拟到数字_qt实现低通滤波器-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏38次。系列文章目录【音频处理】如何“认识”一个滤波器?【音频处理】IIR滤波器设计(一)【音频处理】IIR滤波器设计(二)文章目录系列文章目录前言一、模拟信号滤波器到数字信号滤波器的转换1. S域与Z域2. 模拟信号滤波器3. 双线性变换二前言在 【音频处理】IIR滤波器设计(一) 中,我们介绍了多种滤波器,并给出它们的差分方程、变换方程等。针对每种滤波器,我们都举了一个具体的实例来说明。同时,还讨论了零点和极点对频响的影响,已经如何用平面几何的方法计算_qt实现低通滤波器

poj3268 Silver Cow Party(最短路变形)_poj3268 数据-程序员宅基地

文章浏览阅读612次。Silver Cow PartyTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 13243 Accepted: 5959DescriptionOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently_poj3268 数据

harmonyos2.0开发者beta,华为鸿蒙 HarmonyOS 2.0 手机开发者 Beta 活动(广州站)报名开启...-程序员宅基地

文章浏览阅读100次。IT之家 3 月 11 日消息华为在去年 12 月 16 日举行 HarmonyOS 2.0 手机开发者 Beta 活动。现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本。同时,HarmonyOS 2.0 手机开发者 Beta 开启公测。华为表示,HarmonyOS 是面向万物互联时代的全场景分布式操作系统,华为希望和合作伙伴、开发者一起打造面向万物互联时代的超级终端体验。..._如何让手机参与华为beta软件活动

cc1: all warnings being treated as errors 解决办法_make 如何不要 all warnings being treated as errors-程序员宅基地

文章浏览阅读6.9k次。1、只需要运行:$ CXXFLAGS="-Wall"$ ./waf configure($不属于命令) 或者 2、在 makefile 中找到 -Werror 将其注释掉或者删除_make 如何不要 all warnings being treated as errors