WEB XSS跨站漏洞(详细版)

 本人事先声明,这些知识只是为一些想从事网络安全工程师的小伙伴,提供体系化的学习思路。

 如果学习者学习后,进行非法行为,与本人无关。

告诫:对于一些兴趣学习者,低调学习,别瞎搞,容易喜提免费住宿大礼包。

当你凝视深渊时,深渊也默默凝视着你。

如果有错误的地方欢迎指正,作者在收到信息后会及时修正,并注明提出者,欢迎与作者共同学习。

工具名字给你们了,最好去下载看看。

目录

一、原理与危害影响

1、xss漏洞是什么?

2、xss漏洞产生原理?

3、xss漏洞危害影响?

4、运用条件

二、分类

反射型(一次性)

存储型(可重复性)

DOM型(一次性)

利用思路

三、操作

xss平台使用

xss工具使用

xss结合其他漏洞

四、绕过

代码过滤

Http only

了解原理

绕过思路:

waf拦截

了解拦截形式

绕过思路

五、修复

安全修复方案

六、补充内容

以下是一些常见的社会工程学攻击方式:

Cookies与Session

后台权限

Referer(来源)

字典


一、原理与危害影响

1、xss漏洞是什么?

跨站脚本攻击(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,允许攻击者向网页注入恶意脚本,然后在用户的浏览器上执行这些脚本。这种攻击可以导致窃取用户信息、会话劫持、网站内容篡改等安全问题。

2、xss漏洞产生原理?

一个可控制的变量,输入验证不足或不正确的网站代码设计,导致可以使用js脚本进行回显

理论化原理:

1.不正确的输入验证和过滤

2.插入恶意脚本

3.执行恶意脚本

3、xss漏洞危害影响?

窃取用户信息

会话劫持

网站内容篡改:

传播恶意链接

利用浏览器漏洞

4、运用条件

浏览器版本影响(不会阻止恶意脚本注入和执行)

存在XSS漏洞

能够注入恶意脚本(能够成功上传脚本)

用户触发脚本执行(一般选择用户经常使用的功能|网站,进行注入恶意脚本)

二、分类

反射型(一次性)

通过情景,构造对应的漏洞,在脚本被执行后, 脚本失效

存储型(可重复性)

在脚本上传到对方的数据库后,在用户触发这个脚本时,就会执行,下次触发时,还有执行;直到这个脚本被删除前,都是有效的。

DOM型(一次性)

脚本注入到网页前端源码中,进行调用后端的对应功能

基于事件的XSS

基于事件的XSS是一种特殊类型的DOM型XSS,攻击者利用触发特定事件(如点击、鼠标悬停等)时执行恶意脚本,以达到攻击目的。

利用思路

对于订单、留言板、游戏外挂平台、博彩平台、提交反馈邮箱等;可以再输入的信息中加入脚本(这个注入脚本点可以基于文件上传的思路),当对方查看订单的时候,使脚本执行,将对应的操作信息返回攻击者。

小思路:进行抓包,进行添加脚本。

获取cookies(一般是管理员)数据,进行身份伪装;进行攻击。

三、操作

xss平台使用

  比较简单,创建一个账号,创建一个项目,勾选自己想测试的功能模块,就可进行实验测试了。

xss工具使用

(下面是比较老的工具)(较新:toxssin、postman )

1.OWASP ZAP (Zed Attack Proxy): OWASP ZAP 是一个功能强大且广泛使用的开源安全测试工具,用于自动化扫描XSS漏洞和其他网络安全漏洞。它提供了友好的用户界面和强大的功能,包括漏洞扫描、拦截代理、自动化脚本等。

2.Netsparker: Netsparker 是一款专业的漏洞扫描工具,可以自动检测XSS漏洞、SQL注入、CSRF等漏洞。它提供高度准确的漏洞扫描结果,并具有用户友好的界面和强大的报告功能。

3.Acunetix: Acunetix 是一款综合的漏洞扫描工具,支持自动扫描XSS漏洞、SQL注入、文件包含等。它具有直观的用户界面,强大的扫描引擎和高级报告功能。

4.Burp Suite: Burp Suite 是一个广泛使用的Web应用程序安全测试工具,提供了多种功能,包括漏洞扫描、代理拦截、重放攻击、漏洞利用等。它可以用于检测XSS漏洞以及其他网络安全问题。

5.AppScan: IBM Security AppScan 是一款专业的应用程序安全测试工具,可以进行静态和动态分析,识别应用程序中的XSS漏洞、SQL注入、CSRF等。它还提供了强大的报告和集成功能。

6.Wapiti: Wapiti 是一款开源的漏洞扫描工具,用于识别Web应用程序中的安全漏洞,包括XSS漏洞。它支持多种操作系统,可以自动扫描目标网站并生成报告。

7.XSStrike: XSStrike 是一款强大的工具,用于检测和测试XSS漏洞。它能够自动检测多种类型的XSS漏洞,包括反射型、存储型和DOM型XSS。

8.XSS Hunter: XSS Hunter 是一款用于发现和跟踪XSS漏洞的工具,它可以帮助安全研究人员识别并验证XSS漏洞,并提供详细的报告。

xss结合其他漏洞

下面是一些常见的XSS结合其他漏洞的方式:

1.XSS + CSRF(跨站请求伪造): 攻击者可以利用XSS漏洞注入恶意代码,然后结合CSRF攻击实现对用户的欺骗和恶意操作,比如修改账户信息、发起不经意的转账等。

2.XSS + SSRF(服务器端请求伪造): 攻击者可以利用XSS漏洞注入恶意代码,结合SSRF攻击通过应用程序执行服务器端请求,可能导致内部系统遭到攻击或暴露敏感信息。

3.XSS + Clickjacking: 攻击者可以通过XSS漏洞嵌入恶意代码,结合Clickjacking技术,欺骗用户执行意外的操作,如未经许可的点击、分享等。

4.XSS + Phishing: 攻击者可以使用XSS漏洞嵌入钓鱼页面,诱使用户输入敏感信息,如密码、银行账号等,然后将这些信息发送到攻击者控制的服务器。

5.XSS + Session Fixation: 攻击者可以使用XSS漏洞注入恶意代码,结合Session Fixation攻击使用户会话绑定到特定的会话标识,然后攻击者可以获取用户的会话。

6.XSS + File Upload Vulnerabilities: 攻击者可以通过XSS漏洞结合文件上传漏洞上传恶意文件,然后通过XSS触发用户执行恶意文件,实现进一步攻击。

7.XSS + SQL Injection: 攻击者可以通过XSS漏洞利用注入恶意代码并结合SQL注入攻击,实现对数据库的恶意查询或篡改。

四、绕过

代码过滤

以下是一些常见的代码过滤技术和防御措施:

1.输入验证:

对用户输入数据进行验证,只接受符合预期格式的输入,如邮箱、URL、数字等。拒绝不符合规范的输入。

2.转义字符:

将特殊字符转义为HTML实体,例如将 < 转义为 &lt;,> 转义为 &gt;,以确保浏览器不会解释这些字符为HTML代码。

3.白名单过滤:

只允许特定的HTML标签、属性和事件,过滤其他标签、属性和事件。这种方法称为白名单过滤,只允许安全的标签和属性通过。

4.黑名单过滤:

禁止特定的HTML标签、属性和事件,允许其他标签、属性和事件。这种方法称为黑名单过滤,通常不推荐,因为攻击者可以通过变体绕过黑名单。

5.内容安全策略(CSP):

使用CSP头部来限制浏览器加载和执行特定来源的内容,包括脚本、样式表等。通过设置CSP策略,可以减轻XSS攻击的风险。

6.X-XSS-Protection头部:

设置HTTP响应头部X-XSS-Protection,启用浏览器的内置XSS过滤器。这个头部可以指示浏览器在检测到XSS攻击时采取的行动。

7.自定义过滤器:

开发自定义过滤器或使用现有的防御库,对输入数据进行严格过滤和清理,移除或转义潜在的恶意代码。

8.敏感字符过滤:

过滤输入中的敏感字符,如 <script>、<img> 等,防止恶意代码注入。

Http only

了解原理

将Cookie标记为HTTP Only后,这些Cookie将只能通过HTTP(S)传输到服务器,而无法通过客户端脚本(如JavaScript)进行访问。

绕过思路:

表单劫持 | 获取管理员账号、密码。

waf拦截

了解拦截形式

WAF拦截XSS攻击的方式主要包括以下几种:

  • 特征匹配: WAF会检查请求中的特定字符、字符串或模式,如果匹配到已知的XSS攻击特征,就会阻止请求并拦截攻击。
  • 正则表达式检查: WAF可以使用正则表达式检查请求中的数据,以确保它们符合预期的格式。这可以防止恶意代码注入。
  • 解析和分析请求: WAF会解析和分析HTTP请求,特别是检查包含JavaScript代码或HTML标签的部分,以阻止潜在的XSS攻击。
  • HTML编码检查: WAF可能会检查请求中的HTML编码情况,确保所有的特殊字符都被正确地转义,从而防止XSS攻击。
  • 白名单过滤: WAF可以配置白名单,只允许特定的HTML标签和属性通过,其他的将被拦截。
  • JavaScript检测: WAF可以检测JavaScript代码的存在和执行情况,特别是在URL、Cookie、表单等位置的JavaScript代码。
  • Cookie安全策略检查: WAF可以检查Cookie的安全标志(如HttpOnly、Secure等),确保它们被正确地设置,以减少XSS攻击的风险。

绕过思路

  • 标签语句替换
  • 特殊符号干扰
  • 提交方式更改
  • 垃圾数据溢出
  • 加密解密算法
  • 结合其他漏洞
  • 符号稀释

五、修复

安全修复方案

  • 输入验证与过滤:确保对所有用户输入的数据进行验证和过滤,只允许符合预期格式的数据通过,拒绝不规范的输入。
  • 转义字符:在将用户输入数据插入到HTML或JavaScript代码之前,应该对特殊字符进行转义,以防止其被解释为代码。
  • 最小权限原则:在编写代码时,应遵循最小权限原则,即给予程序员和用户最小必要的权限,减少潜在的安全风险。
  • Content Security Policy (CSP):实施CSP头部,限制页面可以加载的内容来源,包括脚本、样式表等,以减轻XSS攻击的影响。
  • HTTP Only和Secure标记:对Cookie使用HTTP Only和Secure标记,确保Cookie只能通过HTTP传输到服务器,提高会话安全性。
  • 安全开发实践:在开发过程中采用安全编码实践,定期进行安全审计和代码漏洞扫描。
  • 更新依赖库:及时更新和修复应用程序使用的依赖库,以确保不使用已知漏洞的版本。
  • 敏感信息保护:对于敏感信息,如密码、信用卡信息等,应该采取适当的加密和安全存储措施。

六、补充内容

以下是一些常见的社会工程学攻击方式:

  • 钓鱼(Phishing): 钓鱼攻击通过伪装成可信任的实体(如银行、社交媒体、公司等)来欺骗用户,使他们泄露敏感信息,如密码、信用卡信息等。
  • 预文本攻击(Pretexting): 攻击者会以虚假的理由或假冒的身份,通过与目标交流来获取敏感信息,如个人详细信息、财务数据等。
  • 身份窃取(Identity Theft): 攻击者冒充受害者,通过获取其个人信息,例如社会安全号码、生日等,以进行欺诈活动。
  • 尾随(Tailgating): 攻击者伪装成受信任的人员,跟随正常的员工或访客进入受保护区域,以获取未经授权的访问权限。
  • 肩部冲浪(Shoulder Surfing): 攻击者通过观察目标在公共场所输入敏感信息,如密码、PIN码等,来窃取信息。
  • 逆向社会工程(Reverse Social Engineering): 攻击者利用目标的好奇心和善意,引导目标主动与他们分享敏感信息。
  • 恐吓和胁迫(Intimidation and Coercion): 攻击者使用恐吓、威胁、勒索等手段来迫使目标提供信息或执行特定操作。
  • 礼品卡欺诈(Gift Card Scams): 攻击者冒充权威人员,要求目标购买礼品卡并提供卡上的信息,以获取资金或价值。

Cookies与Session

        cookies中有一个phpsessid(唯一标识会话的字符串)的信息,你获取的cookies值的时候要检查是否有这个,如果没有的话,会访问错误。

        Cookie(存储在本地) 有过期时间设置,可以是会话级的(浏览器关闭后失效)或持久性的(在设定的过期日期前有效)。

        Session(存储在服务器) 一般在用户关闭浏览器时失效,但可以在服务器端设置过期时间。

后台权限

        如果网站管理员在登录的时候,使用浏览器的保存密码的功能,我们使用工具就可以获取这个账号、密码(可能会有加密,破解不了加密的就GG)。

Referer(来源)

        referer记录着访问者来至哪里。

字典

GitHub - TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。

其他的需要你们自己查询,最好把自己找到的字典进行归纳总结,平时遇到的,也可以加入自己归纳的字典里,让自己的字典更全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习路上的bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值