<div> 

InQL Scanner

InQL Scanner是一款安全測試工具,也是一個Burp Suite擴展,在它的幫助下,廣大研究人員可以更好地對 GraphQL 技術進行安全審計。 InQL可以直接以腳本的方式單獨運行,或者以 Burp Suite 擴展的方式執行任務。

工具下載

廣大研究人員可以使用下列命令將InQL項目源碼克隆至本地:
git clone https://github.com/doyensec/inql.git

InQL單獨運行-腳本

在你的主機環境中安裝好Python環境之後,運行inql,腳本將會向目標GraphQL節點發送一個自檢查詢請求,並嘗試獲取下列元數據信息:
 1、Query/Mutation/Subscription;
 2、字段和參數;
 3、對象和自定義對象類型;
InQL可以檢查自省查詢的結果,並以不同的數據格式生成乾淨簡潔的文檔,支持的格式有HTML和JSON等。除此之外,InQL還可以根據所有已知基礎數據類型生成模板(可選佔位符)。 最終的結果HTML文檔頁面中將包含關於全部有效Query/Mutation/Subscription的詳細信息,樣例如下: 在下面給出的樣例圖中,顯示的是模板生成的使用:

工具幫助信息

如需查看InQL支持的所有選項參數,可以使用help命令查看:
usage: inql [-h] [-t TARGET] [-f SCHEMA_JSON_FILE] [-k KEY] [-p PROXY]
[--header HEADERS HEADERS] [-d] [--generate-html] [--generate-schema] [--generate-queries] [--insecure] [-o OUTPUT_DIRECTORY] InQL Scanner optional arguments: -h, --help            show this help message and exit -t TARGET             Remote GraphQL Endpoint (https://<Target_IP>/graphql) -f SCHEMA_JSON_FILE   Schema file in JSON format -k KEY                API Authentication Key -p PROXY              IP of web proxy to go through ( http://127.0.0.1:8080 ) --header HEADERS HEADERS -d                    Replace known GraphQL arguments types with placeholder values (useful for Burp Suite) --generate-html       Generate HTML Documentation --generate-schema     Generate JSON Schema Documentation --generate-queries    Generate Queries --insecure            Accept any SSL/TLS certificate -o OUTPUT_DIRECTORY   Output Directory

InQL Burp Suite擴展

從InQL的v1.0版本開始,InQL就已經支持以Burp Suite擴展的方式執行了。在這個模式下,該工具不僅擁有獨立腳本的全部功能,而且還可以藉助Burp Suite來給廣大研究人員提供更加便捷的用戶接口來執行查詢。 InQL的Burp Suite擴展模式有以下幾種功能特性:
 1、搜索查詢已知的GraphQL URL路徑,工具降火搜索和匹配已知的值來在目標站點內檢測GraphQL節點;
 2、搜索暴露在外的GraphQL開發控制檯(GraphiQL、GraphQL Playground和其他常見控制檯);
 3、使用自定義GraphQL標籤來顯示包含了GraphQL的每一個HTTP請求/響應;
 4、通過向Burp的Repeater工具發送請求來生成模板;
 5、通過使用自定義設置標籤來對工具進行配置; 
如果你想在Burp Suite中使用InQL,那麼你就需要導入Python擴展: 1、下載Jython Jar:【 點我下載 】; 2、開啓Burp Suite; 3、點擊Extender標籤 > 選項 > Python 環境 >設置Jython獨立Jar包地址; 4、點擊Extender標籤 > 擴展 > 添加 > 擴展類型 > 選擇Python; 5、下載最新版本的inql_burp.py:【 點我下載 】; 6、點擊擴展文件 > 設置inql_burp.py的地址 > 下一步; 7、如果一切配置妥當,此時的輸出結果應該爲:InQL Scanner Started!; 注意:之後我們會考慮將InQL擴展整合進Burp的BApp Store之中。

Burp擴展使用

InQL Burp擴展的使用非常簡單,我們只需要按照下列步驟操作即可: 1、在頂部的輸入窗口中,加載一個GraphQL節點,或加載一個JSON文件; 2、點擊“加載”按鈕; 3、等待幾秒鐘之後,左側的面板將會刷新所選目標節點的目錄結構,該目錄結構的參考樣例如下: 4、選擇Query/Mutation/Subscription中的任意一個,該工具將會在主文本域中顯示對應的模板;

項目地址

InQL Scanner:【 GitHub傳送門 * 參考來源: doyensec ,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM
相關文章