{"id":13802080,"url":"https://github.com/lemariva/uPyPortal","last_synced_at":"2025-05-13T12:32:19.482Z","repository":{"id":109049023,"uuid":"108895392","full_name":"lemariva/uPyPortal","owner":"lemariva","description":"A captive portal for MicroPython using ESP32 (WeMos)","archived":false,"fork":false,"pushed_at":"2017-11-12T17:09:30.000Z","size":121,"stargazers_count":41,"open_issues_count":1,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-13T17:57:38.984Z","etag":null,"topics":["esp32","hacking","micropython","wifi-hacking"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemariva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-10-30T18:59:36.000Z","updated_at":"2025-02-21T23:00:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f2f6704-2b1e-4af3-ab4d-8a584913442e","html_url":"https://github.com/lemariva/uPyPortal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemariva%2FuPyPortal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemariva%2FuPyPortal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemariva%2FuPyPortal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemariva%2FuPyPortal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemariva","download_url":"https://codeload.github.com/lemariva/uPyPortal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253942583,"owners_count":21988090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","hacking","micropython","wifi-hacking"],"created_at":"2024-08-04T00:01:35.214Z","updated_at":"2025-05-13T12:32:19.171Z","avatar_url":"https://github.com/lemariva.png","language":"Python","readme":"# uPyPortal\nA captive portal for MicroPython using ESP32 (WeMos)\n\n#### Disclaimer\nI assume no responsibility for the usage of this code and post. The book \"The Hacker Playbook 2: Practical Guide to Penetration Testing - Peter Kim\" says\n\u003e Just remember, ONLY test systems on which you have written permission. Just Google the term “hacker jailed” and you will see plenty of different examples where young teens have been sentenced to years in prison for what they thought was a “fun time.” There are many free platforms where legal hacking is allowed and will help you further educate yourself.\n\u003e\n\n# Requirements\n\n\u003ctable class=\"uk-table uk-table-hover components\"\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://lemariva.com/storage/blogs_imgs/wemos/wemos-min.png\" width=\"30px\" alt=\"WeMos\"\u003e \u003c/td\u003e\u003ctd\u003e WeMos WiFi ESP32 Development Tool\u003c/td\u003e\n\u003ctd align=\"right\"\u003ex 1\u003c/td\u003e\n\u003ctd align=\"right\" style=\"vertical-align:middle\"\u003e\n\u003ca href=\"https://www.banggood.com/WeMos-WiFi-Bluetooth-Battery-ESP32-Development-Tool-p-1164436.html?p=QW0903761303201409LG\" target=\"_blank\"\u003e\nbuy\n\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://lemariva.com/storage/blogs_imgs/wemos/inr-18650-min.png\" width=\"30px\" alt=\"INR18650\"\u003e \u003c/td\u003e\u003ctd\u003e INR18650 3.7v Battery\u003c/td\u003e\n\u003ctd align=\"right\"\u003ex 1\u003c/td\u003e\n\u003ctd align=\"right\" style=\"vertical-align:middle\"\u003e\n\u003ca href=\"https://www.banggood.com/4PCS-Samsung-INR18650-30Q-3000mAh-Unprotected-Button-Top-18650-Battery-p-1067185.html?p=QW0903761303201409LG\" target=\"_blank\"\u003e\nbuy\u003c/a\u003e\n\u003ca href=\"https://www.banggood.com/1PCS-NR18650-30Q-3000mah-20A-Power-Li-ion-Battery-for-Samsung-p-981565.html?p=QW0903761303201409LG\" target=\"_blank\"\u003e\nbuy\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://lemariva.com/storage/language_logos/compressed/python2_logo-min.png\" width=\"30px\" alt=\"Python\"\u003e \u003c/td\u003e\u003ctd\u003e MicroPython\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003c/td\u003e\n\u003ctd align=\"right\" style=\"vertical-align:middle\"\u003e\n\u003ca href=\"http://micropython.org/download#esp32\" target=\"_blank\"\u003e\ndownload\n\u003c/a\u003e\n\u003ca href=\"https://lemariva.com/blog/2017/10/micropython-getting-started\" target=\"_blank\"\u003e\ntutorial\n\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://lemariva.com/storage/language_logos/compressed/python2_logo-min.png\" width=\"30px\" alt=\"Python\"\u003e \u003c/td\u003e\u003ctd\u003e uPyPortal\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003c/td\u003e\n\u003ctd align=\"right\" style=\"vertical-align:middle\"\u003e\n\u003ca href=\"https://github.com/lemariva/uPyPortal\" target=\"_blank\"\u003e\ndownload\n\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n# DIY\n* Read the following blog article: https://goo.gl/3jQzQV\n\n# Credits\n\n* For the logging data, I took the files from \u003ca href=\"http://charlesleifer.com/blog/saturday-morning-hack-a-little-note-taking-app-with-flask/\" target=\"_blank\"\u003enotes-pico\u003ci class=\"uk-icon-justify uk-icon-link\"\u003e\u003c/i\u003e\u003c/a\u003e and modified them.\n* For DNS fake code I wrote a `dns.py` file using info from \u003ca href=\"http://www.tranquilidadtecnologica.com/2006/04/servidor-fake-dns-en-python.html\" target=\"_blank\"\u003ehere\u003ci class=\"uk-icon-justify uk-icon-link\"\u003e\u003c/i\u003e\u003c/a\u003e mirrored \u003ca href=\"http://code.activestate.com/recipes/491264-mini-fake-dns-server/\" target=\"_blank\"\u003ehere\u003ci class=\"uk-icon-justify uk-icon-link\"\u003e\u003c/i\u003e\u003c/a\u003e.\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Communications"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemariva%2FuPyPortal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemariva%2FuPyPortal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemariva%2FuPyPortal/lists"}