iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
Security

學分的追逐,資安的啟程系列 第 21

Day 21 XSS (二) -- Reflected XSS

  • 分享至 

  • xImage
  •  

今天來用我們前幾天下載的 DVWA 進行 XSS 實戰吧!

登入 DVWA

https://ithelp.ithome.com.tw/upload/images/20231006/20162775uHU57ZjE1s.png

到 Security 把 level 調到 LOW

這裡可以調整網站的安全等級

https://ithelp.ithome.com.tw/upload/images/20231006/2016277551M93b4aNN.png

就可以開始實戰了!

LOW

來到 XSS (Reflected) 我們會看到

https://ithelp.ithome.com.tw/upload/images/20231006/20162775kcNs8GKANE.png

https://ithelp.ithome.com.tw/upload/images/20231006/2016277596IFyiqknT.png

先輸入一點東西看看
https://ithelp.ithome.com.tw/upload/images/20231006/20162775kriwkeD8dZ.png

這裡輸入"test" ,會發現有一行 "Hello test" 跳出來了,上面 URL 也多出了一個參數 name

https://ithelp.ithome.com.tw/upload/images/20231006/20162775QP2cKn67Za.png

透過 F12 我們可以發現 "Hello test" 的字串好像是直接插入進頁面的

右下角的按鈕可以看 source code 或 help

https://ithelp.ithome.com.tw/upload/images/20231006/20162775fZyXuhwsRc.png

soucre code

https://ithelp.ithome.com.tw/upload/images/20231006/20162775xsNtVFaoZv.png

他沒有過濾就直接把字串接起來

所以可以直接輸入

https://ithelp.ithome.com.tw/upload/images/20231006/20162775Pwhi61YcP7.png

或是在URL打
https://ithelp.ithome.com.tw/upload/images/20231006/20162775h57bEADmLz.png

XSS 成功 !!!

https://ithelp.ithome.com.tw/upload/images/20231006/20162775RWHymrD8IT.png

https://ithelp.ithome.com.tw/upload/images/20231006/20162775v4mbkKXIem.png

Medium

接下來把 level 調到 Medium

試一下剛才的 payload <script>alert(1)</script>

https://ithelp.ithome.com.tw/upload/images/20231006/20162775vaYGPhBIyS.png

沒有用了

看一下 soucre code

https://ithelp.ithome.com.tw/upload/images/20231006/20162775SWUaBuzfnz.png

str_replace()

他利用 str_replace()<script> 替換成空字元了
沒事我們還有辦法, 我們可以繞過他,由於HTML是個弱型別語言,所以就算標籤的大小寫錯誤也還是可以正常執行

https://ithelp.ithome.com.tw/upload/images/20231006/20162775fVTKTHBu1o.png

XSS 成功 !!!

https://ithelp.ithome.com.tw/upload/images/20231006/20162775JS6Kwh34oZ.png

High

接下來把 level 調到 High

我們直接來看 soucre code

https://ithelp.ithome.com.tw/upload/images/20231006/20162775q3npa1FJNg.png

preg_replace 用法

糟糕他這次防的更深了,只要我有<script>,不論大小寫,一律替換成空白

既然這樣那就不用 <script>

還記得那些可以觸發的 javascript 事件嗎

我們改用 <img> 試試

<img src="" onerror="alert(1)">

XSS 成功 !!!

https://ithelp.ithome.com.tw/upload/images/20231006/20162775eCCv2L3GtW.png

https://ithelp.ithome.com.tw/upload/images/20231006/20162775A0URwYkQW6.png

Impossible

接下來把 level 調到 Impossible (不可能)

一樣來看 source code

https://ithelp.ithome.com.tw/upload/images/20231006/20162775mB76KPeSph.png

htmlspecialchars()

htmlspecialchars() 可以把一些特殊字元換成 HTML 的實體符號

https://ithelp.ithome.com.tw/upload/images/20231006/20162775y7gP69OOh8.png

這樣才是防範 XSS 比較好的方式

參考資料

https://www.runoob.com/php/


上一篇
Day 20 XSS (一)
下一篇
Day 22 XSS (三) -- Stored XSS
系列文
學分的追逐,資安的啟程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言