Skip to content

Instantly share code, notes, and snippets.

@iqfareez
Created July 5, 2022 16:16
Show Gist options
  • Select an option

  • Save iqfareez/4861c6e5dc76c1190d8b1651def13d37 to your computer and use it in GitHub Desktop.

Select an option

Save iqfareez/4861c6e5dc76c1190d8b1651def13d37 to your computer and use it in GitHub Desktop.
#include <WiFi.h>
#include <Wire.h>
#include <HTTPClient.h>
#define AP_SSID "IIUM-Student"
#define AP_PASSWORD "" // leaves empty if open wifi
const String username = "1111111";
const String password = "blahblah";
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
// Connecting to the WIFI AP
WiFi.begin(AP_SSID, AP_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
// Login to Captive Portal
HTTPClient login;
login.begin("http://captiveportalmahallahgombak.iium.edu.my/cgi-bin/login");
String body = "user=" + String(username) + "&password=" + String(password) + "&cmd=authenticate&Login=Log%2BIn";
int res = login.POST(body);
Serial.println(res);
if (res == 200) {
Serial.println("Authentication IIUM successful");
}
login.end();
}
void loop() {
// put your main code here, to run repeatedly:
HTTPClient http;
http.begin("https://iqfareez.com/api/hello");
int res = http.GET();
Serial.println(res); // status code
Serial.println(http.getString()); // API response
delay(2000);
}
@Johanjj

Johanjj commented Nov 4, 2023

Copy link
Copy Markdown

@Johanjj You can try to use MD5 library for Arduino to Hash your password first before sending to the server. Example library I've found on the internet: https://github.com/tzikis/ArduinoMD5

Apparently, it didn't work. I have checked web element code and looks like I should get/read hash md5 from JavaScript function.
image

Any idea how to read the value from this function before send with esp32 POST method?

@iqfareez

iqfareez commented Nov 6, 2023

Copy link
Copy Markdown
Author

@Johanjj Try inspect the webpage to see any JS file included. Then, perhaps you can the calcMD5 function. Then, try to port to cpp code for it to work with Arduino.

Example:

Screenshot 2023-11-06 at 10 06 15 AM

Edit:

Check this out:

@Johanjj

Johanjj commented Nov 6, 2023

Copy link
Copy Markdown

@iqfareez Thank you for giving me sources and information.

@Johanjj

Johanjj commented Nov 11, 2023

Copy link
Copy Markdown

Hi, can I have your email? I'd like to discuss via email if allowed.

@reacto11mecha

Copy link
Copy Markdown

Thank you bro, it does work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment