天天看點

位數固定可控字元的任意指令執行

文章目錄

    • 15長度:
    • 七個字元:
    • 五個字元的:
    • 四位的shell

15長度:

位數固定可控字元的任意指令執行

思路分兩種:

1 是直接寫

2 是從外部伺服器下載下傳 比如

位數固定可控字元的任意指令執行

限制字數沒有限制次數:

位數固定可控字元的任意指令執行

依次追加寫入就好了~~

位數固定可控字元的任意指令執行

七個字元:

p神寫的牛逼!

\切割的思路去實作:

位數固定可控字元的任意指令執行

shell如下:

為什麼要base64呢?

做開發第一個接觸的編碼方式就是Base64,當時是用url來傳輸一些參數,傳輸的兩端會用Base64來編碼和解碼,保證資料不被url轉義破壞。

位數固定可控字元的任意指令執行

shell和py 腳本如下:

位數固定可控字元的任意指令執行

四位和五位的情況:

五個字元的:

題目:

位數固定可控字元的任意指令執行

ls -t 為了讓 檔案名字可控,否則 是按 預設的檔案名排序的(字母順序)

位數固定可控字元的任意指令執行

是以 這個點不是很好構造。

位數固定可控字元的任意指令執行

預設排序是上面那個

思路是 直接生成 ls的檔案在後面追加

位數固定可控字元的任意指令執行

shell如下:

位數固定可控字元的任意指令執行
位數固定可控字元的任意指令執行

可以發現ls -t 沒有執行

因為沒有 加空格

是以在shell裡面 加上空格

位數固定可控字元的任意指令執行

四位的shell

需要擴充幾個知識點:

關鍵點在于 通配符:

位數固定可控字元的任意指令執行

相當于 把檔案名拼接成一句話去做指令執行:

位數固定可控字元的任意指令執行

星号加 指令 去實作 長指令的拼接:

位數固定可控字元的任意指令執行

知識點2

逆序的指令:

位數固定可控字元的任意指令執行

*的話 會直接 執行的

位數固定可控字元的任意指令執行

思路是這樣~~

位數固定可控字元的任意指令執行

無數字字母的shell

繼續閱讀