首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >由一张小票引起的联想

由一张小票引起的联想

作者头像
FB客服
发布2019-03-08 15:11:23
8610
发布2019-03-08 15:11:23
举报
文章被收录于专栏:FreeBufFreeBuf

事情是这样的,日前逛煎蛋网,看到站长抱怨他买的东西,小票上的电子发票竟然没有二维码,而是一个URL明文:

这个很明显是二维码没有正确打印嘛。且慢,看起来金额、日期等参数很眼熟啊……

顿时有点兴趣了。日期、金额好像都是明文,没有任何加密,而且看起来没有什么校验。姑且尝试一下:

http://fapiao.lppz.com/eleInvoice/index.jhtml?ive=6640|66401|2019/01/29|00055102|139.21

生成一个二维码试试看(此处使用的是草料二维码生成器):

接下来用微信扫码试试,弹出提示,让我们下载发票(这个链接已经被使用,所以提示可以下载该发票):

顺手下载下来看一眼发票内容:

看起来都是零食,肯定有个贪吃的GF。请承受来自码农的怒火吧。

那么,既然这个链接的参数都是明文,那么能不能自己修改一下,然后生成二维码呢?试试:

http://fapiao.lppz.com/eleInvoice/index.jhtml?ive=6640|66401|2019/02/30|00055109|0.01

6640和66401,看起来应该是店铺id,暂不修改;日期随手改了个2月30日;0005510x可能是流水号,改了一个数字;最后是金额,写0.01。

再生成一个二维码试试看:

使用微信扫码试试:

这都是什么情况…………………………难道可以自行填写了吗?

ps:看起来已经自动把2月30日改为3月2日了;程序员赞一个……

竟然真的可以提交申请。如果没有人工审核,或者后台没有校验真实数据,也许这个票就真的开出来了。

联想起N久以前肯德基的电子发票,也是这个模式,微信扫二维码自行填报信息开具。可惜手贱,鄙人已经把那个二维码扔了。所以在某不存在的搜所引擎找一下,看看有没有“好心人”贴图:

该二维码同样可以正常被识别,内容如下:

可以看出,很多重要参数都是明文的,如果系统后台审核不严格,访客可以随意构建url,生成二维码后使用微信开票,企业将面临巨额损失。

由于实测风险过大,就不亲身尝试了。不过根据笔者多年的经验来看,这类系统存在漏洞的可能性极大。

由此,产生了一些想法:

1.必须进行身份核验,而且必须是开票的微信才能下载pdf,且限定下载次数; 2.其他人的微信,不可以浏览开票详情,不可以下载该pdf文件; 3.严格检查传参,并和后台的流水号、金额,需要一一对应 4.必须要一票一密,增加校验码; 5.参数要加密; 6.对于异常订单,要自动审查,进行人工核验; 7.参数一定要检查,务必要检查,必须要检查,谨防注入。

*本文原创作者:delectate,本文属于FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档