安全测试web常规安全漏洞问题介绍和防范说明,如:sql注入攻击xss跨站点脚本攻击js注入注释与异常信息泄露跨站点请求伪造路径遍历与强制浏览越权访问类常见网络安全问题是什么?(代码片段)

Benjamincsdn Benjamincsdn     2023-03-01     503

关键词:

文章目录

前言

SQL: SQL注入攻击

XSS: 跨站点脚本攻击

CSRF: 跨站点请求伪造

CSC: 注释与异常信息泄露

FB: 路径遍历与强制浏览

BAC: 越权访问

结束语


前言

    Web应用防火墙(Web Application Firewall, WAF),通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定。

列举常见的攻击和安全漏洞列表

攻击(漏洞)名称攻击(漏洞)说明
跨站点脚本攻击黑客通过篡改网页,注入恶意JS 脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
SQL注入攻击在 HTTP 请求中注入恶意 SQL 命令(drop table users;),服务器用请求参数构造数据库 SQL 命令时,恶意 SQL 被一起构造,并在数据库中执行。
跨站点请求伪造攻击者通过伪造合法用户身份,进行非法操作,如转账交易、发表评论等。
注释与异常信息泄露在返回给用户的响应中,HTML注释或者500异常内容包含系统敏感信息,使非法分子利用这些信息发现系统的脆弱之处,进而进行攻击。
越权访问

水平越权、垂直越权

一个用户A一般只能够对自己本身的信息进行增删改查,然而由于后台开发人员的疏忽,没有在信息进行增删改查时候进行用户判断,从而导致用户A可以对其他用户进行增删改查等等操作。

列举场景的攻击类型

类型名称
SQLSQL注入攻击
XSS跨站点脚本攻击,JS注入
CSC注释与异常信息泄露
CSRF跨站点请求伪造
FB路径遍历与强制浏览
BAC越权访问

攻击流程和常见应用防火墙处理流程


SQL: SQL注入攻击

SQL 注入攻击的原理如下

攻击者在 HTTP 请求中注入恶意 SQL 命令(drop table users;),服务器用请求参数构造数据库 SQL 命令时,恶意 SQL 被一起构造,并在数据库中执行。  

如果在Web页面中有个输入框,要求用户输入姓名,普通用户输入一个普通的姓名Benjamin,那么最后提交的HTTP请求如下:

http://www.test.com?username=benjamin

正常服务器在处理计算后,向数据库提交的SQL查询命令如下:

Select id from users where username = "Benjamin";

但是恶意攻击者可能会提交这样的HTTP请求:

http://www.test.com?username=benjamin';drop table users;--

即输入的username是:

Benjamin';drop table users;--

SQL注入服务器处理后,最终生成的SQL语句如下:

Select id from users where username = "Benjamin";drop table users;--";

事实上,这是两条SQL,一条select查询SQL,一条drop table删除表SQL。数据库在执行完查询后,就将users表删除了,系统崩溃了。

PS:常用越权查询使用关键字

 ' or 1 = 1

从请求中匹配到SQL注入攻击内容后,可以设置跳转错误页面,也可以选择消毒replace替换关键字。

SQL注入关键字漏洞定义,防范替换字符串表

SQL注入攻击字符串replace替换字符串
= = 
> > 
<&nbsp;<&nbsp;
@&nbsp;@&nbsp;
'&nbsp;'&nbsp;
"&nbsp;"&nbsp;
(&nbsp;(&nbsp;
)

&nbsp;)&nbsp;


XSS: 跨站点脚本攻击

        简称:JS注入攻击,特殊符号注入,代码注入等

演示

攻击示例(未防范):

    1、输入攻击字符串并提交

    2、当其他用户或管理员登陆后台查看提交内容时,管理提交弹窗提示

攻击演示代码示例:        

