本人事先声明,这些知识只是为一些想从事网络安全工程师的小伙伴,提供体系化的学习思路。
如果学习者学习后,进行非法行为,与本人无关。
告诫:对于一些兴趣学习者,低调学习,别瞎搞,容易喜提免费住宿大礼包。
当你凝视深渊时,深渊也默默凝视着你。
如果有错误的地方欢迎指正,作者在收到信息后会及时修正,并注明提出者,欢迎与作者共同学习。
工具名字给你们了,最好去下载看看。
目录
一、原理与危害影响 |
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实体,例如将 < 转义为 <,> 转义为 >,以确保浏览器不会解释这些字符为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攻击的方式主要包括以下几种:
绕过思路
|
五、修复 |
安全修复方案
|
六、补充内容 |
以下是一些常见的社会工程学攻击方式:
Cookies与Sessioncookies中有一个phpsessid(唯一标识会话的字符串)的信息,你获取的cookies值的时候要检查是否有这个,如果没有的话,会访问错误。 Cookie(存储在本地) 有过期时间设置,可以是会话级的(浏览器关闭后失效)或持久性的(在设定的过期日期前有效)。 Session(存储在服务器) 一般在用户关闭浏览器时失效,但可以在服务器端设置过期时间。 后台权限如果网站管理员在登录的时候,使用浏览器的保存密码的功能,我们使用工具就可以获取这个账号、密码(可能会有加密,破解不了加密的就GG)。 Referer(来源)referer记录着访问者来至哪里。 字典GitHub - TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。 其他的需要你们自己查询,最好把自己找到的字典进行归纳总结,平时遇到的,也可以加入自己归纳的字典里,让自己的字典更全。 |