diff --git a/README.md b/README.md
index 1eaf9f5..6698d93 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ Puncia utilizes two of our intelligent APIs to gather the results -
**Please note that although these results can sometimes be pretty inaccurate & unreliable, they can greatly differ from time to time due to their self-improvement capabilities.**
-**Aggressive rate-limits can be avoided with an API key: https://arpsyndicate.io/pricing.html**
+**Aggressive rate-limits can be avoided with an API key: https://www.arpsyndicate.io/pricing.html**
## Installation
1. From PyPi - `pip3 install puncia`
@@ -25,7 +25,8 @@ Puncia utilizes two of our intelligent APIs to gather the results -
3. Query Exploit & Vulnerability Identifiers (exploit)
- Russian VIDs with no associated CVEs (^RU_NON_CVE) - `puncia exploit ^RU_NON_CVE `
- Chinese VIDs with no associated CVEs (^CN_NON_CVE) - `puncia exploit ^CN_NON_CVE `
- - Daily Vulnerability & Exploit Watchlist (^WATCHLIST) - `puncia exploit ^WATCHLIST `
+ - Vulnerability & Exploit Identifers Watchlist (^WATCHLIST_IDES) - `puncia exploit ^WATCHLIST_IDES `
+ - Vulnerable Technologies Watchlist (^WATCHLIST_TECH) - `puncia exploit ^WATCHLIST_TECH `
- [Supported Vulnerability Identifiers](https://github.com/ARPSyndicate/docs?tab=readme-ov-file#supported-vulnerability-identifiers) - `puncia exploit `
4. Enrich CVE/GHSA Identifiers (enrich) - `puncia enrich `
5. Multiple Queries (bulk/sbom)
diff --git a/puncia/__main__.py b/puncia/__main__.py
index b1052b1..8c89318 100755
--- a/puncia/__main__.py
+++ b/puncia/__main__.py
@@ -14,7 +14,8 @@
"auth_enrich": "https://api.exploit.observer/beta/?auth={0}&enrich=True&keyword=",
"russia": "https://api.exploit.observer/russia/",
"china": "https://api.exploit.observer/china/",
- "watchlist": "https://api.exploit.observer/watchlist/",
+ "watchlist_ides": "https://api.exploit.observer/watchlist/identifiers",
+ "watchlist_tech": "https://api.exploit.observer/watchlist/technologies",
}
@@ -52,24 +53,30 @@ def query_api(mode, query, output_file=None, cid=None, akey=""):
query = "noncve"
mode = "spec_exploit"
cid = "Chinese VIDs with no associated CVEs"
- if query == "^WATCHLIST":
- url = API_URLS.get("watchlist")
+ if query == "^WATCHLIST_IDES":
+ url = API_URLS.get("watchlist_ides")
query = ""
mode = "spec_exploit"
- cid = "Daily Vulnerability & Exploit Watchlist"
+ cid = "Vulnerability & Exploit Watchlist"
+ if query == "^WATCHLIST_TECH":
+ url = API_URLS.get("watchlist_tech")
+ query = ""
+ mode = "spec_exploit"
+ cid = "Vulnerable Technologies Watchlist"
if not url:
sys.exit("Invalid Mode")
try:
response = requests.get(url + query).json()
except:
- print("An exception happened")
+ print("An exception happened while requesting: " + query)
return
- if not response:
+ if not response or len(response) == 0:
print("Null response from the API")
return
result = json.dumps(response, indent=4, sort_keys=True)
print(result)
if mode in ["spec_exploit"]:
+ os.system("rm " + output_file)
for reurl in response:
query_api(
"exploit",
@@ -156,7 +163,7 @@ def add_component(name, version):
def main():
try:
print("---------")
- print("Panthera(P.)uncia [v0.22]")
+ print("Panthera(P.)uncia [v0.23]")
print("A.R.P. Syndicate [https://www.arpsyndicate.io]")
print("---------")
diff --git a/setup.py b/setup.py
index e7820ea..88fd375 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@
setup(
name="puncia",
- version="0.22",
+ version="0.23",
author="A.R.P. Syndicate",
author_email="ayush@arpsyndicate.io",
keywords="subdomains subdomain exploits exploit arpsyndicate panthera uncia puncia snow leopard",