<script>alert(“Attack!”)</script> 

        XSS 攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意 JavaScript脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

        常见的 XSS 攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的,如图

        攻击者发布的微博中有一个含有恶意脚本的 URL(在实际应用中,该脚本在攻击者自己的服务器 www.test.cn上,URL 中包含脚本的链接),用户点击该 URL,脚本会自动关注攻击者的新浪微博 ID,发布含有恶意脚本 URL 的微博,攻击就被扩散了。

   另外一种 XSS 攻击是持久型 XSS 攻击,黑客提交含有恶意脚本的请求,保存在被攻击的 Web 站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的,如图

关键字漏洞定义,防范替换字符串表

XSS攻击字符replace替换字符
=&nbsp;=&nbsp;
:&nbsp;:&nbsp;
-&nbsp;-&nbsp;
(&nbsp;(&nbsp;
)&nbsp;)&nbsp;
<&nbsp;<&nbsp;
>&nbsp;>&nbsp;
!&nbsp;!&nbsp;
[&nbsp;[&nbsp;
]&nbsp;]&nbsp;
.&nbsp;.&nbsp;
@&nbsp;@&nbsp;

        在XSS攻击字符前后加上“&nbsp;”字符串,使得攻击脚本无法运行,同时在浏览器显示的时候不会影响显示内容。
 


