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

建立网站的主要步骤三门峡网站网站建设

建立网站的主要步骤,三门峡网站网站建设,东莞旅游必去十大景点,网络营销的方法有哪些目录 一、XSS 二、DOM型XSS 三、代码分析 1、index.php 2、High.php 3、渗透思路 四、渗透实战 1、渗透准备 2、采用Script标签绕过 3、采用IMG标签绕过 DVWA(Damn Vulnerable Web Application)中的 XSS DOM关卡是用于练习和演示 DOM XSS的不同…

目录

一、XSS

二、DOM型XSS

三、代码分析

1、index.php

2、High.php

3、渗透思路

四、渗透实战

1、渗透准备

2、采用Script标签绕过

3、采用IMG标签绕过


DVWA(Damn Vulnerable Web Application)中的 XSS DOM关卡是用于练习和演示 DOM XSS的不同场景,不同安全等级存在不同的脆弱点和绕过方法,本小节对高等级别(High)关卡进行渗透实战。

一、XSS

XSS(Cross-Site Scripting) 指的是攻击者通过在网页中注入恶意脚本,当用户访问该页面时,脚本会在用户浏览器中执行,从而窃取用户数据、会话信息或进行其他恶意操作。核心原理就是未对用户输入或输出进行适当过滤,导致恶意代码被浏览器解析执行。

XSS类型

位置

数据流向

反射型 XSS

服务器端

用户输入 → 服务器 → 响应中包含恶意代码

存储型 XSS

服务器端

用户输入 → 存储(数据库) → 所有用户访问时触发

DOM XSS

客户端 JavaScript 代码

用户输入 → 浏览器 DOM 操作 → 执行恶意代码

二、DOM型XSS

DOM 型 XSS(Document Object Model Cross-Site Scripting) 是一种特殊的 XSS 攻击,其注入点存在于客户端 JavaScript 代码中,而非服务器端。攻击者通过操控网页的 DOM 环境(如 URL 参数、表单输入等),诱导浏览器执行恶意脚本,无需服务器参与。

方面普通XSSDOM XSS
检测工具传统扫描工具可分析HTTP响应内容需动态分析JS代码和DOM操作
防御位置服务器端过滤(如转义<>客户端转义 + 避免危险的DOM操作
WAF防护可通过拦截恶意HTTP请求防御通常无效(攻击数据可能不发送到服务器)

三、代码分析

1、index.php

进入DVWA靶场源目录,找到index.php源码。

这段代码是DVWA(Damn Vulnerable Web Application)中DOM型XSS的演示页面,主要功能是:

  • 根据用户选择的语言生成一个下拉菜单。
  • 当用户提交选择后,URL中会包含default=参数。
  • 页面JavaScript会读取URL参数并动态生成选项。

 详细注释后的代码如下所示。

<?php
// 设置根目录路径
define( 'DVWA_WEB_PAGE_TO_ROOT', '../../' );
// 引入DVWA页面初始化文件
require_once DVWA_WEB_PAGE_TO_ROOT . 'dvwa/includes/dvwaPage.inc.php';// 启动页面,要求认证和PHPIDS保护
dvwaPageStartup( array( 'authenticated', 'phpids' ) );// 创建新页面
$page = dvwaPageNewGrab();
// 设置页面标题
$page[ 'title' ]   = 'Vulnerability: DOM Based Cross Site Scripting (XSS)' . $page[ 'title_separator' ].$page[ 'title' ];
$page[ 'page_id' ] = 'xss_d';
$page[ 'help_button' ]   = 'xss_d';
$page[ 'source_button' ] = 'xss_d';// 连接数据库
dvwaDatabaseConnect();// 根据安全等级选择对应的级别文件
$vulnerabilityFile = '';
switch( $_COOKIE[ 'security' ] ) {case 'low':$vulnerabilityFile = 'low.php';break;case 'medium':$vulnerabilityFile = 'medium.php';break;case 'high':$vulnerabilityFile = 'high.php';break;default:$vulnerabilityFile = 'impossible.php';break;
}// c
require_once DVWA_WEB_PAGE_TO_ROOT . "vulnerabilities/xss_d/source/{$vulnerabilityFile}";// 对于impossible级别,不进行URI解码
$decodeURI = "decodeURI";
if ($vulnerabilityFile == 'impossible.php') {$decodeURI = "";
}// 构建页面主体
$page[ 'body' ] = <<<EOF
<div class="body_padded"><h1>Vulnerability: DOM Based Cross Site Scripting (XSS)</h1><div class="vulnerable_code_area"><p>Please choose a language:</p><form name="XSS" method="GET"><select name="default"><script>// 检查URL中是否包含default参数if (document.location.href.indexOf("default=") >= 0) {// 提取default参数值var lang = document.location.href.substring(document.location.href.indexOf("default=")+8);// 动态写入选项document.write("<option value='" + lang + "'>" + $decodeURI(lang) + "</option>");document.write("<option value='' disabled='disabled'>----</option>");}// 写入固定选项document.write("<option value='English'>English</option>");document.write("<option value='French'>French</option>");document.write("<option value='Spanish'>Spanish</option>");document.write("<option value='German'>German</option>");</script></select><input type="submit" value="Select" /></form></div>
EOF;// 添加更多信息链接
$page[ 'body' ] .= "<h2>More Information</h2><ul><li>" . dvwaExternalLinkUrlGet( 'https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)' ) . "</li><li>" . dvwaExternalLinkUrlGet( 'https://www.owasp.org/index.php/Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)' ) . "</li><li>" . dvwaExternalLinkUrlGet( 'https://www.acunetix.com/blog/articles/dom-xss-explained/' ) . "</li></ul>
</div>\n";// 输出页面
dvwaHtmlEcho( $page );?>

2、High.php

打开源码High.php,分析可知这段代码使用switch方法的白名单过滤了XSS注入,如下所示。

分析代码,当前防护措施如下所示。

  • 参数检查:检查URL中是否存在default参数(如?default=English),且值不为null
  • 白名单验证:只允许FrenchEnglishGermanSpanish四个值,其他值会触发重定向到默认英语选项。
  • 防御性设计:通过白名单强制无效输入回退到安全默认值,避免不可控输入。

详细注释后的源码如下所示。

<?php
// 检查是否存在名为"default"的GET参数且其值不为null
if (array_key_exists("default", $_GET) && !is_null($_GET['default'])) {# 白名单允许的语言选项switch ($_GET['default']) {case "French":case "English":case "German":case "Spanish":# 如果是白名单中的语言,不做任何操作,继续执行后续代码break;default:# 如果不在白名单中,重定向到?default=Englishheader("location: ?default=English");exit; // 终止脚本执行}
}
?>

3、渗透思路

由于源码器使用了switch白名单的方式,判断参数中的值是不是所规定的四种(FrenchEnglishGermanSpanish),所以服务端是无法通过除此之外的其他内容绕过。

但还有一种绕过方式:

  • 使用#符号来使URL传入内容被截断,URL栏的 # 号之后的内容并不会发送至服务器端
  • 但是js语言中#号并不会被截断,会使得default传入的所有内容都会完整传入。

综上,当注入语句配置为“白名单的四个词+空格+#+原始注入语句”时,就可以实现URL白名单绕过,js可以传入完整的注入语句,从而实现$_GET['default']传递的值刚刚好为白名单内的值,使绕过验证,又实现了前端加载攻击语句。

四、渗透实战

1、渗透准备

配置security为High级别,如下所示。

进入DVWA靶场XSS DOM关卡High级别,选择English,此时完整URL地址如下所示。

http://127.0.0.1/dvwa/vulnerabilities/xss_d/?default=English

2、采用Script标签绕过

尝试注入XSS语句<script>alert('mooyuan')</script>,参考Low关卡,注入语句仍为<script>alert('mooyuan')</script>,针对本关卡,注入语句前增加French空格#号,注入语句如下所示。

French #<script>alert('mooyuan')</script>

3、采用IMG标签绕过

尝试注入XSS语句<img src=0 οnerrοr=alert('mooyuan')>,参考Medium关卡,构造单select闭合,语句变为</select><img src=0 οnerrοr=alert('mooyuan')>。针对本关卡,注入语句前增加English空格#号,注入语句如下所示。

English #</select><img src=0 onerror=alert('mooyuan')>


文章转载自:

http://RHXZoBHm.rzpkt.cn
http://6BZzIjIn.rzpkt.cn
http://6jLvrRCJ.rzpkt.cn
http://o4djtPis.rzpkt.cn
http://qhUVY1Wo.rzpkt.cn
http://ornyOE0r.rzpkt.cn
http://V4HDI1Mx.rzpkt.cn
http://rBIALEIm.rzpkt.cn
http://yQiWL8yw.rzpkt.cn
http://CFPRGaKR.rzpkt.cn
http://dyqWFDet.rzpkt.cn
http://i83AJEoX.rzpkt.cn
http://JH6ppsR9.rzpkt.cn
http://XA7iXq9Y.rzpkt.cn
http://HPMqwbq0.rzpkt.cn
http://yhSmVq1c.rzpkt.cn
http://aJlpnwQ6.rzpkt.cn
http://0A95gdib.rzpkt.cn
http://XnM1SwnB.rzpkt.cn
http://IPgaclP6.rzpkt.cn
http://snGnKg6D.rzpkt.cn
http://jyGqw7vw.rzpkt.cn
http://WQgKRhjm.rzpkt.cn
http://iQTY3SOu.rzpkt.cn
http://IWy5xbtB.rzpkt.cn
http://fAkPabXD.rzpkt.cn
http://6ZWlQzdG.rzpkt.cn
http://f4ZPOSNr.rzpkt.cn
http://H3Wf3NDq.rzpkt.cn
http://5qbXQHQn.rzpkt.cn
http://www.dtcms.com/wzjs/755552.html

相关文章:

  • 八卦岭网站建设商城网站建设的注意事项
  • jsp网站开发技术四川省自贡市大安区代码
  • 档案网站建设规范有哪些成都有什么好玩的地方 景点
  • 电商建站价格社交博客网站开发
  • 舒城县建设局网站服务器上给网站做301跳转
  • 导游网站后台东莞做网站的联系电
  • 杭州网站制作专业免费注册qq
  • 唐山网站建设电话漳州 网站设计
  • 网站备案要如何取消wordpress主题中文乱码
  • 国外优惠卷网站如何做嵌入式开发是什么专业
  • WordPress网站登录邮件提醒母婴门户网站模板
  • 国内知名的网站建设公司小说网站怎么做防采集
  • 网站建设平台分析苏州哪里做网站
  • 网上怎样做电缆网站wordpress 4.4.8
  • 广东建设职业技术学院网站芜湖网站优化
  • 杭州seo相关网站深圳市住房和城乡建设局
  • 前端网站效果有哪些小程序免费推广平台
  • 网站建设和维护做什么个人网站建设规划
  • 做网站常用的英文字体wordpress 优化 插件
  • idea可以做网站吗what is wordpress
  • 小榄做网站企业做外贸有哪些免费的网站有哪些
  • 电商网站开发技术与服务器给个网址2021年能看的
  • 化妆品网站建设实训总结企业网站接入微信支付
  • 网站推广策划案怎么选基金项目实验室信息网站建设
  • 网站如何注销百度头条怎么做网站
  • 营销型网站管理系统在网上那里能接单做网站
  • wordpress 多站点用户wordpress做淘宝的交流插件
  • 商城网站开发报信阳高端网站建设
  • 阜宁哪家专业做网站国外免费做网站软件
  • 做网站和做免费推广网站的区别张家港企业网站