XSS漏洞—XSS平台搭建与打cookie

一、跨站脚本攻击漏洞接收平台

推荐两个:

1)xsser : XSS平台 - (支持http/https)XSS Platform

2)蓝莲花 :GitHub - firesunCN/BlueLotus_XSSReceiver

xsser:

BlueLotus:

二、跨站脚本攻击漏洞绕过及防御

跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,攻击者可以通过这种漏洞在用户的浏览器中执行恶意脚本。这种攻击可以导致用户信息泄露、会话劫持、恶意软件下载等安全问题。以下是一些关于XSS攻击漏洞的绕过技巧和防御策略:

1. **输入验证与净化**:对所有不受信任的输入进行严格检查和净化,去除或转义特殊字符,如尖括号、双引号、斜线等。

  • 假设用户输入用于搜索查询,后端代码可能如下所示:
user_input = "<script>alert('xss');</script>"
sanitized_input = sanitize_input(user_input)
# 假设sanitize_input是一个函数,用于转义或删除恶意脚本

2. **输出编码**:在向浏览器输出数据时,确保正确使用HTML实体编码、JavaScript字符串编码或CSS编码,以防止恶意脚本的执行。

  • 当向用户显示数据时,确保对输出进行HTML编码:
echo htmlspecialchars($user_data, ENT_QUOTES, 'UTF-8');

3. **使用HTTPOnly Cookie**:设置session cookie为HTTPOnly属性,这样即使存在XSS漏洞,攻击者也无法通过JavaScript访问这些cookie,从而保护用户的会话安全。

  • 在设置cookie时,添加HTTPOnly标志:
Set-Cookie: sessionid=abc123; HttpOnly

4. **实施Content Security Policy (CSP)**:通过CSP策略限制网页加载的资源来源,避免引入恶意脚本。

  • 在HTTP响应头中设置CSP
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com;

5. **前端安全库**:利用诸如 `DOMPurify` 这样的库对DOM操作进行安全过滤,防止基于DOM的XSS攻击。

  • 使用DOMPurify库对用户输入进行清理
var clean = DOMPurify.sanitize(userInput);
document.getElementById('result').innerHTML = clean;

6. **避免内联事件**:避免在HTML中使用内联JavaScript事件处理器,如 `onLoad="onload('{{data}}')"` 或 `onClick="go('{{action}}')"`,因为这些容易受到XSS攻击。

7. **避免拼接HTML**:前端采用拼接HTML的方法比较危险,如果可能,使用 `createElement`、`setAttribute` 等方法实现,或者采用成熟的渲染框架,如Vue或React。

8. **增加攻击难度**:使用上述的通用手段,降低被攻击的后果,例如通过WAF(Web Application Firewall)进行防御。

9. **持续更新和维护**:使用最新版本的Web开发框架和库,定期更新和打补丁,以修复已知的安全漏洞。

10. **安全审计与监控**:定期进行安全审计和监控,以便及时发现和修复安全漏洞。

XSS绕过的例子:
  • 绕过输入验证:
  • 攻击者可能会尝试使用不同的字符编码或分隔符来绕过简单的输入验证。例如,如果输入验证只检查 < 和 >,攻击者可能使用HTML实体如 &lt; 和 &gt; 来代替。

  • 绕过输出编码:
  • 如果防御措施只对某些字符进行编码,攻击者可能会利用未被编码的字符构造恶意脚本。例如,如果只对双引号进行编码,攻击者可以使用单引号来闭合JavaScript代码:

    ';alert('xss');//'
  • 绕过HTTPOnly Cookie:
  • 尽管HTTPOnly Cookie可以防止JavaScript访问,但攻击者可能会利用其他方式如URL参数或POST数据来传递会话ID,然后通过其他途径(如CSRF攻击)利用这些信息。

  • 绕过CSP:
  • 攻击者可能会尝试找到CSP策略的漏洞,例如,如果CSP策略允许加载某些内联脚本,攻击者可能会尝试注入恶意代码。

  • 利用前端框架的漏洞:
  • 如果前端框架没有正确地清理用户输入,攻击者可能会利用框架的漏洞来执行XSS攻击。例如,在Vue中,如果没有正确使用v-html指令,攻击者可能会注入HTML和JavaScript代码。

