目标URL存在跨站漏洞

URL存在跨站漏洞

    • 🚖漏洞复现
    • 🚖漏洞描述
    • 🚖解决方法
    • 🚖对于开发
    • 🚖对于安全操作
    • 🚖对于质量保证

🚖漏洞复现

记录学习中遇到的问题

该页面存在反射型XSS

在这里插入图片描述

payload

city=null&account=null&password=null&dataValue="><script>alert`6538`</script>

验证

在这里插入图片描述
在这里插入图片描述

🚖漏洞描述

跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息或在终端用户系统上执行恶意代码。

成功的跨站脚本攻击所带来的主要问题包括:

帐号劫持 - 攻击者可以在会话cookie过期之前劫持用户的会话,并以访问ULR用户的权限执行操作,如发布数据库查询并查看结果。

恶意脚本执行 - 用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript、ActiveX、HTML甚至Flash内容。

蠕虫传播 -通过Ajax应用,跨站脚本可以以类似于病毒的方式传播。跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本轻易的重新注入同一主机,而所有这些都无需手动刷新页面。因此,跨站脚本可以使用复杂的HTTP方式发送多个请求,并以用户不可视的方式自我传播。

信息窃取 - 攻击者可以通过重新定向和伪造站点将用户连接到攻击者所选择的恶意服务器并获得用户所输入的任何信息。

拒绝服务 - 通常攻击者通过在包含有跨站脚本漏洞的站点上使用畸形的显示请求,就可以导致主机站点反复的自我查询,出现拒绝服务的情况。

浏览器重新定向 -在某些使用帧的站点上,用户可能在实际上已经被重新定向到恶意站点的情况下误导为仍处在原始站点上,因为浏览权地址栏中的URL仍保持不变。这是由于没有重新定向整个页面,而只是执行JavaScript的帧。

控制用户设置 - 攻击者可以恶意更改用户设置。

本漏洞属于Web应用安全常见漏洞。

🚖解决方法

推荐措施包括实施安全编程技术确保正确过滤用户提供的数据,并编码所有用户提供的数据以防以可执行的格式向终端用户发送注入的脚本。

🚖对于开发

可通过仔细验证所有输入和正确编码所有输出来防范跨站脚本攻击。可使用标准的ASP.NET验证控件或直接在代码中实施验证,要尽可能使用严格的模版。

输出编码要确保在将内容发送给客户端之前对任何可脚本化的内容都进行了正确的HTML编码。可通过HttpUtility.HtmlEncode函数实现,如以下Label控件示例所示:

Label2.Text = HttpUtility.HtmlEncode(input)

要考虑用户输入通过应用可能用到的所有路径。例如,如果数据是由用户输入的,存储在数据库中,然后再重新显示,就必须要确保在每次检索的时候都能正确编码。如果必须允许自由格式文本输入(如在消息板中),而又希望允许使用一些HTML格式,则可以通过仅明确允许很小的安全标签列表来安全的处理这种情况,如下所示:

C#示例:

StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(htmlInputTxt.Text));
sb.Replace("&lt;b&gt;", "<b>");
sb.Replace("&lt;/b&gt;", "</b>");
sb.Replace("&lt;i&gt;", "<i>");
sb.Replace("&lt;/i&gt;", "</i>");
Response.Write(sb.ToString());

VB.NET示例:

Dim sb As StringBuilder = New StringBuilder( _
HttpUtility.HtmlEncode(input));
sb.Replace("&lt;b&gt;", "<b>");
sb.Replace("&lt;/b&gt;", "</b>");
sb.Replace("&lt;i&gt;", "<i>");
sb.Replace("&lt;/i&gt;", "</i>");
Response.Write(sb.ToString());

Java示例:

