个人网站 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. browsersync简单使用和原理分析

    1. 静态文件模式 browser-sync start --server --files "css/*.css" "*.html" 2. 代理模式 brows ...

  2. vue1 父子组件$emit,$on

  3. Collections(一)

    方法注释 /** * Returns an immutable list containing only the specified object. * The returned list is se ...

  4. C# 可观察集合

    static void Main() { var data = new ObservableCollection<string>(); data.CollectionChanged += ...

  5. 51nod 1843 排列合并机(DP+组合)

    题解链接 不过求ggg不用O(n2)DPO(n^2)DPO(n2)DP,g[n]g[n]g[n]直接就是卡特兰数的第n−1n-1n−1项.即: g[n]=(2(n−1)n−1)−(2(n−1)n−2) ...

  6. PHP mysqli_debug() 函数

    定义和用法 mysqli_debug() 函数用于执行调试操作. 注释:为了使用该函数,您必须编译 MySQL 客户端库来支持调试.

  7. wangEditor实现ctrl+v粘贴word图片并上传

    很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ...

  8. Gradle 如何配置将编译的 JAR 发布到 Archiva 中

    有时候我们希望将我们的jar 开发包发布到 Archiva 中. 如何配置 Gradle 的编译脚本呢? 首先你需要启用 Gradle 的 Maven-publish 插件. plugins { id ...

  9. Codeforces.520B.Two Buttons(正难则反)

    题目链接 \(Description\) 给定两个数\(n,m\),每次可以使\(n\)减一或使\(n\)乘2.求最少需要多少次可以使\(n\)等于\(m\). \(Solution\) 暴力连边BF ...

  10. 在C语言中破坏函数调用堆栈

    // 这段代码显示,在C语言修改函数的返回地址 int test1() { ; } int test2(int a) { *(&a-) = (int)test1; // 将返回地址修改为tes ...