Silent Transactions Attacks

本文介绍了一种利用AJAX的无声转账攻击方法,通过绕过客户端验证,实现未经用户授权的转账操作。文章详细分析了攻击过程及两种实施手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

How the attacks works:

Any system that silently processes transactions using a single submission is dangerous to the client.

For example, if a normal web application allows a simple URL submission, a preset session attack will allow the attacker to complete a transaction without the user's authorization. In Ajax, it gets worse: the transaction is silent; it happens with no user feedback on the page, so an injected attack script may be able to steal money from the client without authorization.

 

webgoat上示例,在一个银行网站应用上的转账页面中,该网页在一些基本的客户端验证后利用AJAX提交transaction。

目标:绕过用户认证并silently执行这次transaction!!

 

分析该页js脚本文件

 

 

发现其中processData()函数是用来验证输入金额是否超过了账户余额,若超过,认证不通过。

submitData()函数则是在验证完后被调用来提交XHR(XMLHTTPRequest)与服务端交互,执行转账。

 

方法一:绕过processData()的客户端验证

使用WebScarab 截获get请求,并修改get请求里的金额参数。因为获得get请求之前已经经过了客户端验证,此时修改的金额完全可以超过账户余额!

 

此方法bypass了客户端验证,但是还是需要经过用户认证,即必须截获客户端和服务器端的通信,因此没有达成silently的目的。

 

方法二:通过在browser上调用JavaScript函数submitData()来bypass客户端验证并silently执行转账。

 

最新版本的多数浏览器支持在地址栏里(address bar)调用JS脚本,即使用javascript:function();

 

因此在浏览器地址栏直接输入JavaScript:submitData(1234,11000);

即可攻击成功!

 

* Congratulations. You have successfully completed this lesson.
You have just silently authorized 11000$ without the user interaction.
Now you can send out a spam email containing this link and whoever clicks on it
and happens to be(一定几率性 logged in the same time will loose their money !!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值