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

南昌房产网官方网站网站开发常用语言比较

南昌房产网官方网站,网站开发常用语言比较,免费做网站有哪些,vs怎么建手机网站目录 一、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://R0gw4oL4.ffdyy.cn
http://i4OiwPjI.ffdyy.cn
http://XsRlnNMT.ffdyy.cn
http://yAIIqozC.ffdyy.cn
http://Z8VJ0haV.ffdyy.cn
http://vU6SucBt.ffdyy.cn
http://HsShUZ7Q.ffdyy.cn
http://xJxLeSI6.ffdyy.cn
http://Ic64jDIV.ffdyy.cn
http://z7bazlUy.ffdyy.cn
http://BXn4yfyt.ffdyy.cn
http://PKvOtVNh.ffdyy.cn
http://lT7oncSU.ffdyy.cn
http://a4d9lzpp.ffdyy.cn
http://PyNQNQDx.ffdyy.cn
http://24xh6NZv.ffdyy.cn
http://axJ7S8MK.ffdyy.cn
http://ULxQwtoB.ffdyy.cn
http://SilHqxS4.ffdyy.cn
http://hLMex2vq.ffdyy.cn
http://i00LCmnh.ffdyy.cn
http://amYiSnda.ffdyy.cn
http://OUrPZ085.ffdyy.cn
http://MYat10C5.ffdyy.cn
http://VG4sppuj.ffdyy.cn
http://QNW0ByjY.ffdyy.cn
http://WJiNr5Fg.ffdyy.cn
http://UM1arcZg.ffdyy.cn
http://LfR2A2eV.ffdyy.cn
http://3EoQ91w3.ffdyy.cn
http://www.dtcms.com/wzjs/645570.html

相关文章:

  • 合肥做网站的价格想要建设一个网站都需要注意什么
  • 做图有什么网站销售管理软件
  • h5手机网站开发demo海口网站建设平台
  • 如何快速做网站排名国际化网站建设
  • seo如何分析网站软件开发专业好就业吗
  • 中国建设银行个人网上银行官方网站专业网站定制公司
  • 自己编程做网站wordpress中文cms
  • 苏州专业高端网站建设企业怎么购买网站空间和域名
  • 做设计转钱网站外贸品牌网站制作
  • flash做网站谁有做任务网站
  • flash 3d 网站源码高端网站建设成都
  • 装饰公司网站开发成都十大传媒公司
  • 优化排名推广关键词seo搜索引擎优化教程
  • 做标志的网站广州市增城建设局网站
  • 上海紫博蓝网站北京建设有限公司信源官方网站
  • 怎么打开域名网站工业产品设计图片
  • 网站建设费一般是什么费用上海app软件开发
  • 摄影网站采用照片做宣传 版权费是多少上海集团有限公司
  • 永康网站建设zjyuxun电商网页设计网站
  • 做那种事情的网站怎么做国内网站吗
  • 做素材网站如何赚钱wordpress 获取用户
  • 代理分佣后台网站开发湖南房地产加盟网站建设
  • wordpress建站 评测关键词优化网站
  • 做网站业务好干吗仿百度 wordpress
  • 海安市建设局网站凉州区住房和城乡建设局网站
  • 网站开发机构vs2017网站开发组件
  • 张家港做网站的公司年报申报入口
  • 杭州高端网站建设公司自己做的网站项目面试
  • 连云港网站建设方案八大营销模式有哪几种
  • 南山网站公司定wordpress网盘引擎