今天便要來解新的一周內容啦! 這周的主題是XSS,但是......老實說我有點不太確定webgoat的XSS到底能不能寫那麼多篇,所以後面可能會加上Path traversal(路徑遍歷)來完成整個injection大章
XSS主要是滲透者靠網頁程式設計時留下的漏洞,從而讓瀏覽器(前端)執行不該執行的指令的一種手法
使滲透者能夠做到以下事情

這裡便是要讓我們體驗一下讓網頁替你執行指令是甚麼感覺了
讓我們在F12裡面的Console打
alert(document.cookie);

會發現瀏覽器真的打開了一個小視窗,代表他真的執行了我們要的指令
如果真的想要讓瀏覽器替你報出你的cookie的話
可以先到Storage,接著點Cookie,把HTTPOnly裡面的值從True改成False就能了


這是因為HttpOnly算是一個安全屬性,能夠把你的cookie給鎖定,讓前端的JavaScript無法讀取到他
接下來,我們照題目要求的再開一個相同的視窗並打一次指令

可以看到cookie和上一個頁面是一樣的,跟題目描述的一樣
滲透者會傳送給受害者一個惡意URL,受害者點下後會向網頁發送含有惡意腳本的請求,網頁後端若沒有做好檢查並直接回傳,回傳的內容便會被遊覽器認定成要執行的程式碼,從而造成危害

這關的目標是讓我們嘗試利用網頁來讓我們的瀏覽器執行指令
既然他已經幫我們填好了卡號和訪問碼,那就來使用看看吧

可以看到網頁除了計算了我們買東西的總價外,還回傳了我們的卡號
既然有回傳的東西,那我們就在卡號的輸入格試試看吧
<script>alert("owob")</script>

可以看到我們成功執行了指令,跳出了小視窗和owob
前後的<script></script>是因為我們現在不在console
要加入這兩個Html標籤瀏覽器才會把他們當成要執行的指令
喔對,這裡還有一個小彩蛋
如果輸入的地方不是卡號,而是訪問碼的話......

總而言之,今天我們學到了XSS是甚麼,可能造成甚麼危害,以及Reflected XSS(反射式XSS)的運作方式