在發(fā)送payload時(shí)瀏覽器會(huì)自動(dòng)對一些特殊字符進(jìn)行url編碼,服務(wù)器端會(huì)自動(dòng)進(jìn)行一次解碼。具體情況如下:
- 普通字符(a-z,1-9等)無需url編碼
- !@¥%*(){}<>\t(空格)等字符會(huì)自動(dòng)進(jìn)行url編碼其中GET方法只對<>\t(空格)進(jìn)行了編碼,POST對所有字符進(jìn)行了編碼。通過測試發(fā)現(xiàn)這些字符即使不進(jìn)行編碼也可以正常傳輸
- &#,這些很特殊,他們在url中都有特殊含義,正常情況下是不會(huì)被瀏覽器編碼以發(fā)揮自身作用。但是如果想要得到對應(yīng)的字符那就進(jìn)行url編碼
注:當(dāng)我們想要發(fā)送的命令包含有特殊字符時(shí)可以考慮進(jìn)行倆編碼,如果是滲透linux系統(tǒng)還可以考慮使用base64編碼。
bash -c '{echo,base64編碼的命令}|{base64,-d}|{bash,-i}'