Nosqli:一款功能強(qiáng)大的NoSQL注入命令行接口工具
Nosqli
Nosqli是一款功能強(qiáng)大的NoSql注入命令行接口工具,本質(zhì)上來說,它就是一款NoSQL掃描和注入工具。Nosqli基于Go語言開發(fā),是一款易于使用的NoSql注入工具,并且提供了完整的命令行接口,而且支持安全研究人員根據(jù)自己的需要來進(jìn)行自定義配置。
該工具的運(yùn)行速度非常快,而且掃描結(jié)果準(zhǔn)確,具備高可用性。除此之外,其命令行接口的使用也非常簡(jiǎn)單。
功能介紹
Nosqli當(dāng)前支持針對(duì)MongoDB的NoSql注入檢測(cè),該工具目前可以執(zhí)行下列測(cè)試:
- 基于錯(cuò)誤的測(cè)試:注入各種字符和Payload,掃描已知的Mongo錯(cuò)誤響應(yīng);
- 布爾盲注測(cè)試:注入包含True/False參數(shù)的Payload,并嘗試判斷是否存在注入點(diǎn);
- 基于時(shí)間的測(cè)試:嘗試向目標(biāo)服務(wù)器注入時(shí)間延遲,并根據(jù)響應(yīng)判斷是否存在注入點(diǎn);
工具下載
廣大研究人員請(qǐng)直接訪問該項(xiàng)目的Releases頁(yè)面并現(xiàn)在對(duì)應(yīng)操作系統(tǒng)的最新版本Nosqli。下載完成后,安裝在指定路徑,或直接從本地文件目錄中運(yùn)行。

工具使用
廣大研究人員可以直接按照下列方式直接運(yùn)行注入命令或查看幫助信息。
- $ nosqli
- NoSQLInjector is a CLI tool for testing Datastores that
- do not depend on SQL as a query language.
- nosqli aims to be a simple automation tool for identifying and exploiting
- NoSQL Injection vectors.
- Usage:
- nosqli [command]
- Available Commands:
- help Help about any command
- scan Scan endpoint for NoSQL Injection vectors
- version Prints the current version
- Flags:
- --config string config file (default is $HOME/.nosqli.yaml)
- -d, --data string Specify default post data (should not include any injection strings)
- -h, --help help for nosqli
- -p, --proxy string Proxy requests through this proxy URL. Defaults to HTTP_PROXY environment variable.
- -r, --request string Load in a request from a file, such as a request generated in Burp or ZAP.
- -t, --target string target url eg. http://site.com/page?arg=1
- -u, --user-agent string Specify a user agent
- Use "nosqli [command] --help" for more information about a command.
- $ nosqli scan -t http://localhost:4000/user/lookup?username=test
- Running Error based scan...
- Running Boolean based scan...
- Found Error based NoSQL Injection:
- URL: http://localhost:4000/user/lookup?=&username=test
- param: username
- Injection: username='
大家可以使用存在漏洞的NodeJS應(yīng)用程序或其他的NoSql注入實(shí)驗(yàn)平臺(tái)來測(cè)試該工具的使用。
源碼構(gòu)建
如果大家想要自行動(dòng)手構(gòu)建源碼,或針對(duì)特定的平臺(tái)進(jìn)行源碼編譯,大家可以先按照下列方式將該項(xiàng)目源碼克隆至本地,然后安裝依賴,最后手動(dòng)構(gòu)建項(xiàng)目。這里要求設(shè)備上安裝好最新的Go開發(fā)遠(yuǎn)景,然后配置好GOPATH環(huán)境變量。
- $ git clone https://github.com/Charlie-belmer/nosqli
- $ cd nosqli
- $ go get ./..
- $ go install
- $ nosqli -h
運(yùn)行測(cè)試
該工具自帶了一個(gè)測(cè)試套件,研究人員可以在該項(xiàng)目根目錄下運(yùn)行g(shù)o test來進(jìn)行簡(jiǎn)單的注入檢測(cè):
- go test ./...
除此之外,Nosqli還提供了針對(duì)本地運(yùn)行的已知易受攻擊應(yīng)用程序來進(jìn)行注入的測(cè)試集。要使用集成測(cè)試,請(qǐng)安裝并運(yùn)行易受攻擊的NodeJS Mongo注入應(yīng)用程序,或者我提供的PHP Lab。接下來,我們需要在運(yùn)行命令時(shí)提供集成參數(shù):
- go test ./... -args -integrations=true
項(xiàng)目地址
Nosqli:【GitHub傳送門】