目录

low

medium

high

impossible


从整个cms的角度去分析这个漏洞

low

前端代码如下。定义了一个表单以get的方式发送请求形式为?name= 。然后引用了一个$html的变量

$html所在文件源码如下。array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。$_GET为超全局变量。

直接将输入的name值赋值给变量$html然后前端再引用这个变量,所以触发xss

<?phpheader ("X-XSS-Protection: 0");// 如果$_GET中存在'name'这个键,说明点击了form表达的提交按钮。$_GET就是以数组的形式保存变量
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end user$html .= '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}?

medium

可见在低级的基础上增加了str_replace()函数,将用户的输入中<script>关键字进行了过滤,所以可以考虑双写关键字进行绕过。我们也知道构造xss有以下几种方式,所以我也可以利用第二种和第三种方式进行弹窗

  • 利用<script>标签构造
  • 利用js伪协议:<a href="javascript:alert(/xss/)">touch me</a>
  • 利用html事件

1. 双写<script>绕过

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

2. 利用伪协议

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

3. 利用html事件

<input type="button" onclick="alert(/xss/)" value="点我!">

high

在中级的时候只是对<script>关键字进行了一次过滤,这里使用正则表达式对<script中的每一个词进行了无限次过滤,所以这里不能双写绕过。但是我们可以使用伪协议和产生html事件进行弹窗,和上一样

impossible

可以看出多了user_token和session_token,这是防csrf的,因为经常是xss+csrf结合攻击。然后他对我们输入的内容用htmlspecialchars() 函数进行处理。这里主要看htmlspecialchars() 就行

htmlspecialchars()

htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体,返回转换后的新字符串

  • &       转换为&amp
  • "        转换为&quot
  • '         转换为成为
  • <       转换为&lt
  • >       转换为&gt

xss构造的几种方式

  • 利用<script>构造,<>被转换了所以不行
  • 利用伪协议,需要用到<和单引号或者双引号,所以不行
  • 利用html事件,也需要用到<和单引号或者双引号,所以不行

如下,我们选中然后右键查看选中部分源码,发现被转换了,所以确实是impossible

DVWA之反射型XSS代码审计相关推荐

  1. 结合DVWA的反射型XSS浅析

    一.概念 XSS:跨站脚本攻击.黑客通过HTML注入篡改了网页,在网页中插入恶意脚本. 二.分类 1.反射型XSS:简单地把用户输入的数据反射给浏览器. 2.存储型XSS:将用户输入的数据存储在服务器 ...

  2. DVWA关卡11:Reflected Cross Site Scripting (XSS)(反射型XSS)

    目录 Low Medium High Impossible 反射型XSS:恶意脚本未经转义被直接输入并作为HTML输出的一部分,恶意脚本不在后台存储,直接在前端浏览器被执行. 攻击者可以使用XSS向恶 ...

  3. DVWA 之 XSS(Reflected)反射型XSS

    目录 1.级别:Low 2.级别:Medium 3.级别:High 4.级别:Impossible 反射型XSS攻击 又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS.漏洞产生的原因是攻击者注入 ...

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

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

  5. dvwa中的xss(跨站脚本)攻击

    环境: dvwa: 192.168.11.135 dvwa版本: Version 1.9 (Release date: 2015-09-19) kail机器:192.168.11.156 一.XSS是 ...

  6. CTFHUB——反射型XSS详解

    背景 本来看ctfhub上有xss的题目,打算好好学习一波,结果点开一看,只有一道题2333. 便现在dvwa上熟悉了一波.所谓反射型是相对于存储型来讲的. 如果黑客的xss注入是通过某种方式储存到了 ...

  7. php反射型xss,利用反射型XSS漏洞,模拟获取登录账户的Cookie

    目录结构 一.测试环境 二.测试目标 三.原理描述 四.操作步骤 1.在服务器上搭建并启用hacker测试网站 2.在服务器上测试站点根目录内创建一个存放攻击脚本的文件夹 3.在xss文件夹下创建攻击 ...

  8. 反射型xss钓鱼盗取用户cookie

    流程: 第一步:搭建用于接收cookie的web站点. 第二步:构建恶意链接发送给用户. 第三步:用户点击恶意链接,目标网站返回带有恶意代码的web页面. 第四步:浏览器解析web页面,执行恶意代码, ...

  9. 反射型XSS漏洞详解

    反射型XSS漏洞 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数,并在响应中将这个文 本返回给用户.对于开发者而言,使用这种机制 ...

最新文章

  1. 基于深度学习和迁移学习的识花实践
  2. C++知识点8——函数的返回值
  3. 注册jdbc驱动程序的三种方式
  4. 结构体数组实现的简易学生信息管理系统
  5. Git远程分支的回退
  6. ajax拿table里的th值,Jquery Ajax 异步设置Table中某列的值
  7. flutter刷新页面_用Flutter实现58App的首页
  8. MySQL笔记——JDBC入门
  9. 【渝粤教育】国家开放大学2018年春季 0299-21T中国古代文学(1) 参考试题
  10. 开放源代码_开放式代码本质的10种方式
  11. Python 词云可视化【爆肝之作】
  12. Unity 监听Hierachy、Project等视图结构变化的事件
  13. 计算机考研838难吗,838初试经验教训分享
  14. VB中传值(ByVal)和传地址(ByRef)的区别
  15. java创建一定长度的list_java第三季中对String泛型的List进行排序(随机生成长度不超过10的字符串)...
  16. OpenJudge NOI 1.8 20:反反复复
  17. TeX中的引号我麻了
  18. 富士康软件测试IDSBG,富士康IDSBG部门是做什么的
  19. BGD 通信15-1 150206102 王嘉良 DDS信号发生器
  20. Windows 技术篇-重装电脑系统后搜不到蓝牙设备问题,电脑连接蓝牙不成功原因及解决办法

热门文章

  1. 【树莓派】64G的SD卡无法使用NOOBS安装树莓派的问题
  2. 力扣——374. 猜数字大小(java)
  3. cpci计算机无法启动,CPCI
  4. 哪些特征使顶级的收益聚合与众不同?
  5. You appear to be running an X server; please exit X before installing. For further details, please
  6. Webix UI JavaScript 10.0.6 Crack
  7. 手机摇身一变,一键将纸质文档变电子文档,这一招在微信上火了!
  8. 爬虫入门(五)抓取网页数据
  9. 全面Java程序线上故障排查
  10. SQL注入原理与解决方法