XSS绕过实例——弹窗动作

例如:有一个网页需要用户输入后回显用户的输入,但是没有做好XSS防范

01)< >被过滤的情况下

      假如在特殊标签下的时候,可以构造一些事件触发

"autofocus onfocus=alert(1)

02)alert被过滤的情况下

      编码;另外prompt和confirm也可以弹窗

<a href=data:text/html;base64,PHNjcmlwdD5hbGVydCgzKTwvc2NyaXB0Pg==>
//上面这条在Firefox可以运行,在chrome不行
<svg/onload=prompt(1)/>
<a href=j&#x61;v&#97script&#x3A;&#97lert(13)>M

03)on事件被过滤的情况下

<form><button formaction=javascript&colon;alert(1)>M
<a href="javascript:alert(document.location);">XSS</a>
<b style="width:expression(alert(document.location));">XSS</b>  //IE6以下不可以
<math><a Xlink:href=javascript:alert(1)>1</a></math>  //Firefox可以,chrome不可以

      可以执行js的属性:

formaction action href xlink:href src content data

04)其他情况

XSS防御实例

1.阻止恶意代码注入

2.阻止恶意操作执行

不管是反射型还是存储型xss,都能通过服务端过滤进行防御:

  • 黑名单:过滤特殊符号及字符,如< , > , % , # , / , " , ' , ( , ) , script , svg , object , on事件等
  • 白名单:只允许特定类型或符号

根据输入的数据特征限制使用的类型,如年龄限制为数字类型:输入类型为字符型限制为仅可使用大小写的26个字母及数字及-和_;等


​​​​​​​

  • 编码及转义:输出在标签或属性中进行HTML编码;输出在script标签或事件中进行JavaScript编码;输出在URL中进行URL编码
  • cookie中设置httponly:setcookie将httponly选项设置为true,防范cookie劫持
  • 确保执行脚本来源可信:开发者明确的告诉客户端,哪些外部资源可以加载执行(CSP策略)
  • 不使用有缺陷的第三方库
  • 41
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于爬虫的XSS漏洞检测工具设计与实现是指利用爬虫技术来自动化地扫描和检测网站中的XSS漏洞。以下是一个基于爬虫的XSS漏洞检测工具的设计与实现的简要介绍: 1. 设计思路与流程: - 定义目标:确定要检测的目标网站。 - 爬取网页:使用爬虫技术,自动爬取目标网站上的所有页面。 - 分析页面:对每个爬取到的页面进行解析和分析,提取潜在的XSS漏洞点。 - 构造攻击:为潜在的XSS漏洞点构造恶意攻击代码,注入到页面中。 - 漏洞验证:访问注入后的页面,检测是否触发XSS漏洞。 - 漏洞报告:生成详细的漏洞报告,包括漏洞点的位置、类型和可能的影响等信息。 2. 工具的关键功能: - 爬虫模块:实现自动爬取目标网站上的所有页面,并保存在本地。 - 解析模块:对抓取到的页面进行解析,提取出其中的HTML、JavaScript和DOM元素等关键信息。 - 漏洞检测模块:根据XSS漏洞的特征和规则,检测页面中是否存在潜在的XSS漏洞点。 - 恶意代码注入模块:为潜在的XSS漏洞点构造恶意攻击代码,并注入到页面中进行漏洞验证。 - 漏洞报告模块:生成详细的漏洞报告,包括漏洞点的位置、类型和可能的影响等信息。 3. 实现技术和工具: - 使用Python编程语言来实现整个工具,利用Python的爬虫库(如BeautifulSoup、Scrapy等)进行网页爬取和页面解析。 - 利用正则表达式来提取和匹配页面中的潜在XSS漏洞点。 - 使用JavaScript来构造恶意攻击代码,并注入到页面中进行漏洞验证。 - 生成漏洞报告可以采用HTML格式,并使用CSS样式进行美化展示。 总之,基于爬虫的XSS漏洞检测工具通过自动化地爬取、解析、检测和验证目标网站上的页面,能够帮助网站管理员及时发现并修复XSS漏洞,提高网站的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值