Insecure Client Storage

本文介绍如何使用Firebug调试JavaScript代码,包括设置断点调试及直接通过浏览器地址栏执行JS代码的方法,实现对优惠券代码的有效破解。

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

学习完最大的收获是学会了怎样用firebug调试js脚本,十分强大^_^

 

It is always a good practice to validate all input on the server side. Leaving the mechanism for validation on the client side leaves it vulnerable to reverse engineering. Remember, anything on the client side should not be considered a secret.

 

此课的目标:

步骤一、通过发现一个优惠券code来适用零费用买到商品。

 

firebug获取该页面的js代码:

<script language="JavaScript" src="javascript/clientSideValidation.js"></script>

 

 

方法一:适用firebug在JavaScript上设置断点进行调试

观察js代码发现了coupons数组,调试js可以观察得到coupons数组进行加密decrypted = decrypt(coupons[i]);后所
得到的coupon code

 

选择js文件

设置断点(左键添加,右键为设置断点进入条件,必须设置进入条件,否则不能进入断点),断点进入条件为i<coupons.length,并点击"Break on next"按钮

在coupon code输入任意字符(这里如果手快可以输入多个字符),激发onkeyup="isValidCoupon(field1.value)" 事件

然后使用F10或F11进行逐段或逐句调试

在右边栏查看this里caesar的值,即为客户端存储的coupons数组经过decrypt()函数得到的coupon code

对应的可用优惠券即为:PLATINUM、GOLD(上图所示)SILVER、BRONZE、PRESSONE、PRESSTWO、PRESSTWO

 

使用上述优惠券即可成功以低价买进。

 

 

方法二:利用浏览器地址栏可以直接执行js代码的特性,在地址栏输入

javascript:alert(decrypt("sfwmjt"));              

其中sfwmjt为coupons数组中的元素,通过decrypt函数可以计算得到优惠券代码SILVER。

 

 

步骤二:主要是通过firebug查找并修改GRANDTOT这个input的readonly属性,则选择完商品后得到的总价格在没有只读属性时可以被任意修改,篡改为0,即可buy FOR FREE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值