对API渗透性测试的一点思考

昨天王先生分享给我一个案例,刚刚发生过,新鲜热乎。某电商大佬举行了一个活动,只有会员才能1999元购买飞天茅台酒,非会员不行。(买了之后往外一转手就是2800或者2500,记不清了 ==!)。问题就出在接口端没对会员身份做校验,所以被别有用心之人通过接口钻了空子,提交了无数单。给运营同学带来了很大麻烦。

还有几年前的一个案例,提现接口没对提现值做校验,输入负值也能提现,结果越提越多。这个锅前端MM是肯定不背的,人家界面上妥妥的都做了校验。

恰好,我厂A项目最近也暴出类似问题。 1: 取消订单接口没做校验,可以多次取消,导致礼品卡金额被重复退还。 2: 提交订单接口,下单时数量未校验,为负值也能提交(未造成经济损失,但被投诉)

A项目比较特殊,出问题有一定历史原因。从外包手里接过来的,而最初接手时又有新需求压过来,因此无瑕对其进行详细的接口测试,只针对功能和业务做了一轮测试。

那么聊一聊攻击者图啥呗。我觉得无外乎两点:其一,占平台便宜,贪钱;其二,恶心恶心你,尤其是竞争对手,你都这么惨了,他们不得开心一礼拜呀。

啥叫API渗透性测试呢?

就是站在攻击者的角度,站在占平台便宜,给平台造成经济或名誉损失的角度进行测试。看接口是否有必要的校验。

怎么测呢?

工具不限,抓包像fiddler charles都没问题,接口测试postman jmeter都可以。那么,其实最重要的就是思维。举个例子:

从单品页提交订单接口,入参如下:

store_id=10

spec_key=530_1186

shipping_code=shunfeng

concent_type=1?

invoice_title=1

goods_price=0.05

gift_id=

goods_id=138

token=a6a98a31-7955-4d60-af44-e49b66db171e

addressId=26

goods_num=1

invoice_type=1

shipping_name=%E9%A1%BA%E4%B8%B0%E7%89%A9%E6%B5%81

可以设计测试场景如:

商品个数改成空、0、负数、大于库存

篡改店铺或商品id或spec_key

将商品价格改低

优惠券跨商品、跨店铺、跨用户、跨时间使用时是否有校验(比如500的优惠券只能在1万元以上的商品使用,而将商品id改成一个501元的商品,结果也能下单成功,造成1元钱购买了501元的商品)

同理,

礼品卡id改成其他用户的/无效的/已使用的/已过期的/已冻结的/未到使用时间的

至此,才算是对这个接口设计完了用例(未考虑业务层面的用例)。当然,每个人的思维都有疏漏之处。负责A项目的测试同学在设计完购物流的渗透性测试点后,我和自动化测试同学都进行了补充。然而,在给其他测试小伙伴们分享时,又得到了很多的补充。可见,人多力量大呀。一定要充分抓住身边的资源,互相帮助!给我的小伙伴点赞。

A项目的两次事故也算是件好事。给我们带来了新的测试思路,也引起了大家的重视。A项目的测试同学又测出了若干漏洞。比如,可以越权确认收货、越权删除订单、越权评价订单、越权查看发票或物流等等。 你说,攻击者做这些事能得到啥实质性的好处吗?很显然不能。也就图个乐呵吧。

罗里吧嗦说了不少,总结一下子。

如果想做好接口测试,仅仅测业务是不够的。应该从攻击者的角度考虑到尽可能多的场景,避免给平台带来经济和名誉上的损失。这也是QA团队的天职!!

最近呀,听云层讲课说了一个观点。“一线互联网公司都在研究去QA,为啥呢?我招一个测试也不少花钱,而且还不能从根源上解决问题,毕竟代码不是他编写的。那我为什么不直接把招QA的钱给平均到两个开发身上呢,一人涨5000块钱怎么样? 然后测试谁来做?用户啊。我灰度上线,先开放给一部分用户,让他们进行测试,我将问题修改好迭代几次没有问题了再开放给所有用户,这样不香吗?”

恩。QA团队,且行且珍惜吧。

点赞文章的,都变美了,变帅了,升职了,加薪了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容