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

新疆气象网站国际新闻界期刊

新疆气象网站,国际新闻界期刊,乐清日报官网,电脑如何制作网页教程目录 一、XSS 二、反射型XSS 三、GET型报文 四、代码审计 五、渗透实战 1、渗透方法1 (1)XSS Payload (2)修改长度限制 (3)再次注入成功 2、渗透方法2 (1)修改页面长度限…

目录

一、XSS

二、反射型XSS

三、GET型报文

四、代码审计

五、渗透实战

1、渗透方法1

(1)XSS Payload

(2)修改长度限制

(3)再次注入成功

2、渗透方法2

(1)修改页面长度限制

(2)XSS Payload

(3)注入成功


本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关)渗透集合,通过对XSS关卡源码的代码审计找到XSS的真实原因,讲解XSS原理并进行渗透实践,本文为XSS关卡01-反射型GET的渗透部分。

一、XSS

XSS(跨站脚本攻击)是指攻击者通过向网页注入恶意脚本(通常为JavaScript),当其他用户访问该页面时,这些脚本会在受害者浏览器中执行,从而窃取Cookie、会话令牌等敏感信息,篡改页面内容或进行钓鱼攻击。XSS主要分为三类:

  • 存储型(恶意脚本永久存储在服务器,如论坛评论区)
  • 反射型(脚本通过URL参数临时反射到页面)
  • DOM型(纯前端攻击,由浏览器解析触发)。

防御措施包括对用户输入进行严格过滤和转义、实施内容安全策略(CSP)以及设置HttpOnly属性保护Cookie。

二、反射型XSS

反射型XSS(Reflected Cross-Site Scripting)是一种常见的Web安全攻击,攻击者将恶意脚本嵌入URL参数中,诱骗用户点击特制链接。当服务器未对输入进行过滤,直接将参数内容返回到网页时,浏览器会执行其中的恶意代码。此类攻击具有非持久性,仅在用户点击恶意链接时触发,常见于搜索框、错误页面等场景。

三、GET型报文

HTTP的GET型报文是HTTP协议中最基础的请求方法之一,主要用于从服务器获取资源。HTTP 的 GET 型报文主要由请求行、请求头部、空行(用于分隔头部和主体)组成,因为 GET 请求通常不包含请求主体(数据通过 URL 中的查询参数传递),以下是其结构的表格表示:

组成部分说明
请求行包含 GET 请求方法、请求资源路径和 HTTP 协议版本
请求头部包含客户端信息及请求相关参数,如用户代理、可接受的内容类型等
空行用于分隔请求头部和请求主体
请求主体GET 请求通常为空,数据通过 URL 中的查询参数传递

四、代码审计

进入pikachu靶场XSS系列的01关卡-反射型GET页面,具体如下所示。

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

查看反射型XSS关卡源码xss_reflected_get.php文件内容,很明显没有对传入的参数message进行 任何过滤,换言之本关卡直接将用户输入字符串带入特定语句并进行回显,并没有任何的过滤,有XSS攻击风险,具体内容如下所示。

代码直接将用户通过 GET 请求传递的 message 参数的值嵌入到 HTML 输出中,没有对其进行任何过滤和转义处理。这意味着攻击者可以构造包含恶意脚本的 message 参数值,接下来对源码进行详细注释,具体如下所示。

<?php
// 初始化一个空字符串变量 $html,用于存储要输出的 HTML 内容
$html = '';// 检查是否通过 GET 请求方式提交了名为 'submit' 的表单元素
// 如果提交了,说明用户触发了相关操作,进入后续处理逻辑
if (isset($_GET['submit'])) {// 检查 GET 请求中 'message' 参数是否为空if (empty($_GET['message'])) {// 如果 'message' 参数为空,向 $html 变量中追加一段提示信息// 提示用户输入 'kobe' 进行尝试$html .= "<p class='notice'>输入'kobe'试试-_-</p>";} else {// 如果 'message' 参数不为空// 检查 'message' 参数的值是否等于 'kobe'if ($_GET['message'] == 'kobe') {// 如果 'message' 参数的值等于 'kobe'// 向 $html 变量中追加一段祝福信息,其中包含用户输入的 'kobe'// 同时追加一张图片,图片路径使用了预定义的常量 $PIKA_ROOT_DIR$html .= "<p class='notice'>愿你和{$_GET['message']}一样,永远年轻,永远热血沸腾!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />";} else {// 如果 'message' 参数的值不等于 'kobe'// 向 $html 变量中追加一段提示信息,表示不关心输入的内容$html .= "<p class='notice'>who is {$_GET['message']},i don't care!</p>";}}
}
?>

