论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
前端开发
›
DVWA——XSS注入复现
DVWA——XSS注入复现
张国伟
金牌会员
|
2024-11-5 09:34:57
|
显示全部楼层
|
阅读模式
楼主
主题
819
|
帖子
819
|
积分
2457
DVWA——XSS复现
一、预备知识
在对DVWA靶场漏洞复现前,先了解一下XSS漏洞的相关知识
XSS漏洞原理
攻击者使用它向网页中注入恶意的客户端脚本,使得用户在访问页面时执行这些恶意脚本,从而达到攻击的目的。这种攻击通常使用了网站未对用户输入进行充分过滤或转义的环境。
XSS的攻击方式分为三种,分别是:分别为反射型(Reflected),存储型(Stored)和DOM型。
反射型xss
:只是简单地把用户输入的数据反射给浏览器,简单来说,黑客每每必要用户诱使用户点击一个恶意链接,才气攻击乐成。(经后端,不经数据库)
存储型XSS
:将用户输入的数据存储在服务器端。用户访问了带有xss得页面代码后,产生安全题目。(经后端和数据库)
DOM XSS
:通过修改页面的DOM节点形成的XSS。客户端的脚本步伐可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端得到DOM中的数据在当地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。一样寻常是浏览器前端代码进行处理。(不经过后端,是基于文档对象模型的一种漏洞,是通过url传入参数去控制触发的)
常见的根本过滤绕过方法
空格过滤
当空格被过滤时,我们无法通过构造正常恶意的JavaScript语句来进行。我们可以使用/来取代空格,通常可以用/**/,注释符号绕过;/符号绕过;
<img/src="x"/οnerrοr=alert(1);>
复制代码
引号过滤
如果是html标签中,我们可以不消引号。如果是在js中,我们可以用反引号取代单双引号;
<img src=x onerror=alert(`xss`);>
复制代码
3.括号过滤
当括号被过滤的时候可以使用throw来绕过。throw 语句用于当错误发生时抛出一个错误;
<img src=x onerror="javascript:window.onerror=alert;throw 1">
或 <aοnmοuseοver="javascript:window.οnerrοr=alert;throw 1>
复制代码
4.关键字过滤
关键字绕过可以分为大小写绕过、双写绕过;
大小写绕过
<sCRiPt>alert(1);</sCrIpT>或
<ImG sRc=x onerRor=alert(1);>
复制代码
双写绕过(此环境适应于当WAF策略对于前端输入的
<sc<script>ript>alert('xss')</script>或<imimgg srsrcc=x onerror=alert(1);>
复制代码
5.闭合标签绕过
></option></select><img src=x:alert(alt) οnerrοr=eval(src) alt=xss>
复制代码
6.组合绕过
通过组合上述绕过方式构造较为复杂的方式
</option></select><img src=x:alert(alt) οnerrοr=eval(src) alt=xss>
复制代码
二、漏洞复现
2.1. XSS(DOM)复现
①low等级
在low级别中源码没有对任何限制,所以我们可以直通目标在url中直接构造出正常的绕过方式
<script>alert('hello young man');</script>
复制代码
②medium等级
在medium等级中,防范策略升级为了限制<script字符串是否存在来判别是否为恶意的XSS攻击。所以我们在low等级中构造的就失效了。
我们使用img标签来进行实验是否能进行绕过,可以看到img标签确实以及被插入但并没有在页面中表现出我们想要的效果。
使用F12查看源码,可以看到对应的select标签里只答应内嵌option标签,而我们使用的img标签是不可以或许嵌套我们构造的img标签的,所以我们必要使用闭合标签的绕过方式来实现绕过。
实现方式有两种
</option></select><svg onload=alert(/xss/)>
复制代码
</option></select><img src=x onerror=alert(`xss`);>
复制代码
原理就是将option的标签绕过然后就能随意进行XSS注入了。
③high等级
分析源码,可以看到high等级使用了白名单过滤,只有下面属于的四个内容才会被执行。找方法绕过服务器端的处理,直接在当地运行我们构造的语句,可以通过“#”来注释掉后面的内容,因为URL栏中的“#”之后的内容不会被发送到服务器当中去,不会经过JS的过滤,只在客户端表现,可以直接与浏览器进行交互。
所以执行代码如下
#<script>alert('xss');</script>
复制代码
2.2. XSS(Reflected)复现
①low等级
low等级中它没有对name的客户端输入值进行任何限制所以我们直接输入正常的XSS注入语句就可以注入乐成
<script>alert('xss');</script>
复制代码
②medium等级
通过代码分析medium等级是对name输入的值进行了检查,去查找php语言中关于str_replace函数的使用可以得它的函数作用是将
<sc<script>ript>alert('hello')</script>
复制代码
当然也可以使用大写绕过完成XSS
<Script>alert(' hello ')</script>
复制代码
③high等级
在high等级中,可以看到它使用了PHP 中的 preg_replace() 函数,通过正则表达式实验从 $_GET[‘name’] 中移除包罗
<img src = 1 onerror = alert(/xss/)>
复制代码
<svg onload=alert(/xss/)>
复制代码
④impossible等级
在impossible等级中,它不但使用了session_token作为防止多次CSRF攻击的防御步伐,还使用了htmlspecialchars函数,将输入的script、img、svg等标签直接转义为JavaScript无法读取的语言来杜绝了出现XSS攻击的可能。
2.3. XSS(Stored驻留型)复现
记得每次进行攻击时必要将留言板内容清空,因为如果你乐成注入后会直接在服务器中存入脚本长期驻留所以我们必要清理相关环境才气查看在差别等级中真正完成注入攻击了
①low等级
老道理,分析源码。留言板XSS中它们使用mysqli_real_escape_string函数来对Name、Message变量中的特殊字符转义;除了对Name的输入进行了十个字符的限制(因为在对其进行常规的留言板输入中有字数限制,查看F12源码可以看到)没有对Name和Message进行其他任何限制,我们可以在这里进行随意的XSS注入,例如:
<script>alert('hello young man')</script>
复制代码
<svg onload=alert(/xss/)>
复制代码
按照常理来说在low等级中没有对Name做任何限制是应该可以或许对其进行同样的XSS攻击的,查看别人的博客得知前端页面中返回给后端的Name的值是没有限制的,所以我们可以通过更改Name的maxlenth的值来对它进行XSS攻击实现
②medium等级
源码分析开始,可以很明显看到对于message已经做了在ReflectedXSS中对于用户输入的转义,即我们已经无法对Message模块进行XSS攻击的操作了,但是对Name仅仅限制了script的标签,因此我们仍旧可以在Name中使用大写、双写、使用其他标签等方法来进行注入。
所以我们通过low等级中更改Name的maxlenth的值来突破前端页面临于Name输入的限制我们就可以实现它的XSS注入
③high等级
可以看到high等级中,对于Name的限制从str_replace函数简单限制script标签变成了通过正则表达式实验从 $_GET[‘name’] 中移除包罗 script 的任何字符串。但是它只是对script标签进行判别并没有对ima、svg等标签进行判别,所以我们就可以在修改Name输入值的根本上在Reflected的high等级中的方式对其进行XSS注入就可以实现辣。
④impossible等级
不消看都可以知道impossible等级应该是对Name和Message输入进行了转义处理使其不能被JavaScript识别(因为htmlspecialchars函数是对于如今主流的XSS注入攻击防御行之有效的方式之一)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
张国伟
金牌会员
这个人很懒什么都没写!
楼主热帖
XAF新手入门 - 类型子系统(Types Info ...
MyBatis 查询数据库
JAVA 装箱拆箱--到底指什么呢? ...
ThinkPHP5 远程命令执行漏洞
HarmonyOS(鸿蒙)开发一文入门 ...
浅入浅出 1.7和1.8的 HashMap
RabbitMQ入门 -- 阿里云服务器安装Rabb ...
Prometheus配置Basic Auth进行安全防护 ...
红日安全内网渗透靶场-VulnStack-1 ...
哈工大软件构造Lab3(2022)
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表