反射型
Low
直接输入<script>alert(/xss/)</script>
就可以发现弹窗
Medium
检查源码 可以看到网站对输入字符进行了过滤,尝试双写绕过,构造
<scr<script>ipt>alert(/xss/)</script> 输入进行尝试,弹窗xss说明ok!另一种方法就是大小写混写 构造一个 <Script>alert(/xss/)</Script>,成功,说明攻击成功!
High
先输入<Script>alert(/xss/)</Script>发现不管用了,然后打开源码,发现网站利用函数
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
过滤了字符,使得上面两种方法失效了。虽然无法使用标签注入XSS代码,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。下面构造语句
<img src="" οnerrοr="alert('XSS')">  成功。
Impossible
核心代码: $name = htmlspecialchars( $_GET[ 'name' ] );

总结: htmlspecialchars 函数可以有效防止反射性xss
存储型
Low
查看源码,可以看出并没有防范xss的措施,直接在message框里面写入<script>alert(/xss/)</script>,成功执行。
Medium
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签。
addslashes() 函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了字符串,仍然存在存储型的XSS。打开burp抓包,1.把name改成<sc<script>ript>alert(/xss/)</script>。Go 成功!2.大小写混淆绕过,改成<Script>alert(/xss/)</script>
High
打开源码可以看到,这里使用正则表达式过滤了标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS。老办法,抓包改name参数为

<img src=1 οnerrοr=alert(1)> 或者<img src="" οnerrοr="alert('XSS')">  成功弹窗
Impossible

打开源码,可以看到,通过使用htmlspecialchars函数,解决了XSS,但是要注意的是,如果htmlspecialchars函数使用不当,攻击者就可以通过编码的方式绕过函数进行XSS注入,尤其是DOM型的XSS。
想法:
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
• & (和号)成为 &
• " (双引号)成为 "
• ' (单引号)成为 '
• < (小于)成为 <
• > (大于)成为 >
提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
那么如果在有转义的地方,可不可以用decode这个函数转回字符,可以继续攻击呢?欢迎交流!
DOM型xss
low

default=<script>alert('xss')</script>弹窗

Medium

></option></select><img src=1 οnerrοr=alert('hack')>

High

URL中#号之后的内容,不会被提交到服务器,可以直接与浏览器进行交互
default=English#<script>alert(1)</script>

转载于:https://www.cnblogs.com/ly584521/p/10595651.html

dvwa学习笔记之xss相关推荐

  1. 【安全牛学习笔记】xss跨站

    xss跨站解释 xss类型分类      xss***手法      模拟一次xss*** 简述 跨站脚本***(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息.***者通过在链接中插入恶意代码, ...

  2. XSS学习笔记:XSS Challenges 1-19通关全详解

    前言 学习下XSS 主要是XSS Challenges 平台 共19关 模仿真实xss挖洞的情景,用浏览器中的f12中搜索,找出我们控制的代码所在的位置 思考那些个位置哪个或哪几个位置可以被注入我们想 ...

  3. XSS学习笔记:XSS Game(xss.pwnfunction.com)1-11通关全解

    前言 继续学习XSS 本篇是XSS Game平台的通关全解 1.Ma Spaghet! 源码 一个不安全的方式 直接get传输somebody 输入123看看位置 ?somebody=123 那就很简 ...

  4. 若依学习笔记08——Xss

    参考文章 若依源码学习8:防XSS攻击以及全局异常处理_小宇哥x的博客-CSDN博客_若依xss Xss简介 XSS (Cross Site Scripting)中文名称为:跨站脚本攻击.XSS的重点 ...

  5. 学习笔记之xss原理篇

    什么是xss XSS又叫CSS (Cross Site Script) ,跨站脚本***.它指的是恶意***者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会 ...

  6. DVWA学习之XSS(跨站脚本攻击)(超级详细)

    DVWA学习之XSS XSS 跨站脚本攻击 0x01 XSS(Cross Site Script)简介 0x02 何为XSS 0x03 XSS存在的原因 0x04 XSS漏洞的危害 0x05 XSS ...

  7. Dvwa之暴力破解全级别学习笔记

    暴力破解 暴力破解也可称为穷举法.枚举法,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为止.设置长而复杂的密码.在不同的地方使用不同的密码.避免使用个人信息作为密码.定期修改密码等 ...

  8. Dvwa之SQL盲注全级别学习笔记

    SQL盲注 盲注是SQL注入的一种,相比于常规的SQL注入,盲注一般不会返回数据库的数据信息或者语句提示.只会返回管理员设定的特定信息. SQL盲注-测试流程 同样的,和之前DVWA的普通SQL In ...

  9. 【白帽子学习笔记11】DVWA Brute Force【暴力破解】

    [白帽子学习笔记11]DVWA Brute Force Brute Force 就是暴力破解的意思,尝试常用的用户名和必然然后使用工具一个一个的去尝试 LOW级别 通过解析源码我们可以发现代码没有任何 ...

  10. 《Metasploit渗透测试魔鬼训练营》学习笔记

    Metasploit渗透测试魔鬼训练营学习笔记 法律常识 <中华人民共和国网络安全法>已由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议于2016年11月7日通过,现予公布 ...

最新文章

  1. GD项目回顾总结之预热
  2. 玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制
  3. java 蓝桥杯算法训练 连续正整数的和(题解)
  4. 少年不懂鲁迅,如今才知道,我们都是闰土
  5. 运营商回应 5G 商用放号推迟;iPhone 或推出渐变色;GoLand 2019.2.1 发布 | 极客头条...
  6. SQL SERVER 跨服务器连接
  7. Java定时任务中间表,mysql 通过定时任务更新中间表
  8. How to scale the BERT Training with Nvidia GPUs?
  9. 服务器迁移虚拟化实施方案,服务器虚拟化项目P2V实施及迁移方案v8(31页)DOC
  10. webpower中国区发布《2014年中国邮件营销行业数据报告》
  11. 如何将一个服务器加入域控中,Windows Server如何创建域并加入域
  12. 关于微信开发的语音存储问题
  13. dot.tk+namecheap.com搭建免费顶级域名+快速动态域名+Dns解析
  14. FHQ Treap 详解
  15. PostgreSQL修炼之道之SQL语言入门(四)
  16. [OCA]认证考试内容
  17. AutoCAD.Net开发问题之:层表事件的响应(续)
  18. 什么是勒索病毒,勒索病毒简介,电脑中病毒了怎么修复
  19. 双系统苹果Mac笔记本如何切换windows系统?
  20. 美国推进隐私保护立法 加剧全球网络空间治理复杂性

热门文章

  1. Jquery学习 -千锋学习
  2. HTML5绘制一个3D立方体,HTML5/Canvas交互式3D立方体
  3. php 5.5 缓存,PHP 5.5 FastCGI缓存
  4. 浏览器对象模型(Browser Object Model)
  5. 1.5.PHP7.1 狐教程-(PHP开发工具 PHPStorm 配置)
  6. myeclipse优化方案 myeclipse 10 优化
  7. LayaAir UI 组件 # Image 位图、Label 标签
  8. Spring mvc mybatis cxf Add CGLIB to your classpath. 错误
  9. Lintcode203 Segment Tree Modify solution 题解
  10. C++基础--static的用法