五、渗透实战

1、渗透方法1

(1)XSS Payload

XSS注入语句<script>alert("mooyuan")</script>的含义如下所示。

  • <script> 标签:HTML 中定义 JavaScript 代码块的标记。
  • alert("mooyuan"):调用浏览器的弹窗函数,显示内容为 mooyuan 的警告框。
  • 整体作用:当该脚本被浏览器解析时,会立即弹出警示框。
<script>alert("mooyuan")</script>

发现长度有限制,输入不全,猜测是页面的对输入长度进行截断。

(2)修改长度限制

右键查看元素,找到length,把20修改为200或者更长(修改后页面不刷新)

修改前如下所示:

修改后如下所示:

(3)再次注入成功

输入<script>alert("mooyuan")</script>,弹框显示mooyuan说明渗透成功,如下所示。

2、渗透方法2

(1)修改页面长度限制

本次注入获取cookie的XSS脚本,首先修改length为200但是不刷新页面,如下所示。

修改成功后页面如下所示。

(2)XSS Payload

渗透方法2的注入语句<script>alert(document.cookie)</script> 是一段 JavaScript 代码,用于在浏览器中弹出一个包含当前网页 cookie 信息的提示框。

  • document.cookie 是 JavaScript 中用于操作浏览器 cookie 的属性。cookie 是服务器发送到用户浏览器并保存在本地的小段数据,可在浏览器下次向同一服务器再发起请求时被携带上并发送到服务器上。
  • alert() 是 JavaScript 的一个函数,它会创建一个模态对话框,显示传入的内容。这段代码组合起来,就是通过 alert 函数将当前页面的 cookie 信息展示给用户。不过,若被攻击者利用,他们能通过此代码获取用户的敏感信息,如登录凭证等,从而实施安全攻击。
<script>alert(document.cookie)</script>

(3)注入成功

在输入框中输入 <script>alert(document.cookie)</script>弹出了cookie值,渗透成功,如下所示。

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

相关文章:

  • 网站建设的问题千锋教育培训机构就业率
  • 花生壳域名做网站互联网推广方案怎么写
  • 福州哪家企业网站建设设计最高端seo优化托管
  • 怎样做网站ppt培训机构连锁加盟
  • 做装修的网站篮网目前排名
  • 网站建设 选择题小程序模板
  • 徐汇网站设计软文批发网
  • 苏州门户网站有哪些seo赚钱方式
  • 东莞整合网站建设公司在线seo优化
  • 网络直播网站建设龙岗seo优化
  • 做网站用ui好还是ps北京seo业务员
  • 做网站怎么不被找到世界杯32强排名
  • 网站已过期怎么办理qq群引流推广平台免费
  • 做网站能收多少广告费百度网址导航
  • cdn接入wordpress出错上海网络seo
  • wordpress 优化 插件南宁seo推广外包
  • 网站域名费用怎么做分录百度指数峰值查询
  • 滨州内做网站的公司邯郸百度推广公司
  • 织梦的网站数据还原怎么做制作网站需要什么技术
  • ps网站CAD做PS地砖贴图网络营销的基本方法
  • 互联网网站基础济南seo网站排名优化工具
  • anker 网站建设网盟推广平台
  • 莱芜金点子招聘网最新招聘福州seo推广服务
  • 经济与政府网站建设建网站需要多少钱
  • 成都网站建设小公司企业互联网推广
  • 交互设计师主要是做什么的呢网络优化工作应该怎么做
  • 番禺网站 建设信科网络什么网站都能打开的浏览器
  • 淘宝网站建设的主要工作河北网站建设制作
  • 广东一站式网站建设推荐推广普通话的宣传内容
  • 做seo时网站发文目的在线seo推广软件