命令注入-命令的連線符【‘&’‘&&’‘||’‘|’】的含義及其用法
一、各個連線符的含義
a && b
:代表首先執行前者命令a再執行後命令b,但是前提條件是命令a執行正確才會執行命令b,在a執行失敗的情況下不會執行b命令。所以又被稱為短路運算子。
(前面的命令執行成功後,它後面的命令才被執行)
a & b
:代表首先執行命令a再執行命令b,如果a執行失敗,還是會繼續執行命令b。也就是說命令b的執行不會受到命令a的干擾。
(表示簡單的拼接,A命令語句和B命令語句沒有制約關係)
a || b
:代表首先執行a命令再執行b命令,如果a命令執行成功,就不會執行b命令,相反,如果a命令執行不成功,就會執行b命令。
(前面的命令執行失敗,它後面的命令才被執行)
a | b
:代表首先執行a命令,再執行b命令,不管a命令成功與否,都會去執行b命令。
(=當第一條命令失敗時,它仍然會執行第二條命令,表示A命令語句的輸出,作為B命令語句的輸入執行。==)
二、用法演示
以下結果皆由DVWA靶場中low的命令注入模組進行演示
1.a && b
輸入
127.0.0.1&&net user
可以看到執行了a命令和b命令
接著輸入:
127.0.0.11111&&net user
因為a命令為假,所以b命令並沒有被執行。
2.a & b
輸入
127.0.0.1&net user
命令a和命令b都成功被執行了。我們接著輸入
127.0.0.11111&net user
雖然a命令為假,但b命令仍然被執行。接著輸入
127.0.0.1&net userss
可以看到,當b為假時,a也被執行。
所以a & b
兩者之間沒有制約關係,互不影響。
3.a || b
輸入
127.0.0.1||net user
看到只執行了a,沒有執行b。接著輸入
127.0.0.11111||net user
看到a為假,但是b被執行了。
所以a || b
:前面的命令執行失敗,它後面的命令才被執行。
4.a | b
輸入
127.0.0.1|net user
可以看到即使a命令是對的,但是並沒有被執行,執行的是b。接著輸入:
127.0.0.111111|net user
當a為假,還是隻執行b命令。
所以a | b
:不管a命令成功與否,都會去執行b命令。
本站所有文章均為原創,歡迎轉載,請註明文章出處: https://blog.csdn.net/weixin_43847838/article/details/111602811.。百度和各類採集站皆不可信,搜尋請謹慎鑑別。技術類文章一般都有時效性,本人習慣不定期對自己的博文進行修正和更新,因此請訪問出處以檢視本文的最新版本。
相關文章
- Shell命令列中的特殊字元及其轉義(去除特殊含義)命令列字元
- package.json 中的版本號,符號 ~ 與 ^ 的區別及其他符號的含義PackageJSON符號
- linux top命令欄位含義Linux
- echo命令在Unix中的作用以及其常見用法?
- css詳解position五種屬性用法及其含義CSS
- 命令列中常見命令用法及explainshell.com的用法命令列AI
- useradd 命令的常見用法
- linux 中 date命令的用法Linux
- nslookup命令的常見用法
- linux useradd命令的基本用法Linux
- Linux中的特殊符號含義及作用!Linux符號
- 轉載:UML類圖中箭頭和線條的含義和用法
- windows 通過cmd命令(netsh wlan命令)連線wifiWindowsWiFi
- iwpriv命令用法
- 兩個高效的cp 命令用法!
- rocky與linux的nmcli命令用法Linux
- traceroute命令的用法例項分享
- 什麼是命令注入?如何形成的?
- nohup 命令及其示例
- find 命令及其示例
- screen 命令及其示例
- rsync 命令及其示例
- uniq 命令及其示例
- 在 Linux 上自定義 bash 命令提示符Linux
- Promise含義及基本用法Promise
- Python 中 key 引數的含義及用法Python
- Python中key引數的含義及用法Python
- Linux 命令列下連線WiFiLinux命令列WiFi
- 三類遠端連線命令
- 命令列遠端連線mysql命令列MySql
- 在命令列中連線mysql命令列MySql
- PfSense命令注入漏洞分析
- linux命令下jq的用法簡介Linux
- Linux sed命令用法Linux
- git grep命令用法Git
- git show命令用法Git
- 【SHELL】grep 命令用法
- linux 命令符變數Linux變數