当前位置: 首页 > wzjs >正文

wordpress 多重重庆seo关键词优化服务

wordpress 多重,重庆seo关键词优化服务,网站建设哪个公司,智慧团建app官网下载目录 一、htmlspecialchars 二、源码分析 1、进入靶场 2、代码审计 3、渗透思路 (1)利用单引号绕过 (2)利用协议绕过 三、渗透实战 1、探测是否有过滤 2、注入payload1 3、注入payload2 4、注入payload3 5、注入payl…

目录

一、htmlspecialchars

二、源码分析

1、进入靶场

2、代码审计

3、渗透思路

(1)利用单引号绕过

(2)利用协议绕过

三、渗透实战

1、探测是否有过滤

2、注入payload1

3、注入payload2

4、注入payload3

5、注入payload4


本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关)渗透集合,通过对XSS关卡源码的代码审计找到安全风险的真实原因,讲解XSS的原理并进行渗透实践,本文为XSS第08关卡XSS之htmlspecialchars关卡的渗透部分。

一、htmlspecialchars

PHP 的 htmlspecialchars ()函数 用于将特殊字符转换为 HTML 实体,防止 XSS 攻击。函数的基本语法如下所示。

string htmlspecialchars(string $string,int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,?string $encoding = null,bool $double_encode = true
)

htmlspecialchars 函数的主要参数含义如下所示。 

参数可选值/示例作用
$flagsENT_QUOTES转义单双引号(推荐)
ENT_COMPAT仅转义双引号
ENT_NOQUOTES不转义任何引号
$encoding'UTF-8'(推荐)指定字符编码,避免乱码
$double_encodetrue(默认)是否对已转义的字符再次转义

htmlspecialchars函数主要转义以下 5 个字符,具体如下所示。

原始字符转义后实体用途说明
&&避免混淆 HTML 实体
""转义双引号(属性值用)
''转义单引号(属性值用)
<&lt;避免标签被解析
>&gt;避免标签被解析
  • 尽管htmlspecialchars 函数对用户输入进行处理,可以防范XSS安全风险,它并非能抵御所有类型的 XSS 攻击,以下是它无法有效防御的几类情况::

    •  事件处理属性:在 HTML 标签里,很多属性可用于触发 JavaScript 代码,例如 onclickonloadonmouseover 等。要是攻击者把恶意脚本注入到这些事件处理属性中,htmlspecialchars 就可能无法有效防御。

    • 协议攻击:攻击者可通过构造包含恶意协议(如 javascript:、data:)的 URL 来实施攻击。htmlspecialchars 虽然会对特殊字符进行编码,但无法阻止恶意协议的使用。

    • 单引号绕过情况:htmlspecialchars 默认不会对单引号进行编码(除非指定 ENT_QUOTES 或 ENT_COMPAT 标志)。攻击者可利用单引号来绕过过滤,注入恶意脚本。

二、源码分析

1、进入靶场

打开pikachu靶场第08关XSS之htmlspecialchars,完整URL地址如下所示,这是一个输入框页面,如下所示。

http://127.0.0.1/pikachu/vul/xss/xss_02.php

2、代码审计

查看xss_02.php源码内容,如下所示使用htmlspecialchars函数对输入参数进行了过滤处理,具体如下所示。

这段 PHP 代码的主要功能是处理用户通过 GET 请求提交的 message 参数。当用户提交表单(即 submit 参数存在)时,会进行如下操作:

  • 检查 message 是否为空,如果为空,提示用户输入内容。
  • 如果 message 不为空,使用 htmlspecialchars 函数对其进行处理,将特殊字符转换为 HTML 实体。
  • 提示用户输入内容已被记录,并将处理后的内容以超链接的形式展示在页面上。

对源码进行详细注释,具体如下所示。

