{"id":25066854,"url":"https://github.com/p1ckzi/nanocmshell","last_synced_at":"2026-05-10T09:33:15.579Z","repository":{"id":266302184,"uuid":"516686537","full_name":"p1ckzi/nanocmshell","owner":"p1ckzi","description":"authenticated remote code execution via shell upload.","archived":false,"fork":false,"pushed_at":"2022-08-03T07:37:56.000Z","size":44,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T20:34:46.204Z","etag":null,"topics":["exploit","file-upload","nanocms","nanocmshell","php","php-reverse-shell","rce"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p1ckzi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-22T09:17:00.000Z","updated_at":"2024-08-12T20:25:20.000Z","dependencies_parsed_at":"2024-12-03T16:18:06.528Z","dependency_job_id":null,"html_url":"https://github.com/p1ckzi/nanocmshell","commit_stats":null,"previous_names":["p1ckzi/nanocmshell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1ckzi%2Fnanocmshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1ckzi%2Fnanocmshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1ckzi%2Fnanocmshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1ckzi%2Fnanocmshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p1ckzi","download_url":"https://codeload.github.com/p1ckzi/nanocmshell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246481005,"owners_count":20784458,"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":["exploit","file-upload","nanocms","nanocmshell","php","php-reverse-shell","rce"],"created_at":"2025-02-06T20:28:25.353Z","updated_at":"2026-05-10T09:33:15.540Z","avatar_url":"https://github.com/p1ckzi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nanocmshell ⭐\na simple script that exploits an authenticated file upload/remote code execution vulnerability in NanoCMS v0.4.  \n\n## the exploit ❗\nhttps://github.com/kalyan02/NanoCMS has not been maintained in a long time and suffers from a a number of vulnerabilities including authenticated file upload/remote code execution which this script exploits.  \nMore information here: https://github.com/ishell/Exploits-Archives/blob/master/2009-exploits/0904-exploits/nanocms-multi.txt  \nNanoCMS saves pages both new and edited, as .php files by default, allowing an authenticated attacker to upload executable code.  \nthis script uploads a webshell.\n\n## prerequisites ✔\n* python3\n* python3 requests module\n* python3 beautifulsoup4 module\n```\nsudo apt install python3\nsudo apt install python3-pip\npip3 install beautifulsoup4\npip3 install requests\n```\n\n## usage ℹ\nuse `./nanocmshell` or `python3 nanocmshell` with `-h` or `--help` for help menu:\n```\nusage: nanocmshell [-h] [-u USER] [-p PASSWD] [-e] [-a] [-n] address file\n\n../nanocmshell exploits authenticated file upload\nand remote code execution in NanoCMS.\n\npositional arguments:\n  address               schema/ip/hostname, port, sub-directories to the vulnerable NanoCMS\n                        server\n  file                  php file to upload\n\noptions:\n  -h, --help            show this help message and exit\n  -u USER, --user USER  username\n  -p PASSWD, --passwd PASSWD\n                        password\n  -e, --execute         attempts to make a request to the uploadedfile (more useful if\n                        uploading a reverse shell)\n  -a, --accessible      turns off features which may negatively affect screen readers\n  -n, --no-colour       removes colour output\n\nexamples:\n        python3 nanocmshell http://10.10.10.10/ rev.php\n        python3 nanocmshell http://hostname:8080 rev-shell.php -a\n        ./nanocmshell https://10.10.10.10 rev-shell -n -e -u 'user'\n```\nnote: admin/demo are default credentials used but new ones can be supplied with `-u` and `-p` flags.\n\n## notes 📝\nthe script was mainly an exercise in creating a comprehensive program for a single exploit with both readability and accessibility in mind.  \naims to handle a number of potential errors to make troubleshooting easier.  \nprobably unlikely to see this in the wild (as of 2022), but maybe useful for CTFs.\n\n## credits 👍\nhttps://skerritt.blog/a11y/ - accessibility implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1ckzi%2Fnanocmshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp1ckzi%2Fnanocmshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1ckzi%2Fnanocmshell/lists"}