CG-CTF 南邮 综合题2
个人网站 http://www.wjlshare.tk
0x00前言
主要考了三块 第一块是文件包含获取源码 第二块是通过sql绕过注入获取密码 第三块是三参数回调后门的利用 做这题的时候结合了别人的wp 同时自己也学习了很多 所以来总结一下
平台地址: https://cgctf.nuptsast.com/challenges#Web
题目地址: http://cms.nuptzj.cn/
0x01正文
打开题目发现是一个网页先把流程走一下看看有哪些地方可以钻空子

我们来一个个的来看一下 在第一个红框中输入 1 点击搜索 发现不行 提示要本地浏览器访问才可以 那么这里有可能有需要修改 User-agent来进行访问 昵称 留言那题 提交之后 会有一个弹窗 提示查看源码有惊喜

继续看 发现 这个CMS 说明这里有可能有文件包含

很有可能是 通过 php 伪协议来获取页面源码的 我们来试一下 发现在这里可以读取页面的源码
http://cms.nuptzj.cn/about.php?file=php://filter/convert.base64-encode/resource=say.php

通过base64解码可以获取到 我们这个say.php 的源码 看了一下源码发现存在 mysql_real_escape_string 这个会把特殊字符进行转义 所以我们看看 about.php 这个页面的源代码

这个看起来像是突破口 我去尝试了一下读取config.php 发现这个目录不让读取 然后loginxlcteam 看起来像一个后台登陆页面

在尝试了一些弱口令无果之后尝试别的方向 看看 可不可以从别的地方获取登陆密码和账号 之前那个需要本地浏览器访问的那边有可能就是突破口 尝试了读取源码之后 发现 源码中做了一个判断如果 user-agent 是Xlcteam Browser就可以进入

感觉这里有可能有sql注入 但是 这里引入了防sql注入的地方 同时也可以看到 这里sql获取是以post的方式进行获取的 获取参数 soid 的数值 查看sql给过滤的源码

这里只是简单的对 这些关键字变成空了 所以我们只要复写就可以了 至于空格只需要 /**/绕过就可以了 简单的测试后发现有四个列 union select 1,2,3,4,5 这样测试 在 4的时候出现了数字 我本来是使用order by 进行测试的 但是 应该是我水平的问题 发现测试无果

注入点为 2,3 后面就比较简单了 再结合之前文档里面的提示
soid=-1//ununionion//selselectect//1,(seselectlect//group_concat(userpapassss)//frfromom//adadminmin),(seselectlect//group_concat(usernanameme)//frfromom/**/adadminmin),4
爆出我们所需要的信息

写了个小脚本 得出登陆密码
numbers = [102,117,99 ,107, 114 ,117, 110, 116 ,117]
for i in numbers:
print(chr(i),end="")
#fuckruntu
得到密码 fuckruntu 账户admin

因为我们不知道这个小马的密码是什么 所以老办法 获取源码

这是一个三参数回调后门 http://cms.nuptzj.cn/xlcteam.php?www=preg_replace 这个回调后门主要是利用了回调函数 回调函数 简单的来说就是把函数当成参数来进行使用 这里 preg_replace 就是函数 被 $e 进行获取 然后当作参数进行传入
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换。当使用被弃用的 e 修饰符时, 这个函数会转义一些字符,在完成替换后,引擎会将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串
wtf=print_r(scandir(‘.’));


获取到flag

CG-CTF 南邮 综合题2的更多相关文章
- 南邮综合题writeup
http://teamxlc.sinaapp.com/web3/b0b0ad119f425408fc3d45253137d33d/index.php fuckjs直接console得到地址 http: ...
- 南邮CTF--md5_碰撞
南邮CTF--难题笔记 题目:md5 collision (md5 碰撞) 解析: 经过阅读源码后,发现其代码是要求 a !=b 且 md5(a) == md5(b) 才会显示flag,利用PHP语言 ...
- 南邮CTF - Writeup
南邮CTF攻防平台Writeup By:Mirror王宇阳 个人QQ欢迎交流:2821319009 技术水平有限~大佬勿喷 ^_^ Web题 签到题: 直接一梭哈-- md5 collision: 题 ...
- 南邮CTF--SQL注入题
南邮CTF--SQL注入题 题目:GBK SQL injection 解析: 1.判断注入点:加入单引号发现被反斜杠转移掉了,换一个,看清题目,GBK,接下来利用宽字节进行注入 2.使用'%df' ' ...
- 南邮JAVA程序设计实验1 综合图形界面程序设计
南邮JAVA程序设计实验1 综合图形界面程序设计 实验目的: 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法.通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. ...
- 南邮ctf-web的writeup
WEB 签到题 nctf{flag_admiaanaaaaaaaaaaa} ctrl+u或右键查看源代码即可.在CTF比赛中,代码注释.页面隐藏元素.超链接指向的其他页面.HTTP响应头部都可能隐藏f ...
- 南邮部分wp
MYSQL 打开robots.txt 鍒お寮€蹇冿紝flag涓嶅湪杩欙紝杩欎釜鏂囦欢鐨勭敤閫斾綘鐪嬪畬浜嗭紵 鍦–TF姣旇禌涓紝杩欎釜鏂囦欢寰€寰€瀛樻斁鐫€鎻愮ず淇℃伅 这一看乱码,放到新建tx ...
- 3. 关于sql注入的综合题
关于sql注入的综合题 ----------南京邮电大学ctf : http://cms.nuptzj.cn/ 页面上也给了好多信息: 根据这个sm. ...
- 南邮CTF--bypass again
南邮CTF--bypass again 提示:依旧弱类型,来源hctf 解析: 源代码: if (isset($_GET['a']) and isset($_GET['b'])) { if ($_G ...
随机推荐
- 第107题:二叉树的层次遍历II
一. 问题描述 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- c语言:当指针成为参数后
指针就是一种指向内存地址的变量,利用它的一些特性我们可以完成很多工作 两个数字从小到大排序(引申的业务场景,对企业大佬的银行存款金额进行排序,这当然通过交换变量对应的数值来实现,否则盖茨大爷的钱可能全 ...
- Tpcc-mysql 结果解读
原文:https://blog.csdn.net/frockee/article/details/87812329 1. 填坑经验 不要使用tidb的tpcc测试程序(非标准,tidb修改过),使 ...
- Domain Socket本地进程间通信
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loop ...
- 在做nios ii uart232 实验时出现undefined reference to `fclose'等错误。
程序如下 #include<stdio.h> #include<string.h> #include "system.h" int main () { ...
- P4717 快速沃尔什变换FWT 模板题
#include <bits/stdc++.h> using namespace std; #define rep(i,a,n) for (int i=a;i<n;i++) #def ...
- VC/DDK/DriverWorks开发环境配置
1·前言开发windows内核驱动程序是一个非常具有挑战性的工作,你得忍耐调试过程中操作系统 不断蓝屏.不断崩溃的噩梦,所以强烈建议你采用虚拟机做开发平台,这样即使把整个系统都搞蹦了,大不了从新装过虚 ...
- libimobiledevice
#### 安装与卸载 ```bashideviceinstaller -i xxx.ipa # 安装ideviceinstaller -u [bundleID] # 卸载ideviceinstalle ...
- dubbo——高可用性
一.zookeeper宕机 zookeeper注册中心宕机,还可以消费dubbo暴露的服务 健壮性: 监控中心宕掉不影响使用,只是丢失部分采样数据 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询, ...
- Flume-自定义 Sink
Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统.或者被发送到另一个 Flume Agent. Sink 是完全事务性的. 在从 Channel 批 ...