欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

程序员文章站 2022-03-10 23:15:44
论述:此教程只做技术交流,切勿用于其它相关用途。 本人所读大学是那种环境措施等都比较好的,毕竟学费也很贵的,至于相关名称我就不说了。记得大一的时候我们还是在宿舍刷卡饮水,后面有人大量在某宝买卡后,厂家不得不采取相关措施。最后改成了用蓝牙连接,下载APP充值饮水的这么个流程。 虽然此教程有点属于Pyt ......
Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

论述:此教程只做技术交流,切勿用于其它相关用途。

本人所读大学是那种环境措施等都比较好的,毕竟学费也很贵的,至于相关名称我就不说了。记得大一的时候我们还是在宿舍刷卡饮水,后面有人大量在某宝买卡后,厂家不得不采取相关措施。最后改成了用蓝牙连接,下载APP充值饮水的这么个流程。

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

虽然此教程有点属于Python黑客性质,但方法无非都是抓包,与Python知识的应用。

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

此Python黑客教程分为三个相关步骤

1、利用fd分析与实战

要实现欲达到的功能,必须要先了解它的APP吧?app主界面:Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

逻辑步骤:

  1. 打开app后用手机蓝牙功能与饮水机连接。
  2. 如果余额大于10则先转10块余额到预扣款里,如果小于10则全部扣除。(每个地方的都会有所差异,具体看实际情况)
  3. 饮水机上显示10元,也就是你的预扣款为10,饮水机自动出水。
  4. 饮水机上的金额随着用水量增加而自动减少
  5. 结束用水,饮水机上显示的金额就是所剩余额,将返还给APP内

然后我们接着利用fiddler抓取手机app向服务器的HTTP请求内容,抓包。

app启动时的HTTP数据请求如下所示:

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

想要知道这些请求都是做什么的,可以看网站的响应内容,或者请求的get请求的内容以及post请求的内容,由图中fiddler右下角的“Message=未发现版本”能够知道http请求应该是检查更新的请求。

很多利用“fiddler”都是改金额,用水让它的金额发生改变试试。

先按“点击开始用水”按钮

app截图:

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

fiddler的http请求

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

app内余额6<10,所以全部转到了预扣款里,饮水机上显示余额为6.00元,由上图可以知fiddler的http请求一共有4个,而且我们可以看出http请求没有与服务器发生有关金额的信息交互。红色标记“00A3AAAF”是这次交易的订单号,这个是关键点。

关键步骤,结束用水让APP退还所用余额。

app截图

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

fiddler抓取到的金额数据:

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

前面用红色标记起来的订单号在结账返还金额的时候用到了,别去修改它。bal的值很明显为退还金额值,可以把它改为预扣款金额6,接着就会成功退还预扣款!有多少次http请求返回的余额,就修改几次。

点击“确认结账”按钮刷新,余额就能变回6元。

2、Python&burp搭建代理服务器

fiddler虽然可以利用漏洞,但每次都要手动去修改,用Python写个自动化Exp脚本会方便很多。

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

设置好burpsuite后,运行Python代码实现代理服务。

3、Python实现自动化exp

将Python代码改成app的漏洞利用工具。

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python代码如图所示

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

订单号包含在URL中,非常方便。

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

header请求头的使用

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

有了凭证后,就非常容易实现欲达到的效果了

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

服务器返回的是json形式,那么用Python的eval,获取对应键值即可。

接着执行欺骗,“结账”请求:

Python爆破校园饮水机系统,喝水还要花钱?不存在的,免费饮水!

 

结论

这个教程必须要对此APP有所了解,并且有Python基础的的才能够看得懂,这是唯一的遗憾了。