WAF集成:Acunetix和FortiWeb
Acunetix API使您有机会自动化任务以提高效率,尤其是在您可以加速与工作流其他组件的集成功能时。在此示例中,我们将在上一篇文章的基础上,向您展示如何在Bash脚本中使用Acunetix API:使用Bash和Acunetix API管理扫描。我们将代码添加到该Bash脚本中,以实现以下自动化:
在本文中,我们将添加该Bash脚本以实现以下自动化过程:
在Acunetix中: 触发创建导出文件以随后导入到WAF中 监视导出状态,直到完成 下载导出文件 在FortiWeb中 创建规则时上载导出 先前我们为另一个WAF显示了相同的过程:F5 BigIP ASM。
脚本添加的剖析 脚本添加遵循以下结构:
Acunetix API任务 导出文件的生成被触发 创建一个循环,每10秒检查一次导出文件生成的状态,并等待状态变为“完成” 导出文件已下载 WAF API任务 在FortiWeb同时创建规则的同时,导出和导入导出文件 Bash脚本添加
... previous script above this line
Declare Variables for Acunetix
ExportTypeID="21111111-1111-1111-1111-111111111118" # FortiWeb via ScanResultID
Declare Variables for FortiWeb
MyWAFUser="admin" MyWAFPass="adminpass123%" MyWAFADOM="root" MyWAFURL="https://192.168.72.128:90/api/v1.0" MyHdrWAFAuth=echo "Authorization:"\echo $MyWAFUser:$MyWAFPass:$MyWAFADOM | base64`` MyHdrForm="Content-Type: multipart/form-data"
MyExportResult=curl -i -sS -k -X POST $MyAXURL/exports -H "Content-Type: application/json" -H "X-Auth: $MyAPIKEY" --data "{\"export_id\":\"$ExportTypeID\",\"source\":{\"list_type\":\"scan_result\",\"id_list\":[\"$MyScanResultID\"]}}"
MyExportID=echo "$MyExportResult" | grep -Po '"report_id": *\K"[^"]*"' | tr -d '"'
while true; do MyExportStatus=curl -sS -k -X GET "$MyAXURL/exports/{$MyExportID}" -H "Accept: application/json" -H "X-Auth: $MyAPIKEY"
if [[ "$MyExportStatus" == *""status": "processing""* ]]; then echo "Export Status: Processing - waiting 10 seconds" elif [[ "$MyExportStatus" == *""status": "queued""* ]]; then echo "Export Status: Queued - waiting 10 seconds" elif [[ "$MyExportStatus" == *""status": "completed""* ]]; then echo "Export Status: Completed" # Break out of loop break else echo "Invalid Export Status: Aborting" # Clean Up and Exit script cleanup exit 1 fi sleep 10 done
MyExportFile=echo $MyExportStatus | sed 's/.*\[ \"\/api\/v1\/reports\/download\/\([^]]*\)\" \].*/\1/g' echo "Export File: $MyExportFile"
Download Export File from Acunetix
Dummy=curl -sS -k "$MyAXURL/reports/download/$MyExportFile" -o $MyExportFile
MyExportFilePath=readlink -f $MyExportFile
Import Scan File to WAF
MyWAFResult=curl -sS -k -X POST "$MyWAFURL/WebVulnerabilityScan/ScannerIntegration/ScannerIntegration?action=import" -H "$MyHdrWAFAuth" -H "$MyHdrForm" -F "fileName=@$MyExportFilePath" -F "autoGenerate=true" -F "profileType=inline" -F "mergetoRule=false" -F "inlineRuleName=AcunetixScanResults" -F "high=deny" -F "medium=alert" -F "low=alert" -F "scannerType=acunetix" -F "importMethod=xml" -F "adomName=$MyWAFADOM"
echo "WAF Import Result" echo "=================" echo $MyWAFResult | jq
————————————————
版权声明:本文为CSDN博主「kevin20182019」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kevin20182019/article/details/117120417