CSRF: 跨站点请求伪造

        CSRF(Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等,如图

 CSRF 的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。其核心是利用了浏览器 Cookie 或服务器 Session 策略,盗取用户身份。 

防攻击策略是过滤器自动在所有响应页面的表单form中添加一个隐藏字段(Django中 csrf_token),合法用户在提交请求的时候,会将这个隐藏字段发送到服务器,防火墙检查隐藏字段值是否正确,来确定是否为CSRF攻击。恶意用户的请求是自己伪造的,无法构造这个隐藏字段,就会被防火墙拦截。

Python Django关键示例讲解

后端Django框架settings.py配置部分

MIDDLEWARE = [
    'django.middleware.csrf.CsrfViewMiddleware',

]

用户前端web页面隐藏字段示例

 前端对用户隐藏,每次刷新网页会获取新的完全不同的token,已便验证请求连续非偶然构造,每次提交请求优先校验token是否与预期一致。当然改字段除了隐藏到前端,也可以设置再cookies中前端获取再提交。

cookies中示例

csrf_token 验证不通过示例(已开启debug)


CSC: 注释与异常信息泄露

        为调试程序方便或其他不恰当的原因,有时程序开发人员会在 前端页面程序中使用 HTML 注释语法进行程序注释,这些 HTML 注释就会显示在客户端浏览器, 给黑客造成攻击便利。 

许多 Web 服务器默认是打开异常信息输出的,即服务器端未处理的异常堆栈信息会直接输出到客户端浏览器,这种方式虽然对程序调试和错误报告有好处,但同时也给黑客造成可乘之机。通过故意制造非法输入,使系统运行时出错,获得异常信息,从而寻找系统漏洞进行攻击。 

匹配HTML注释的正则表达式如下:

 “&lt;!--(.|&#x000A;|&#x000D;)*--&gt;”

如果匹配到HTML注释,就用空字符串replace该注释。

对于异常信息泄露检查响应状态码,如果为400,500系列错误则会进一步匹配响应体内容,是否存在错误堆栈信息。

Python Django关键示例讲解

后端Django框架中settings.py配置部分

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

前端页面异常 暴露请求路径

前端数据异常 暴露SQL配置信息 


FB: 路径遍历与强制浏览

        一些网站的业务需求,可能提供文件查看或下载功能,如果对用户查看或下载的文件不做限制,那么用户就能够查看和下载任意文件,可以使源代码文件、敏感文件等。

路径遍历漏洞成因:

如果应用程序使用用户可控制的数据,以危险的方式访问位于引用程序服务器或其后端文件系统中的文件和目录,就会出现路径遍历漏洞。

详细描述

目录遍历是通过操作URL强行访问web目录以外的文件,目录和命令,攻击者可以在目标机器的任何位置访问文件,执行命令。

    最基本的目录遍历攻击技术是在URL中使用"../"序列,改变访问资源的路径,访问到web目录以外的文件。

例如:

http://www.test.com/../../../../some/file
http://www.test.com/..%255c..%255c/some/file

正常请求为:

http://www.test.com/test.cgi?look=intex.html

如果存在目录遍历漏洞,攻击者可以访问

http://www.test.com/test.cgi?look=test.cgi

解决办法

过滤请求数据中"../"字符序列及其各种变形。

验证用户请求中提交的需要访问的文件是否在限定的范围内

更佳方案?自行查阅第三方文档或提供的服务


BAC: 越权访问

        越权访问(Broken Access Control,BAC)是web中一种常见的漏洞,且越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的,所以越权漏洞很难通过扫描工具发现,往往需要通过手动进行测试,而且也是渗透测试过程中必不可少的一步

        越权漏洞是在测试过程中遇到比较多的漏洞,简易理解越权漏洞,一个用户A一般只能够对自己本身的信息进行增删改查,然而由于后台开发人员的疏忽,没有在信息进行增删改查时候进行用户判断,从而导致用户A可以对其他用户进行增删改查等等操作。

        越权漏洞分为:水平越权、垂直越权

水平越权

        其称作访问控制攻击漏洞.Web应用程序在接收到用户的请求时,我们在增删改查某条数据时候,没有判断数据所对应的用户,或者在判断数据的用户时是通过从用户表单参数中获取userid来实现的,可以修改userid来实现水平越权。

        一般在增删改查,登陆,更新的地方寻找越权漏洞。

        漏洞修复建议:如果使用token来作为后续身份识别的令牌的话,应该是在提交密码或者验证码的数据包中而且验证通过后返回token,否则可以利用token直接进行越权访问。另外可通过鉴权表每次校验请求用户是否有相应权限实现拦截。

垂直越权

        垂直越权又叫做权限提升攻击,具体原因就是web应用没有做用户权限控制,或者只是在菜单上做了权限控制,导致恶意用户只要猜测到其他管理页面的URL,就可以访问或者控制其他角色拥有的数据或者页面,达到权限提升的目的。漏洞为绕过登陆验证直接访问后台。


结束语

没有绝对安全的系统

安全测试服务器安全渗透测试常规服务器安全漏洞高危端口暴露弱口令密码暴力破解服务器提权mysql数据库提权等浅谈《社会工程学》实战案例(代码片段)

文章目录一、前言二、服务器安全高危端口2.1端口号(Portnumber)2.2常见端口后及其用途表2.3端口号扫描工具介绍2.4端口号端口说明攻击技巧2.5安全警示三、服务器安全弱密码口令3.1弱口令(WeakPassword)3.2弱口令危害3.3弱口... 查看详情

web安全测试之跨站请求伪造(csrf)篇

跨站请求伪造(即CSRF)被Web安全界称为诸多漏洞中“沉睡的巨人”,其威胁程度由此“美誉”便可见一斑。本文将简单介绍该漏洞,并详细说明造成这种漏洞的原因所在,以及针对该漏洞的黑盒测试与灰盒子测试具... 查看详情

web3中的安全问题和防范

...全性并非那么绝对。我们现在使用的web2网络也存在很多安全漏洞,但实际上,大多数人在使用互联网时都不会被黑客等攻击。这是因为在很多时候࿰ 查看详情

html5技术分享浅谈前端安全以及如何防范

...防范?一、XSS攻击XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(sam... 查看详情

[安全设置]防范网页挂马攻击从对web站点进行安全评估开始红盟安全(代码片段)

...是已经实施的WEB站点安全解决方案只能够应对已经出现的安全漏洞和威胁。而攻击者总是在通过各种手段来分析网站中可能会存在的弱点或漏洞,以便能够成功绕过网站当前的安全防范措施来实施挂马攻击。针对这样的一种W... 查看详情

[安全设置]防范网页挂马攻击从对web站点进行安全评估开始红盟安全(代码片段)

...是已经实施的WEB站点安全解决方案只能够应对已经出现的安全漏洞和威胁。而攻击者总是在通过各种手段来分析网站中可能会存在的弱点或漏洞,以便能够成功绕过网站当前的安全防范措施来实施挂马攻击。针对这样的一种W... 查看详情

跨站请求伪造攻击的基本原理与防范

...并简单的说明5种方法各自的优劣之处。为Web应用系统的安全防范和设计提供参考。  1跨站请求伪造简介  跨站请求伪造(CrossSiteRequestForgery,简称CSRF),也被称为“one 查看详情

app安全测试技巧和思路

APP安全0x00app测试0x01测试思路0x02测试技巧工具手工测试0x03报告0x00app测试平时在项目上难免会遇到app安全测试的项目,APP测试=客户端测试+web渗透测试。web渗透测试就是常规测试没什么好说的,今天分享了客户端测试的一些方法... 查看详情

冲击红队第一天-web安全介绍与基础入门

...严禁违法操作!!!今天更新的是:冲击红队第一天-Web安全介绍与基础入门微信公众号回复:【学习笔记】,即可获取本文全部涉及到的工具。创建时间:2021年7月31日软件:MindMasterPro、语雀冲击红队第一天-Web安全介绍与基础... 查看详情

有哪些好用的渗透测试演练系统

...脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。2、mutillidae是一个免费,开源的Web应用程序,提供专门被允许的安全测试和入侵的Web应用程序。它是由Adrian“Irongeek”Crenshaw和Jeremy“webpwnized”Druin。开发的一款... 查看详情

安全测试指南

测试方法1、Web应用安全测试1.1、Web应用安全测试概述Web应用安全测试只侧重于评估Web应用的安全性。这个过程包括主动分析应用程序的所有弱点、技术缺陷和漏洞。任何被发现的安全问题连同影响评估、缓解建议或者技术方案... 查看详情

『软件测试6』bug一两是小事,但安全漏洞是大事!(代码片段)

...4、尽可能测试源代码5、测试结果文档化三、🔦常见安全漏洞1、SQL注入(1)定义(2)案例(3)如何防范SQL注入2、XSS跨站脚本攻击(1)XSS命名(2)定义(3)xss攻击过程(4&#... 查看详情

app安全测试技巧和思路

APP安全0x00app测试0x01测试思路0x02测试技巧工具手工测试0x03报告0x00app测试平时在项目上难免会遇到app安全测试的项目,APP测试=客户端测试+web渗透测试。web渗透测试就是常规测试没什么好说的,今天分享了客户端测试的一些方法... 查看详情

常见的web安全问题总结(代码片段)

...为缩写和css重叠,所以能叫XSS,跨脚本攻击是指通过存在安全漏洞的web网站注册用户的浏览器内非法的非本站点HTML标签或javascript进行一种攻击。    跨站脚本攻击有可能造成以下影响      1.利用虚假输入表单骗... 查看详情

学些渗透测试,最快能多少时间?常规,别说看个人

想必兄台是想学渗透测试,全球网络空间安全事态不断升级,国家和企业对网络安全越来越重视,网络安全领域前景好。来看看成都渗透测试工程师的薪资:这么说吧,学多久与学的内容有关系,给你一张知了堂渗透测试课程内... 查看详情

web服务器点击劫持(clickjacking)的安全防范(代码片段)

一.介绍ClickJacking即点击劫持,是一种将恶意代码经过处理使其变成透明、不可见的iframe,并将其覆盖在一个网页上,然后诱使用户在该网页上进行点击操作。通过改变iframe的在页面的位置,可以诱使用户正好点击... 查看详情

9-2web安全常考点(代码片段)

一、考点聚焦常见的web安全问题,原理和防范措施。安全意识1.SQL注入2.XSS(跨站脚本攻击,Cross-SiteScripting)3.CSRF(跨站请求伪造,Cross-Siterequestforgery)二、什么是SQL注入?SQL注入与防范1.通过构造特殊的输入参数传入we... 查看详情

渗透测试啥意思

...一样,我给你介绍一个android的渗透测试步骤吧:1、组件安全检测。对Activity安全、BroadcastReceiver安全、Service安全、ContentProvider安全、Intent安全和WebView的规范使用检测分析,发现因为程序中不规范使用导致的组件漏洞。2、代码安... 查看详情