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 ...
随机推荐
- mysql对两个字段进行自定义排序
Mysql order by 多字段排序 ') desc,ADD_DATE desc mysql单个字段降序排序: select * from table order by id desc; mysq ...
- BZOJ 2229 / Luogu P3329 [ZJOI2011]最小割 (分治最小割板题)
题面 求所有点对的最小割中<=c的数量 分析 分治最小割板题 首先,注意这样一个事实:如果(X,Y)是某个s1-t1最小割,(Z,W)是某个s2-t2最小割,那么X∩Z.X∩W.Y∩Z.Y∩W这 ...
- P4047 [JSOI2010]部落划分 并查集
思路:并查集+生成树 提交:2次(虽然样例都没过但感觉是对的$QwQ$(判边少了一条)) 题解: 把所有点之间连边,然后$sort$一遍,从小往大加边,直到连第$n-k+1$条边(相当于是破话$k$个 ...
- webservice 概念+测试案例
webservice的概念?(一句话概括什么是WebService) WebService是一种跨编程语言.跨操作系统平台的远程调用技术.远程调用技术: 远程调用是指一台设备上的程序A可以调用另一台设 ...
- [Luogu] 最大收益
题面:https://www.luogu.org/problemnew/show/P2647 题解:https://www.zybuluo.com/wsndy-xx/note/1142685
- 费马小定理 x
费马小定理(Fermat Theory) 是数论中的一个重要定理,其内容为: 假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p).即:假如a是整数,p是质数,且a,p互质(即两 ...
- nodejs基础 用http模块 搭建一个简单的web服务器 响应纯文本
首先说一下,我们平时在浏览器上访问网页,所看到的内容,其实是web服务器传过来的,比如我们访问www.baidu.com.当我们在浏览器地址栏输入之后,浏览器会发送请求到web服务器,然后web服务器 ...
- redis集群搭建问题
redis集群创建执行 ./redis-trib.rb create --replicas 1 XXXX:PORT1 XXXX:PORT2 .... 的时候 一直等待 Waiting for the ...
- 微信小程序开发-踩坑
异步请求处理 详情描述: 微信小程序的wx.request({})请求时异步处理,以下代码 wx.reuest({ url:"https://XXXA", method:" ...
- @EnableTransactionManagement的使用
Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactio ...