想必大家都对参数篡改攻击有所了解,今天作者分享的是对RSA加密参数的篡改从而实现账号劫持的简单测试,漏洞原因在于Web应用在客户端缺乏安全的防护机制。一起来看看。
出于保密,目标Web应用暂且叫它为target.com,在接触该目标时,经测试发现,其上所有的参数操作都是加密传输的,在Burp的抓包配合下,可见其大概的加密形式如下:
userName=8cfe39943d6e08e505531ddfd90c66f47c2f55ce140e5770fef58d3bec826f52490a089d1942aaed74a9f6ed0fd8890cef6c36e31220c9859a3ab423062wxbeea480d94850d95374ab3a7a47de3e9f89b3250a58397044817069c6a17109cc27408b0c53f94q34a5878270ff6random8c96b916bb9594af648e6dc6851685a9d41cdb868761c4d36d49389150840af05a277530dd191464befc79a46d418a4e4f12b2dec0c5cc01097efed4b2a6608c2c2f076a27fe0ce62a70a4fe2f02b558abae6f4a4757fb34a593ccd04f2356c2c521758b0e59c017087121d63c1b002fc794953e690290489f8af87d17359ba0fc59b832f972d80293fe8d2aafcb4faca
接下来,我把关注点放到了其“忘记密码”功能上,其大概流程如下:
1、访问target.com/signin页面,输入需要重置密码的邮箱号;
2、Web服务端会向邮箱发送一个6位数授权码;
3、访问target.com/forgotPasswd,输入需要重置密码的邮箱号、授权码和重置后的密码,提交即可完成密码重置操作。
现在,我以邮箱“attacker@email.com”向Web服务端发起密码重置请求,在收到授权码之后,访问target.com/forgotPasswd,重复上述密码重置操作,该过程用Burp抓包的数据如下:
从上图中可以看到,其中包含4个参数:Email, Username, Encrypted Password 和 Code,但是所有这些参数都是加密的。我尝试着把参数数值替换成明文数值,如用“attacker@email.com” 或“victim@email.com”替换掉其中的邮箱,但提交的请求却不成功。
接着,我用另外的浏览器访问target.com/forgotpasswd,以“victim@email.com”身份发起密码重置请求,抓包,复制其中的email 和 username加密数值,到之前的浏览器请求包中,提交,但请求还是无效。
因此,总结来看,忘记密码的请求格式如下:
email=encryptedattackeremail&userName=encryptedattackerusername&passwd=encryptedattackerpasswd&code=encryptedcode
我度过把其中的encryptedattackeremail替换为encryptedvictimemail,encryptedattackerusername替换为encryptedvictimusername,但都不可行。
我依然没有气馁。经过一番分析,根据加密长度,我发现其加密方式为RSA。同时,我对目标Web应用的源代码分析后发现,其中多个js脚本中包含了rsa方法名称,因此,我确信其为RSA加密无疑了。
后来我意识到Burp抓包时参数值已经被加密了,这是一种客户端加密,所以我尝试把浏览器中调用的js脚本执行关闭,看看加密功能是否还可行,但之后,密码重置请求就完全不起效。
我又考虑到,由于这是客户端加密,RSA函数肯定是在某个js脚本中被定义,且被浏览器调用的,于是我点击Chrome浏览器的Inspect Element按钮,来到了其Console一栏下,输入“rsa” ,让我吃惊的是其中匹配出了“rsaEncrypt”方法函数名。
经过测试发现,只要为该方法函数提供一个参数名,其就能生成相应的加密数值,因此,我以参数s定义了数值“victim@email.com”,即s=“victim@email.com“,执行rsaEncrypt,它即生成了如下相应的加密串:
需要注意的是,可能是其与会话参数相关,所以在端点/forgotpasswd上每次刷新页面,上述的加密串都会发生变化。
按照前述的密码重置操作,我以“attacker@email.com”身份发起密码重置请求,提交授权码和新密码,并进行Burp抓包,其相应界面如下:
在Burp的请求包中,除了 把其中的“username”替换成浏览器端rsaEncrypt方法生成的“rsaencryptedvictimemail”加密串之外,其它的都无需更改,也即:
email=encryptedattackeremail&username=rsaencryptedvictimemail&passwd=encryptedattackerpasswd&code=encryptedcode
请求提交后,奇迹发生了,对应的账号密码被成功更改,实现了账户劫持!【来源:FreeBuf】
筑牢安全防线:安企神企业助力特种设备机械企业数据防泄密解决方案
西安苛菲特机械设备有限公司 西安苛菲特机械设备有限公司致力于特种设备的发展,专业从事特种设备的研发、制造和销售。目前已成为有色冶金特种设备、大型船舶特种设备、煤化工特种设备的领军品牌,并在业内得到了“ 特种设备专家”的称号。公司以打造国内一流特种设备为使命,主要产品定型为高品质特种(高温、高压、高合金)流量控...
安企神软件——为中国铁道建筑集团有限公司筑牢数据防泄密系统
01公司介绍中国铁建是中国乃至全球最具实力、最具规模的特大型综合建设集团之一,入选世界500强企业、全球225家最大承包商之一等荣誉。公司以工程承包为主业,集勘察、设计、投融资、施工、设备安装、工程监理、技术咨询、外经外贸于一体,经营业务遍及除台湾省外全国31个省市(自治区)、世界20多个国家和地区,企业总资产820亿...
强化终端安全,安企神软件与涂料制造企业共创安全未来
西安经建油漆有限责任公司规模化、专业化、现代化涂料制造企业西安经建油漆有限责任公司,年涂料生产能力20万吨,为中国中西部实力较强、产能较大的涂料制造企业。公司成立伊始便积极承担起重点建设项目及国防军事工业、航空航天工业提供配套涂料科研开发及生产任务。多次受到中国航天科技集团总公司的通令嘉奖,为我国航天事业跻身世界前列做...
全球著名减震器制造商——天纳克携手安企神共筑安全制造新防线
天纳克(北京)汽车减振器有限公司天纳克(北京)汽车减振器有限公司成立于1995年,是天纳克在中国最早投资的合资企业。公司集设计、开发、生产及销售汽车减振器于一身。作为天纳克全球网络的一部分,能充分享受天纳克全球的技术积累经验和国际领先的设计理念,加之先进的生产设备和工艺技术。天纳克(北京)汽车减振器有限公司完全能保证为...
强强联合!安企神软件携手瀚颐共筑汽车行业终端安全防线
瀚颐上海汽车电子科技有限公司EAST瀚颐中国团队成立于2015年。是国际AUTOSAR软件联盟的研发伙伴单位。具备汽车电子硬件设计、软件开发、CAN网络集成、系统集成测试以及项目管理的全面研发能力。专注于汽车电子以及相关产业并拥有25年以上的专业经验,拥有来自于德国和中国业内专家和高管组成的顾问团队,并向全球汽车行业客...