第一、XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。 第二、XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性. 第三、DOMBasedXSS(基于dom的跨站点脚本攻击)
储蓄型XSS其实和反射型XSS差不多,只是储蓄型把数据保存到服务端,而反射型只是让XSS游走在客户端上。
“xss就是在页面执行你想要的js”
1.窃取cookies,读取目标网站的cookie发送到黑客的服务器上 2.读取用户未公开的资料
客户端提交的数据本来就是应用所需要的,但是恶意攻击者利用网站对客户端提交数据的信任,在数据中插入一些符号以及javascript代码,那么这些数据将会成为应用代码中的一部分了。那么攻击者就可以肆无忌惮地展开攻击啦。
owasp top 10中,xss跨站脚本攻击占一席之地,现在很多src都存在此类漏洞
常见的检测xss漏洞的检测工具比如: AWVS、BurpSuite、AppScan、safe3WVS、kali下的xsser, chrome下的XssSniper,AutoFindXss插件
-
最好的方法是根据数据将要置于HTML上下文(包括主体、属性、JavaScript、CSS或URL)对所有的不可信数据进行恰当的转义。
-
使用正面或“白名单”的,具有恰当的规范化和解码功能的输入验证方法同样会有助于防止跨站脚本。但由于很多应用程序在输入中需要特殊字符,这一方法不是完整的防护方法。这种验证方法需要尽可能地解码任何编码输入,同时在接受输入之前需要充分验证数据的长度、字符、格式和任何商务规则。
Payload是一个专业术语,中文翻译过来是是有效荷载,可能经常会从搞安全的口里说出,那么什么是Payload?什么又是Exp?什么又是PoC?
先介绍PoC,PoC的全称是Proof of Concept,意思为概念验证,通俗的可以理解为漏洞验证脚本;而Exp是Exploit的简写,意思为漏洞利用,两者的区别即使一个仅限于验证,而一个是攻击利用。那么Payload呢?Payload是组成PoC和Exp的必要部分,也可以理解为验证代码。
打个比喻,假如某个窗户存在问题,任何钥匙都可以开,那么这个比喻为一个漏洞,那么用钥匙打开窗户,看下是否可以打开,这是PoC做的事,而打开窗户后进去偷东西,这是Exp做的事,而那把钥匙就可以理解为Payload,Payload不区分是否攻击利用。
经常也会听到一个词,注入点,或者说专业术语是向量,指的是黑客可控内容的提交的位置,比如下图中,搜索框,黑客可以控制输入的内容,然后进行提交,那么实际在测试漏洞的时候,就可以把注入点的内容替换为Payload进行验证。
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
在业界目前防御 CSRF 攻击`主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。下面就分别对这三种策略进行详细介绍。
referer字段表示从哪里链接到当前网页