بالإضافة إلى العديد من عمليات الدمج الجاهزة ، يوفر Acunetix واجهة برمجة تطبيقات ، والتي تتيح لك دمج الماسح الضوئي مع أي بيئة. تتيح لك واجهة Acunetix API استخدام أي من وظائف الماسح الضوئي دون الحاجة إلى الوصول إلى واجهة مستخدم الماسح الضوئي. كمثال ، سنوضح لك كيفية إجراء مكالمات إلى Acunetix API باستخدام Python.
سنناقش خيارين لإجراء مكالمات API باستخدام Python:
- الخيار 1: استخدام عميل Swagger لمكالمات API
- الخيار 2: استخدام HTTP الأساسي لمكالمات API
لأغراض هذه المقالة ، سنفترض أيضًا أنك تعمل في بيئة Windows 64 بت.
المحتويات
الخيار 1: استخدام عميل Swagger لمكالمات API
بالنسبة لهذا الخيار ، سنقوم باتباع الخطوات اللازمة لإجراء مكالمتك الأولى في Acunetix API باستخدام Python و Swagger Client:
- قم بتثبيت Python
- قم بتثبيت JAVA JDK
- تثبيت Git
- قم بتثبيت Swagger Codegen
- إنشاء مكتبة Acunetix API لـ Python
- قم بإنشاء نص Python النصي لإجراء مكالمات API
يمكنك تخطي بعض الخطوات الأربع الأولى إذا كان البرنامج مثبتًا بالفعل.
قم بتثبيت Python
- قم بتنزيل مثبت Windows 64 بت القابل للتنفيذ لـ Python 3.8.4 من خلال النقر هنا أو الاستعراض بحثًا عن إصدار مختلف إذا كنت تفضل ذلك.
- قم بتثبيت Python بالنقر المزدوج على المثبت:
- تأكد من تمكين أضف Python إلى PATH خانة الاختيار.
- اضغط على تثبيت الآن زر.
- اضغط على قريب زر عند انتهاء المثبت.
قم بتثبيت JAVA JDK
- قم بتنزيل مثبت Windows 64 بت لـ JAVA SE JDK 8 بالضغط هنا.
- قم بتثبيت JAVA JDK بالنقر المزدوج فوق المثبت:
- لا توجد خيارات تحتاج إلى تكوين في المثبت ، لذا يمكنك ببساطة قبول جميع الإعدادات الافتراضية ومتابعة التثبيت.
- اضغط على قريب زر عند انتهاء المثبت.
- من موجه أوامر المسؤول ، قم بتشغيل الأمر التالي لتعيين
JAVA_HOME
متغيرات البيئة:setx JAVA_HOME -m "c:Program FilesJavajdk1.8.0_261"
تثبيت Git
- قم بتنزيل مثبت Windows 64 بت لـ Git 2.27.0 بالضغط هنا أو البحث عن إصدار مختلف.
- قم بتثبيت Git بالنقر المزدوج على المثبت:
- لا توجد خيارات تحتاج إلى تكوين في المثبت ، لذا يمكنك ببساطة قبول جميع الإعدادات الافتراضية ومتابعة التثبيت.
- اضغط على إنهاء زر عند انتهاء المثبت.
قم بتثبيت Swagger Codegen
- من موجه الأوامر العادي ، انتقل إلى المجلد الجذر ، واستنساخ اختيال الكود المستودع ، وانتقل إلى مجلد المستودع:
cd c: git clone https://github.com/swagger-api/swagger-codegen.git cd c:swagger-codegen
- بناء اختيال الكود أدوات:
- قم بتشغيل الأمر التالي من داخل المجلد:
mvnw package
- يجب أن تكون النتيجة مشابهة لما يلي عند اكتمالها بنجاح:
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] swagger-codegen-project ............................ SUCCESS [ 43.643 s] [INFO] swagger-codegen (core library) ..................... SUCCESS [03:28 min] [INFO] swagger-codegen (executable) ....................... SUCCESS [ 27.892 s] [INFO] swagger-codegen (maven-plugin) ..................... SUCCESS [ 56.018 s] [INFO] swagger-generator .................................. SUCCESS [02:43 min] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 08:30 min [INFO] Finished at: 2020-07-17T16:06:07+01:00 [INFO] Final Memory: 62M/629M [INFO] ------------------------------------------------------------------------
- قم بتشغيل الأمر التالي من داخل المجلد:
إنشاء مكتبة Acunetix API لـ Python
- يخترع الوخز بالإبر مجلد فرعي لـ اختيال الكود:
md c:swagger-codegenacunetix cd c:swagger-codegenacunetix
- انسخ ال اختيال. yaml الملف الذي قدمه Acunetix في c: swagger-codegen acunetix مجلد.
- قم بإنشاء ملف دفعي باستخدام الأمر التالي:
notepad c:swagger-codegenacunetixpy-ax.bat
- أدخل ما يلي في الخاص بك باي الفأس. bat ملف:
set executable=.modulesswagger-codegen-clitargetswagger-codegen-cli.jar set params=generate -i acunetixswagger.yaml -l python -o acunetixpython -DpackageName=swagger_client java %JAVA_OPTS% -jar %executable% %params%
- قم بإنهاء برنامج “المفكرة” باي الفأس. bat ملف.
- قم بإنشاء المكتبة باستخدام الأوامر التالية:
cd c:swagger-codegen acunetixpy-ax.bat
سيؤدي هذا إلى إنشاء المكتبة في الداخل c: swagger-codegen acunetix python.
- قم بتثبيت المكتبة باستخدام الأوامر التالية:
cd c:swagger-codegenacunetixpython pip install .
قم بإنشاء Python Script لإجراء مكالمات API
إنشاء نص Python الخاص بك
- قم بإنشاء ملف البرنامج النصي الجديد الخاص بك:
notepad c:swagger-codegenacunetixapitest.py
- أدخل الأوامر التالية في apitest.py ملف:
import swagger_client from swagger_client.rest import ApiException from pprint import pprint api_config = swagger_client.Configuration() api_config.ssl_ca_cert="C:ProgramDataAcunetixcertsca.cer" api_config.host="https://localhost:3443/api/v1" api_config.api_key['X-Auth'] = '1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd' api_client = swagger_client.ApiClient(configuration=api_config) api_instance = swagger_client.TargetsApi(api_client=api_client) print(api_instance) try: # Targets # api_response = api_instance.get_targets(c=c, l=l, q=q, s=s) api_response = api_instance.get_targets() pprint(api_response) except ApiException as e: print("Exception when calling TargetsApi->getTargets: %sn" % e)
تذكر أنك تحتاج إلى استبدال مفتاح API بمفتاح تثبيت Acunetix الخاص بك.
- قم بتشغيل البرنامج النصي لاختبار API الخاص بك:
cd c:swagger-codegenacunetix python apitest.py
عرض النتائج
بمجرد التنفيذ بنجاح ، ستشبه نتائج البرنامج النصي ما يلي:
c:swagger-codegenacunetix>apitest.py
{'pagination': {'count': 3,
'cursor_hash': '8f629dd49f910b9202eb0da5d51fdb6e',
'cursors': [None],
'sort': None},
'targets': [{'continuous_mode': False,
'last_scan_date': datetime.date(2020, 7, 10),
'last_scan_id': 'ec27a320-2351-4b27-b6dd-34313dff9c1f',
'last_scan_session_id': 'bb3ad61a-2615-47ac-bcfb-4cb269521746',
'last_scan_session_status': 'completed',
'links': None,
'manual_intervention': False,
'scan_authorization': None,
'severity_counts': None,
'target_id': 'e7260534-cfb7-4d30-bc18-a2ed0b0eead8',
'threat': None,
'verification': None},
{'continuous_mode': False,
'last_scan_date': None,
'last_scan_id': None,
'last_scan_session_id': None,
'last_scan_session_status': None,
'links': None,
'manual_intervention': None,
'scan_authorization': None,
'severity_counts': None,
'target_id': '94c1fa22-8f0c-471e-9737-c199e57ad1fa',
'threat': None,
'verification': 'demo'},
{'continuous_mode': False,
'last_scan_date': None,
'last_scan_id': None,
'last_scan_session_id': None,
'last_scan_session_status': None,
'links': None,
'manual_intervention': None,
'scan_authorization': None,
'severity_counts': None,
'target_id': 'a67df446-dda1-4715-91f5-471add517fea',
'threat': None,
'verification': None}]}
c:swagger-codegenacunetix>
الخيار 2: استخدام HTTP الأساسي لمكالمات API
تثبيت بيثون
اتبع التعليمات لتثبيت Python كما هو موضح للخيار 1 أعلاه.
استخدم نص Python لإجراء مكالمات API
قم بتثبيت حزم Python Prerequisite
قم بتثبيت Python الطلبات صفقة:
python -m pip install requests
إنشاء نص Python الخاص بك
- قم بإنشاء ملف البرنامج النصي الجديد الخاص بك:
md c:acunetixapi notepad c:acunetixapiapitest.py
- أدخل الأوامر التالية في apitest.py ملف:
# importing libraries import json, requests, urllib3 # api-endpoint URL = "https://localhost:3443/api/v1/targets" # defining a params dict for the parameters to be sent to the API #PARAMS = {'c':'', 'l':'', 's':''} PARAMS = {} #defining the headers to send headers = {'content-type': 'application/json', 'X-Auth':'1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd1986abcd'} #create connection pool pool = urllib3.PoolManager(cert_reqs="REQUIRED", assert_hostname="localhost",) #send request resp = pool.request('GET', URL, '', headers) #decode response data = json.loads(resp.data.decode('utf-8')) #dump decoded response print(data)
تذكر أنك تحتاج إلى استبدال مفتاح API بمفتاح تثبيت Acunetix الخاص بك.
- قم بتشغيل البرنامج النصي لاختبار API الخاص بك:
c:acunetixapiapitest.py
عرض النتائج
بمجرد التنفيذ بنجاح ، ستشبه نتائج البرنامج النصي ما يلي:
c:>acunetixapiapitest.py
{'targets': [{'address': 'https://mytesting.net', 'continuous_mode': False, 'criticality': 10, 'deleted_at': None, 'description': 'Test OAuth2 Site', 'last_scan_date': '2020-07-10T12:02:58.153112+00:00', 'last_scan_id': 'ec27a320-2351-4b27-b6dd-34313dff9c1f', 'last_scan_session_id': 'bb3ad61a-2615-47ac-bcfb-4cb269521746', 'last_scan_session_status': 'completed', 'manual_intervention': False, 'severity_counts': None, 'target_id': 'e7260534-cfb7-4d30-bc18-a2ed0b0eead8', 'threat': None, 'type': None, 'verification': None}, {'address': 'http://testphp.vulnweb.com', 'continuous_mode': False, 'criticality': 10, 'deleted_at': None, 'description': 'test2', 'last_scan_date': None, 'last_scan_id': None, 'last_scan_session_id': None, 'last_scan_session_status': None, 'manual_intervention': None, 'severity_counts': None, 'target_id': '94c1fa22-8f0c-471e-9737-c199e57ad1fa', 'threat': None, 'type': 'demo', 'verification': 'demo'}, {'address': 'https://mytesting.net', 'continuous_mode': False, 'criticality': 10, 'deleted_at': None, 'description': 'Testing LSR only', 'last_scan_date': None, 'last_scan_id': None, 'last_scan_session_id': None, 'last_scan_session_status': None, 'manual_intervention': None, 'severity_counts': None, 'target_id': 'a67df446-dda1-4715-91f5-471add517fea', 'threat': None, 'type': None, 'verification': None}], 'pagination': {'count': 3, 'cursor_hash': '8f629dd49f910b9202eb0da5d51fdb6e', 'cursors': [None], 'sort': None}}
c:>
احصل على أحدث محتوى حول أمان الويب
في بريدك الوارد كل أسبوع.