Skip to content

to perform a XSS attack by an old bug in jQuery Ajax API

License

Notifications You must be signed in to change notification settings

ouyangjunfei/AjaxXSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

通过Ajax漏洞实现XSS攻击

项目结构介绍

注意:

index.html表示正常访问的页面,为了体现浏览器的跨域请求,此文件不通过Flask路由,而是通过VSCode的Open In Default Browser插件模拟网页访问

app.py文件中设置了监听服务器允许跨域请求,Flask框架是提供恶意网页和监听服务运行的

漏洞复现简要介绍

参考漏洞复现简要介绍

执行过程

  1. 首先开启服务监听

对应代码为,相应注释

  1. 之后在VSCode打开index.html并模拟正常访问

且控制台内容显示当前的cookies

对应正常页面的代码

  1. 点击按钮,触发Ajax异步事件,执行结果

对应恶意代码见templates/inject.html

执行原理

返回内容也是一段JS代码,而且会被立即执行,执行结果会输出在正常访问用户的控制台内

由于执行者是正常页面所在的浏览器,所以可以访问当前的cookies,进而再通过一次Ajax调用post()发送得到的cookie信息给监听服务器URLhttp://127.0.0.1:5000/fake/

查看Flask app运行的控制台

确实对应了一次恶意页面的获取,和两次cookie的POST传输

说明攻击成功

如何修复漏洞?

使用jQuery大于等于1.9.0版本的库即可

当然,官方推荐永远使用最新版本的jQuery

目前仍有大量1.x.x版本的jQuery用于PC端Web开发,其目的是为了兼容旧版IE

About

to perform a XSS attack by an old bug in jQuery Ajax API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published