python对某校园热水服务app进行测试,实现自动免费用水(仅供参考)

本文详细介绍了如何使用Python和fiddler/burp对某校园热水服务app进行测试,发现了可以免费用水的漏洞。通过分析app的HTTP请求,实现了利用Python搭建代理服务器自动化执行漏洞利用脚本,从而在停止用水时全额退还预扣款。尽管app已修复漏洞,文章仍提供了整个测试和利用过程的详细步骤,以及关键代码片段。
摘要由CSDN通过智能技术生成

前言

本文只是对某校园热水服务app做个测试,其实本人并没有做大坏事,并未传播相关技术,文章以下内容的敏感部分会打码,并且相关厂商已经正在进行漏洞修复,大家看看就好。文章后会提供“Python简易搭建代理服务器”的关键代码,代码简单而且开源,我自己也加了点注释。最后的exp只针对本app,感兴趣的朋友可以看看。以下内容包含个人见解,轻喷。若有误导恳请指出。

利用fd分析与实战

要对这app做测试,首先了解下app的运作流程。
登录后,app主界面如下

请添加图片描述
逻辑简单,步骤如下:

  1. app使用蓝牙连接水表。
  2. 先扣你10块余额,转到预扣款里(不够10元扣除所有)
  3. 水表上显示10块钱,也就是你的预扣款(我只有6元所有会显示6元),水表出水
  4. 用水,水表上的金额随着用水量而减少
  5. 停止用水,水表上显示的金额就是余额,将返还给余额
    这样分析还不够,我们利用fiddler看看app向服务器的HTTP请求内容

app启动时的HTTP数据请求截图:
请添加图片描述
一共请求了5次,没发现什么地方有问题。要想知道这些请求都是做什么的,可以看看请求的get的内容以及post的内容,还可以看看网站的响应内容。从截图中fiddler右下角的“Message=未发现版本”就可以猜想这个http请求可能是检查更新的请求。
我们用的是“fiddler”,大家都知道的,许多利用都是改金额,现在还没用水,还没发生金额的变化,咱们现在用水试试。

点击“点击开始用水”按钮,看看app截图以及fiddler的http请求
请添加图片描述
app扣除了6块,转到了预扣款里,水表上显示6.00元,假装有水表照片.jpg
看fiddler截图,一共有4个http请求,注意红框,“00A3AAAF”是本次用水的订单号,之后会用到。
看了下这些http请求,发现并未和服务器发生有关金额的信息交互。
我们进行下个步骤,停止用水让它退还余额。
app截图,以及fiddler抓取到的金额数据截图:
请添加图片描述
可以看到之前红框框起来的订单号在结账返还金额的时候用到了,不用改。bal的值明显就是退还金额,将他改为6,也就是我的预扣款试试。成功退还所有预扣款!(这app有两次http请求返回的余额,内容都相同,都需要改为6,另一次就不贴截图了)
请添加图片描述
点击确认结账就余额就能变回6元了,这个“确认结账”按钮实际上是个刷新命令。

Python+burp简易搭建代理服务器

之前已经用fd实现漏洞利用,但是每次都需要手动改,如果写个脚本会比较快一些。正巧我在某同性交友网看到了“Python搭建代理服务器”的代码,就想试试能不能通过这个代码稍加更改实现自动化Exp。
贴出源代码:

#coding:utf-8
import socket
import thread
import urlparse
import select
 
BUFLEN = 8192
 
 
 
class Proxy(object):
    def __init__(self, conn, addr):
        self.source = conn
        self.request = ""
        self.headers = {
   }
        self.destnation = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.run
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值