个人网站 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 进行获取 然后当作参数进行传入

参照文章 : https://chybeta.github.io/2017/08/08/php%E4%BB%A3%E7%A0%81-%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/

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

  1. 南邮综合题writeup

    http://teamxlc.sinaapp.com/web3/b0b0ad119f425408fc3d45253137d33d/index.php fuckjs直接console得到地址 http: ...

  2. 南邮CTF--md5_碰撞

    南邮CTF--难题笔记 题目:md5 collision (md5 碰撞) 解析: 经过阅读源码后,发现其代码是要求 a !=b 且 md5(a) == md5(b) 才会显示flag,利用PHP语言 ...

  3. 南邮CTF - Writeup

    南邮CTF攻防平台Writeup By:Mirror王宇阳 个人QQ欢迎交流:2821319009 技术水平有限~大佬勿喷 ^_^ Web题 签到题: 直接一梭哈-- md5 collision: 题 ...

  4. 南邮CTF--SQL注入题

    南邮CTF--SQL注入题 题目:GBK SQL injection 解析: 1.判断注入点:加入单引号发现被反斜杠转移掉了,换一个,看清题目,GBK,接下来利用宽字节进行注入 2.使用'%df' ' ...

  5. 南邮JAVA程序设计实验1 综合图形界面程序设计

    南邮JAVA程序设计实验1  综合图形界面程序设计 实验目的: 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法.通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. ...

  6. 南邮ctf-web的writeup

    WEB 签到题 nctf{flag_admiaanaaaaaaaaaaa} ctrl+u或右键查看源代码即可.在CTF比赛中,代码注释.页面隐藏元素.超链接指向的其他页面.HTTP响应头部都可能隐藏f ...

  7. 南邮部分wp

    MYSQL 打开robots.txt 鍒お寮€蹇冿紝flag涓嶅湪杩欙紝杩欎釜鏂囦欢鐨勭敤閫斾綘鐪嬪畬浜嗭紵 鍦–TF姣旇禌涓紝杩欎釜鏂囦欢寰€寰€瀛樻斁鐫€鎻愮ず淇℃伅 这一看乱码,放到新建tx ...

  8. 3. 关于sql注入的综合题

    关于sql注入的综合题                          ----------南京邮电大学ctf : http://cms.nuptzj.cn/ 页面上也给了好多信息: 根据这个sm. ...

  9. 南邮CTF--bypass again

    南邮CTF--bypass again 提示:依旧弱类型,来源hctf 解析: 源代码: if (isset($_GET['a']) and isset($_GET['b'])) {​ if ($_G ...

随机推荐

  1. JQuery中 text()、html() 以及 val()以及innerText、innerHTML和value

    设置内容 - text().html() 以及 val() 我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容( ...

  2. 父元素设置固定宽度并设置overflow:scroll,如何让子元素撑开父元素

    <div class="a"> <div class="b"> <div class="c">内容内容, ...

  3. python中pandas库中DataFrame对行和列的操作使用方法

    用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFram ...

  4. pyecharts v1 版本 学习笔记 柱状图

    柱状图 bar 基本演示例子 from pyecharts import options as opts from pyecharts.charts import Bar c =( Bar().add ...

  5. 049_指定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data 目录

    #!/bin/bash[ ! -d /data ] && mkdir /data  #确保有此目录[ -z $1 ] && exit   #为空不需要打包if [ -d ...

  6. 帝国CMS 7.2-插件包整合

    版权所有 2009-2019 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/index.aspx 产品首页:http://www.ncmem.com/weba ...

  7. web超大文件上传

    文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ...

  8. vscode集成eslint

    1. 安装 ESLint 扩展 首先,打开 VSCode 扩展面板并搜索 ESLint 扩展,然后点击安装 2. 项目安装eslint yarn add eslint -D 3. 设置eslint配置 ...

  9. codeforces gym #101987K -TV ShowGame(2-SAT)

    题目链接: https://codeforces.com/gym/101987 题意: 有长度为$n$的只包含$B,R$的字符串 有m种关系,每个关系说出三个位置的确切字符 这三个位置的字符最多有一个 ...

  10. [题解] [CF1037D] Valid BFS?

    题面 题解 一个是模拟BFS的过程 还有一个是可以根据给出的BFS序构树, 再看两棵树是否相同 判断相同的话, 以同一个点为根, 看两棵树中1−