[喔趣]一晚上被刷了3000多元

前马上消费_高级安全运维工程师

共 2353字,需浏览 5分钟

 ·

2024-04-11 10:34

        大家好,我是程序员渔夫。

       最近一直在快速迭代我的小程序,每天看到用户数蹭蹭地往上涨,难免还是有点小激动的,破万应该不远了。

  5ed1a557fcfe48e53fcce9d17f3ff329.webp

        心情是激动了,但随之而来的,有些羊毛党开始搞一些骚操作了。

        我是怎么发现的呢?

        为了实时了解全站接口被调用的情况,我写了一个push接口,每隔一段时间就会把当日全站的每个接口的使用次数推送给自己,然后我查看邮件即可获知。

997ebda4e4d11cfce71cbd9fc4405236.webp

       由于每天push邮件太多了,没有及时看到,直到2月29日晚上临睡前看了一下,才发现已经被刷了3000次。

        然后我查看了数据库,果然全是同一个IP,0320e215e60e151608eaead625fda666.webp       我当时开发小程序的时候,为了方便把调用接口的AK放到了小程序代码里面,我猜想应该有人去把小程序反编译,拿到了源码,所以拿到AK,直接就用这个AK开始不停请求接口了。

       然后我立即修复,更新了AK,重新封装了一层,把AK放置到后端服务器上,这样即使反编译,拿到源码也没用。

       接下来我就开始观察,过了几天,数据又开始异常了,又来一大波重复请求,而且都请求成功了,然后我开始复盘,想到应该是CSRF攻击,由于用户体验和前端是小程序,所以就没有设置随机token,也没有添加验证码,导致可以有人在小程序端直接抓包获取到请求包后,捕获详细请求内容,然后通过脚本直接请求,绕过了小程序的限制。

        虽然我之前在后端对referer和UA做了限制,也清楚这2个都是可以被伪造的,但确实没想到这么快就被盯上了。

        我急忙开始调研如何在小程序里面使用验证码来限制重复请求,之前都是去爬别人的接口,今天终于被“报应”了。

        然后我就找到一款支持小程序的滑动识别工具,具体厂商和接入细节就不方便讲了,可以加我私聊,然后对接到小程序后,测试完毕,今天上午才发了一个fix版本,终于算是比较安全了。

        在滑动验证之后,会带上一个ticket到后端进行验证,验证不通过是不会去请求真实的后端接口的。

a8b02168acdd6c8939b9b2547404e522.webp

        想到自己就是搞安全的,结果还是时不时被其他人搞一下,真是汗颜。

        复盘一下

        1.有价值的东西,不管你的规模大小,早晚会被盯上。

        2.不要心存侥幸,该做的基础防护还是要有,开局不要裸奔,好歹配穿件衣服。

        3.监控很重要,另外优化监控告警也很重要,不然有效信息容易湮没

        4.调研/修复要及时,如果早一点发现,早一点补充短板,损失就少些

        损失总计

        总共被恶意请求消耗8000多次,按每次1元来说,差不多8000多元。

        再说一点,现在很多小程序安全意识很低,很多查询,也基本没有防护,只要反编译或者抓包,就能获取请求的详细内容。

如果对大家有帮助,欢迎 点赞, 收藏,转发 支持。欢迎跟我一起讨论,独立开发者如何给自研产品进行安全防护。

往期推荐

吃惊|粉丝公然提要求了,让我再爬一次慕课网

跑路了|爬了慕课网1300多节课

免费资源|我开发了一个语音合成平台

周末总结|爆肝2小时上热搜,或许是个赚钱小工具

出大事了,不小心又整完了一个项目



浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报