<?php
// 初始化三个空字符串变量,用于存储不同的 HTML 内容
// $html 用于存储提示信息
$html = '';
// $html1 用于存储记录输入的提示信息
$html1 = '';
// $html2 用于存储包含用户输入内容的 HTML 元素
$html2 = '';// 检查 $_GET 数组中是否存在名为 'submit' 的元素
// 即判断用户是否通过 GET 请求提交了 'submit' 参数,以此来确认用户是否进行了提交操作
if (isset($_GET['submit'])) {// 检查 $_GET 数组中名为 'message' 的元素是否为空if (empty($_GET['message'])) {// 如果 'message' 为空,向 $html 变量中追加一段提示信息// 提示用户输入点内容$html .= "<p class='notice'>输入点啥吧!</p>";} else {// 如果 'message' 不为空,使用 htmlspecialchars 函数对用户输入的 'message' 内容进行处理// htmlspecialchars 函数会将特殊字符转换为 HTML 实体,如将 < 转换为 &lt;,> 转换为 &gt; 等// 但默认情况下,单引号 ' 不会被处理$message = htmlspecialchars($_GET['message']);// 向 $html1 变量中追加一段提示信息// 告知用户输入的内容已经被记录$html1 .= "<p class='notice'>你的输入已经被记录:</p>";// 实际使用的代码,将处理后的内容作为超链接的 href 属性和显示文本// 即创建一个超链接,链接地址和显示文本都是用户输入的内容$html2 .= "<a href='{$message}'>{$message}</a>";}
}
?>

3、渗透思路

虽然代码使用了 htmlspecialchars 函数对用户输入进行处理,但仍然有XSS安全风险,渗透思路如下:

(1)利用单引号绕过

由于 htmlspecialchars 默认不对单引号 ' 进行处理,攻击者可以构造包含单引号的恶意输入。例如,当用户输入 ' οnclick='alert('XSS') 时,最终生成的 HTML 代码会变成:

<a href='' onclick='alert('XSS')'>' onclick='alert('XSS')</a>

当用户点击这个超链接时,就会触发 onclick 事件,执行其中的 JavaScript 代码,弹出包含 XSS 的警告框。 

(2)利用协议绕过

攻击者可以构造包含恶意协议的输入,如 javascript:alert('XSS')。当用户输入该内容时,最终生成的 HTML 代码为:

<a href='javascript:alert('XSS')'>javascript:alert('XSS')</a>

当用户点击这个超链接时,浏览器会执行 javascript 协议指定的代码,从而触发 XSS 攻击。

三、渗透实战

1、探测是否有过滤

进入pikachu靶场的第08关卡xss之htmlspecialchars,注意这是一个带有输入框的页面,如下所示。

http://127.0.0.1/pikachu/vul/xss/xss_02.php

接下来输入关键字判断是否有过滤,关键字包括:单引号、双引号、左右尖括号、问号、&、字符串与数字'"<>'ljn'"20141019"%#?,具体如下所示。

'"<>'ljn'"20141019"%#?

发现<a>标签内还是href属性内,左右尖括号被编码,双引号被替编码为了&quot,但是单引号居然没有被html编码,可以利用<a>标签。

2、注入payload1

ljn' οnfοcus='alert(1019)'

3、注入payload2

ljn' οnclick='alert(1019)'

4、注入payload3

ljn' οnclick='alert(document.cookie)'

5、注入payload4

javascript:alert(1019)

http://www.dtcms.com/wzjs/385398.html

相关文章:

  • 团队介绍网站模板百度seo如何优化关键词
  • vs做的网站图片显示不了关键词搜索量排名
  • 做原油期货关注什么网站免费顶级域名申请网站
  • 网站建设公司销售外贸seo推广
  • 网站建设需要要多少钱郑州专业网站建设公司
  • 闵行做网站公司今日国内新闻大事20条
  • 网站建设文化价格东莞百度推广优化
  • 义乌哪里有学做网站的seo教程网站优化推广排名
  • 互联网站备案谷歌seo服务
  • 英铭长沙网站建设百度关键词挖掘工具爱站网
  • 南京网站建设有限公司帮别人推广app赚钱
  • 微软网站怎么做的24小时网站建设
  • 特种操作证网上查询夫唯seo怎么样
  • 普通网站 手机网站独立站seo搜索优化
  • 网站做外部链接网络工程师是干什么的
  • 中国最好的网站器域名统一石家庄最新疫情
  • 做外国网站百度搜到长沙网站制作
  • DW如何做明星的个人网站网页推广平台
  • 南昌做网站哪家好seo是什么专业
  • 营销型网站设计服务商专业seo站长工具全面查询网站
  • 网站开始开发阶段的主要任务搜索引擎关键词广告
  • 外企网站建设公司排名东莞seo外包
  • 做外围什么网站有客户seo 工具分析
  • 做网站 警察重庆最新数据消息
  • 网站开发行业工作交接交接哪些关键词录入榜
  • discuz网站标题竞价
  • 大连手机自适应网站建设价格seo快排技术教程
  • 改了网站关键词收录查询 站长工具
  • 网站建设 中国联盟网品牌网络营销策划方案
  • 武汉手机网站唯尚广告联盟