本文内容来自蚁景网安课程。
认识跨站脚本攻击
跨站脚本攻击概念
跨站脚本(Cross-site scripting,XSS)指恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中Web页面的JavaScript代码会被执行,从而达到恶意攻击用户的目的。
特点
由于动态网页的Web应用对用户提交请求参数没有充分检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是>
和<
),并且未加编码地输出到用户的浏览器,这些攻击者恶意提交的代码会被受害用户的浏览器解释执行。
Payload概念
Payload意为有效载荷,在XSS中指代攻击代码或攻击语句。
常见Payload
|
|
漏洞危害
获取用户信息:如浏览器信息、IP地址、Cookie信息等。
钓鱼:利用XSS漏洞构造出一个登录框,骗取用户账户密码,提示登录过期,模拟一个网站的登录框,将用户名、密码发送到攻击者服务器。
注入木马或广告链接:有些在主站注入非法网站的链接,对公司的声誉有一定影响。
后台增删改网站数据等操作:配合CSRF漏洞,骗取用户点击,利用js模拟浏览器发包。
XSS蠕虫:微博蠕虫(看过某人的微博就会自动关注某人)、贴吧蠕虫(看过某个帖子就会自动回复)。
XSS常出现的地方
GET、POST、Cookies
反馈与浏览
富文本编辑器
各类标签插入和自定义
用户资料
关键词、标签、说明
文件上传
漏洞类型及场景
常见分类
反射型:Payload经过后端,不经过数据库。
存储型:Payload经过后端,经过数据库。
DOM:Payload不经过后端。
反射型
也叫非持久型XSS。攻击者将恶意脚本附加到url参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。
特点:只执行一次。
常见漏洞场景:搜索处。
反射型触发流程
攻击者在url构造恶意代码,再将恶意代码的url发送给受害者,受害者点击url后就会被攻击。
存储型
也叫持久型XSS。攻击者在数据中嵌入代码,这样当其他用户请求后,服务器从数据库中查询数据并发送给用户,用户浏览此类页面时就可能受到攻击。
常见漏洞场景:多见于评论留言,个人信息等处。
存储型触发流程
1.攻击者发送恶意脚本请求。
2.恶意脚本被保存在数据库中。
3.用户正常浏览页面。
4.从数据库读取恶意脚本。
5.将恶意脚本返回用户,构造页面。
6.浏览器解析,执行恶意脚本,发起攻击。
Self XSS
顾名思义,自己输入XSS脚本,输出仅自己看到,仅XSS到自己。
|
|