山東網(wǎng)站排行免費(fèi)的關(guān)鍵詞優(yōu)化軟件
別低頭,皇冠會(huì)掉;別流淚,賤人會(huì)笑。
0x01、XSS - Reflected (GET)
Low
輸入的內(nèi)容直接輸出到頁(yè)面中:
后臺(tái)服務(wù)端沒(méi)有對(duì)輸入的參數(shù)進(jìn)行過(guò)濾, 構(gòu)造一個(gè)注入xss payload即可:
<script>alert(1)</script>
成功彈窗
Medium
審查源碼可以發(fā)現(xiàn)服務(wù)端進(jìn)行了過(guò)濾, 但只是addslashes()函數(shù)而已(防sql注入), 依舊可以xss:
構(gòu)造一個(gè)注入xss payload即可:
<script>alert(1)</script>
成功彈窗
High
審查源碼可以發(fā)現(xiàn)將所有關(guān)鍵字轉(zhuǎn)換為HTML實(shí)體, 是安全的:
0x02、XSS - Reflected (POST)
和GET型一樣, 只是區(qū)別在于GET型的注入直接修改URL的請(qǐng)求即可, POST注入則需要要Post data構(gòu)造傳輸post請(qǐng)求:
GET型:
http://localhost:8080/bWAPP/xss_get.php?firstname=<script>alert(1)</script>
POST型:
成功彈窗
0x03、XSS - Reflected (JSON)
思考
當(dāng)查找movie:Iron Man成功時(shí), 就會(huì)提示找到:
當(dāng)查找movie:Iron 不成功時(shí), 就會(huì)將輸入的字符串顯示在界面上:
這就造成了可控變量的存在
Low
構(gòu)造一個(gè)注入xss payload即可:
<script>alert(1)</script>
錯(cuò)誤信息直接爆出來(lái)了…
可以看出來(lái)是Json注入,
嘗試注入json數(shù)據(jù):
{"result": "<script>alert(1)</script>"}
發(fā)現(xiàn)不行;
再看報(bào)錯(cuò)信息, 繼續(xù)嘗試閉合吧:
"}]}'; <script>alert(1)</script> //
發(fā)現(xiàn)不行, 查看HTML源碼, 發(fā)現(xiàn)閉合出去之后是處于script之間的:
知道原因之后就簡(jiǎn)單了:
"}]}'; alert(document.cookie) //
成功進(jìn)行json注入
Medium&High
將所有關(guān)鍵字轉(zhuǎn)換為HTML實(shí)體, 安全:
0x04、XSS - Reflected (AJAX/JSON)
通過(guò)嘗試可以發(fā)現(xiàn)本頁(yè)面是xss_ajax_2-1.php, 通過(guò)Ajax調(diào)用xss_ajax_2-2.php完成查詢:
Low&Medium
有兩種方法:
第一種方法:在頁(yè)面內(nèi)直接輸入XSS的Payload即可
<img src=x onerror=alert(1)>
成功彈窗
在xss_ajax_2-2.php?title=頁(yè)面也可以直接輸入Payload
High
high等級(jí)利用了json的解析:
在輸入框中注入是直接以字符串的形式輸出的, 不會(huì)作為html元素或者js執(zhí)行,
原因就在于xss_ajax_2-2.php中對(duì)輸入進(jìn)行了HTM實(shí)體編碼:
0x05、XSS - Reflected (AJAX/XML)
和上一題一樣, 同樣通過(guò)Ajax跳轉(zhuǎn)到另一個(gè)php解析,
發(fā)現(xiàn)是xml解析:
Low&Medium
payload:
<a xmlns:a='http://www.w3.org/1999/xhtml'><a:body onload='alert(1)'/></a>
xmlns是XML Namespaces的縮寫,
當(dāng)加載網(wǎng)站的時(shí)候執(zhí)行alert(1)
Medium
源碼中使用了addslashes()函數(shù)來(lái)進(jìn)行過(guò)濾,因?yàn)橛修D(zhuǎn)義,所以該函數(shù)無(wú)效。payload仍可行
High
源碼中使用了htmlspecialchars()函數(shù)來(lái)進(jìn)行過(guò)濾
0x06、XSS - Reflected (Back Button)
點(diǎn)擊Go back按鈕,
頁(yè)面會(huì)Header到上一個(gè)界面:
由于剛剛從上一題到這題, 點(diǎn)擊按鈕之后就返回了上一個(gè)頁(yè)面
Low
分析源碼, 看到是利用了Referer來(lái)進(jìn)行相應(yīng)地跳轉(zhuǎn):
閉合繞過(guò)
觀察, 發(fā)現(xiàn)可以閉合繞出input標(biāo)簽, 然后加xss:
構(gòu)造payload:
Referer:'"><script>alert(1)</script>
成功彈窗
High
將所有關(guān)鍵字轉(zhuǎn)換為HTML實(shí)體, 安全:
0x07、XSS - Reflected (Custom Header)
有的web會(huì)加上自定義的http字段信息, 且沒(méi)有做好過(guò)濾
Low
直接在Http頭中加入bWAPP字段信息:
payload:
bWAPP:<script>alert(1)</script>
成功彈窗
Medium
由于采用了addslashes()函數(shù)轉(zhuǎn)義單引號(hào)等字符, 但是仍可以xss注入
High
將所有關(guān)鍵字轉(zhuǎn)換為HTML實(shí)體, 安全:
0x08、XSS - Reflected (Eval)
Low&High
很明顯的一個(gè)執(zhí)行函數(shù)eval(), 通過(guò)參數(shù)date傳入可執(zhí)行的js:
構(gòu)造payload:
http://localhost:8080/bWAPP/xss_eval.php?date=alert(1)
Medium
不影響js代碼的執(zhí)行
0x09、XSS - Reflected (HREF)
web流程大致是先輸入姓名, 再進(jìn)行電影投票:
Low
分析
觀察名字被寫入了頁(yè)面中:
于是直接在輸入名字的地方xss:
發(fā)現(xiàn)在p標(biāo)簽中:
構(gòu)造payload:
</p> <script>alert(1)</script>
成功閉合
再者, 注意到鏈接處也可以閉合繞出:
構(gòu)造payload:
1>Vote</a> <script>alert(1)</script>
成功閉合
Medium&High
源碼中使用了urlencode()函數(shù)來(lái)進(jìn)行過(guò)濾。
0x0A、XSS - Reflected (Login Form)
Low
開(kāi)始先xss盲打一下:
不行, 輸入單引號(hào), 嘗試sql注入:
發(fā)現(xiàn)單引號(hào)后面的內(nèi)容(123)被輸出到頁(yè)面上, 并且應(yīng)該是沒(méi)做過(guò)濾的。
于是在單引號(hào)后面xss:
構(gòu)造payload:
bee' 123 <script>alert(1)</script>
成功彈窗
Medium
使用了addslashes()函數(shù)來(lái)進(jìn)行過(guò)濾,因?yàn)橛修D(zhuǎn)義,所以該函數(shù)無(wú)效。
High
用了htmlspecialchars()函數(shù)來(lái)進(jìn)行過(guò)濾。
0x0B、XSS - Reflected (Referer)
和0x06那關(guān)一樣, 抓包修改Referer即可。
0x0C、XSS - Reflected (User-Agent)
同理, 抓包修改User-Agent即可。
0x0D、 XSS - Stored (Blog)
同 SQL Injection - Stored (Blog)
0x0E、XSS - Stored (Change Secret)
xss盲打
先把密碼修改為xss的payload:
<script>alert('hack')</script>
修改成功
進(jìn)入SQL Injection (Login Form/User)
然后當(dāng)用戶登錄的時(shí)候, 就會(huì)觸發(fā)xss:
修改前端代碼
觀察前端, 發(fā)現(xiàn)有一個(gè)隱藏的input標(biāo)簽:
將type改為text, 然后在其中輸入繞出閉合即可xss:
123"> <script>alert(1)</script>
隱藏標(biāo)簽會(huì)顯示出來(lái)
成功彈窗
Medium
使用了addslashes()函數(shù)來(lái)進(jìn)行過(guò)濾,因?yàn)橛修D(zhuǎn)義,所以該函數(shù)無(wú)效。
High
用了htmlspecialchars()函數(shù)來(lái)進(jìn)行過(guò)濾。
0x0F、XSS - Stored (User-Agent)
同 SQL Injection - Stored (User-Agent)
文筆生疏,措辭淺薄,望各位大佬不吝賜教,萬(wàn)分感謝。
免責(zé)聲明:由于傳播或利用此文所提供的信息、技術(shù)或方法而造成的任何直接或間接的后果及損失,均由使用者本人負(fù)責(zé), 文章作者不為此承擔(dān)任何責(zé)任。
轉(zhuǎn)載聲明:儒道易行 擁有對(duì)此文章的修改和解釋權(quán),如欲轉(zhuǎn)載或傳播此文章,必須保證此文章的完整性,包括版權(quán)聲明等全部?jī)?nèi)容。未經(jīng)作者允許,不得任意修改或者增減此文章的內(nèi)容,不得以任何方式將其用于商業(yè)目的。
CSDN:
https://rdyx0.blog.csdn.net/公眾號(hào):儒道易行
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect博客:
https://rdyx0.github.io/先知社區(qū):
https://xz.aliyun.com/u/37846SecIN:
https://www.sec-in.com/author/3097FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85