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

posted @ 2021-05-21 15:34  51component技术交流  阅读(117)  评论(0编辑  收藏  举报