public static String HTMLEncode(String aText){final StringBuilder result = new StringBuilder();final StringCharacterIterator iterator = new StringCharacterIterator(aText);char character =  iterator.current();while (character != CharacterIterator.DONE ){if (character == '<') {result.append("&lt;");}else if (character == '>') {result.append("&gt;");}else if (character == '&') {result.append("&amp;");}else if (character == '\"') {result.append("&quot;");}else {//the char is not a special one//add it to the result as isresult.append(character);}character = iterator.next();}return result.toString();}

以下建议可帮助构建能够抵御跨站脚本攻击的web应用。

定义允许的内容。确保web应用对所有输入参数(cookies、头、查询字符串、表单、隐藏字段等)验证严格定义的预期结果。

检查POST和GET请求的响应,确保返回内容是预期的且有效。

通过编码用户提供的数据从用户输入中删除冲突字符、括号、单双引号。这可以防范以可执行的方式向终端用户发送注入的脚本。

在可能的时候将所有客户端提供的数据仅限于字母数字的数据。使用这种过滤方案时,如果用户输入了<script>alert( 'aaa') </script>,就会被减少为scriptalert( 'aaa')script。如果必须使用非字母数字字符,在HTTP响应中使用之前将其编码为HTML实体,这样就无法将其用于修改HTML文档的结构。

使用双重用户认证机制而不是单重认证。

在修改或使用脚本之前确认其来源。

在自己的代码中使用时不要明确的信任任何来自他人的脚本,无论是从web下载还是来自熟人。

大多数服务器端脚本语言都提供了内嵌方式将输入变量的值转换为正确的不可解释HTML。应使用这种方式在将输入显示给客户端之前过滤所有输入。

PHP: string htmlspecialchars (string string [, int quote_style])

ASP / ASP.NET: Server.HTMLEncode (strHTML String)

🚖对于安全操作

服务器端编码指的是首先通过编码函数发送所有的动态内容,使用所选择字符集中的代码替换Scripting标签,这可以帮助防范跨站脚本攻击。服务器端编码的缺点是可能耗费资源,对一些web服务器的性能产生负面影响。

如果必须允许站点用户使用HTML标签,如允许用户使用的格式化标签的公告栏,则应限制可使用的标签。创建可接受标签的列表,如粗体字、斜体字或下划线,并仅允许使用这些,拒绝任何其他标签。以下是一些可帮助检测跨站脚本的正则表达式。

简单跨站脚本攻击的正则表达式:

/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix

应如下将上述正则表达式添加到新的Snort规则:

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NIICross-Site Scripting attempt"; flow:to_server,established;pcre:"/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i";classtype:Web-application-attack; sid:9000; rev:5;)

跨站脚本攻击的偏执行正则表达式:

/((\%3C)|<)[^\n]+((\%3E)|>)/I

这条特征仅仅查找起始的HTML标签及其对等的16进制,之后的一个或多个字符为非换行符,再之后为结尾标签或其对等的16进制。这可能导致一些误报,具体取决于Web应用和Web服务器的架构。但这种方式可以确保捕获任何攻击,甚至远程类似的跨站脚本攻击。对于公众方面,可以加强教育程序,帮助用户防范可用于帐号劫持和其他形式身份窃取的在线欺诈,如网络钓鱼。

🚖对于质量保证

修复跨站脚本漏洞最终要求基于代码的修复。“对于开发”和“对于安全操作”部分所述步骤可为开发人员提供修复这些问题所需的信息。以下步骤概括了如何对应用程序手动测试跨站脚本。

1️⃣ 在浏览器中打开任意Web站点,查找可接受用户输入的位置,如搜索表单或某些登录页面。在搜索框中输入test并发送给Web服务器。

2️⃣寻找返回类似于Your search for 'test' did not find any items或Invalid login test页面的WEB服务器。如果结果页面中出现了test,请继续。

3️⃣如果要测试跨站脚本,在之前使用的同一搜索或登录框中输入<script>alert('hello')</script>字符串并发送给Web服务器。

4️⃣如果服务器所响应的弹出框显示hello,则站点受跨站脚本影响。

5️⃣ 即使步骤4失败,站点没有返回这条信息,仍可能存在风险。在浏览器中点击“查看源码”选项,查看Web页面的实际HTML代码。现在查找发送给服务器的

<script>alert('hello')</script>

文本,则Web服务器受跨站脚本的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620570.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

我的第一次真实对国外某购物平台web漏洞挖掘

&#xff08;真实世界&#xff09;我的第一次真实对国外某购物平台web漏洞挖掘 开放重定向 - 低危XSS - 低危 这两组合起来就完全不一样一点的&#xff0c;个人觉得比原本高一些 危害&#xff1a;窃取用户敏感数据、用户cookie、钓鱼操作 等… 前言 这是我第一次&#xff…

对某代刷网站的渗透测试

0x01 今天闲来无事&#xff0c;在网上冲浪看帖&#xff0c;看到有个人发了一个代刷网站链接&#xff0c;出于好奇就点进去看了下&#xff0c;一看&#xff0c;好家伙&#xff0c;业务还挺多啊。可惜都要钱&#xff0c;咱可没钱&#xff01; 0x02 然后便想看看有没有办法白嫖&…

基于JavaFx的ThinkPHP漏洞扫描工具---RexHa(Aazhen)的一些说明

文章目录 吹水环节一、工具的功能&#xff08;新旧版本对比&#xff09;二、工具的使用与操作2.1 工具新旧版展示2.2 漏洞单个扫描验证功能展示2.2.1 Thinkphp-2.x rce--&#x1f44c;&#x1f3fb;2.2.2 ThinkPHP-5.0.23-RCE--&#x1f44c;&#x1f3fb;2.2.3 ThinkPHP5.0.x-…

渗透测试中真实IP

发现了一篇两年前的好文章&#xff0c;转载给大家看看&#xff0c;方便自己以后查阅。 CDN简介 CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节&#xff0c;使内容传输的更快、更…

常见的安全测试漏洞

一、SQL注入攻击 SQL 注入攻击主要是由于程序员在开发过程中没有对客户端所传输到服务器端的参数进行严格的安全检查&#xff0c;同时 SQL 语句的执行引用了该参数&#xff0c;并且 SQL 语句采用字符串拼接的方式执行时&#xff0c;攻击者将可能在参数中插入恶意的 SQL 查询语…

检测到目标URL存在http host头攻击漏洞,修复方案:在Web服务器防止Host头攻击

一、前言 漏洞描述&#xff1a;为了方便的获得网站域名&#xff0c;开发人员一般依赖于HTTP Host header。例如&#xff0c;在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的&#xff0c;如果应用程序没有对host header值进行处理&#xff0c;就有可能造成恶意代…

一次简单的渗透测试,快来测测P站有没有漏洞吧!

前言 下午闲来无事&#xff0c;拿自己站玩玩&#xff0c;也算是一次比较完备地漏洞挖掘。文末插入福利 信息搜集 在fofa上找到一个后台的站。 一个普通的后台&#xff0c;弱口令&#xff0c;sql注入没打进去。 从错误路由中得知框架是tp的 这个版本是存在RCE漏洞的 直接嗦…

Git企业开发控制理论和实操-从入门到深入(五)|标签管理

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

如何使用腾讯云服务器搭建网站?

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…

iOS swift5 扫描二维码

文章目录 1.生成二维码图片2.扫描二维码&#xff08;含上下扫描动画&#xff09;2.1 记得在info.plist中添加相机权限描述 1.生成二维码图片 import UIKit import CoreImagefunc generateQRCode(from string: String) -> UIImage? {let data string.data(using: String.En…

使用windeployqt和InstallShield打包发布Qt软件的流程

前言 Qt编译之后需要打包发布&#xff0c;并且发布给用户后需要增加一个安装软件&#xff0c;通过安装软件可以实现Qt软件的安装&#xff1b;用于安装软件的软件有很多&#xff0c;这里主要介绍InstallShield使用的流程&#xff1b; 使用windeployqt打包Qt编译后的程序 Qt程序…

【论文笔记】最近看的时空数据挖掘综述整理8.27

Deep Learning for Spatio-Temporal Data Mining: A Survey 被引用次数&#xff1a;392 [Submitted on 11 Jun 2019 (v1), last revised 24 Jun 2019 (this version, v2)] 主要内容&#xff1a; 该论文是一篇关于深度学习在时空数据挖掘中的应用的综述。论文首先介绍了时空数…

有了二建证,对工资有多大提升?华通教育双十二建造师课程优惠来袭!

一开始每个月多1500工资&#xff0c; 现在算&#xff0c;差不多一个月多4000工资。 给大家分享一下考证之后带来的收益。文中妹子&#xff0c;刚毕业1500多的实习工资&#xff0c;考证后4000。 二建呢&#xff0c;其实它的作用是让你有机会进入工程行业&#xff0c;算是一块敲…

亿华通冲刺港股:年营收超6亿 业绩受申龙客车和中植汽车拖累

雷递网 雷建平 1月31日报道 北京亿华通科技股份有限公司&#xff08;简称&#xff1a;“亿华通”&#xff09;日前递交招股书&#xff0c;准备在香港上市。 亿华通是2020年8月在科创板上市&#xff0c;发行价为76.65元&#xff0c;发行17,630,523股&#xff0c;募集资金13.5亿元…

哈焊华通深交所上市:市值43亿 机械总院集团为大股东

雷递网 雷建平 3月22日报道 焊所华通&#xff08;常州&#xff09;焊业股份有限公司&#xff08;简称&#xff1a;“哈焊华通”&#xff0c;证券代码&#xff1a;301137&#xff09;今日在深交所上市。 哈焊华通本次发行4545.34万股&#xff0c;发行价为15.37元&#xff0c;募资…

世纪华通2020年业绩持续领先:商业模式愈发成熟,优秀质地突出

撰稿 | 多客 来源 | 贝多财经 过去一年&#xff0c;"宅经济"效应持续发酵&#xff0c;不仅让游戏公司的营收大幅度提升&#xff0c;也让众多资本开始青睐一些优质游戏公司的标的。 根InvestGame透露&#xff0c;游戏业2021年第一季度的并购交易和投融资金额就已经超…

第二届828 B2B企业节启动,华为云携手上万伙伴共筑企业应用一站购平台

当前&#xff0c;数字技术与实体经济深度融合&#xff0c;为千行百业注入新动力、拓展新空间。数据显示&#xff0c;2022年中国数字经济规模超过50万亿&#xff0c;占GDP比重超过40%&#xff0c;继续保持在10%的高位增长速度&#xff0c;成为稳定经济增长的关键动力。 为加速企…

[杂谈]10年前的杂志文章-清凉简装,电脑减负非诚勿扰

《清凉简装 电脑减负非诚勿扰》-这是《电脑爱好者》2010年14期的封面文章&#xff0c;也是我在各个平台昵称的由来&#xff0c;当年那本杂志早就卖废纸了。知网找到了原文&#xff0c;重温一下&#xff0c;十年弹指一挥间&#xff0c;当年的顶配机型现在看个B站估计都够呛&…

周易卦爻解读笔记——井卦

第四十八卦井 水风井 坎上巽下 井卦由泰卦所变&#xff0c;泰卦六五与初九换位&#xff0c;象征建设民生。 地天泰 井卦是困卦的覆卦&#xff0c;序卦传【困乎上者必反下&#xff0c;故受之以井】 井卦是改革三部曲第一卦&#xff0c;后面的革、鼎也都是言谈改革。 井&…

STM32的时钟系统

今天&#xff0c;学习了STM32的时钟系统&#xff0c;如下为stm32的时钟树。