2017强网杯线下AWD攻防总结(适合新手)
这篇文章首发于个人博客https://iewoaix8736.github.io/
鉴于刚建立博客,比较少人看,所以在t00ls分享给大家,欢迎来交流
前言:
本菜为高校组,这篇文章适合新手学习参考(dalao飘过,不喜勿喷)
AWD攻击
这次线下攻防用的是一个Finecms,版本是5.0.9的
之前对这个cms并不了解
现在复现一下,
从哪里跌倒,就从哪里爬起来。
朋友给我看了他审计的一片文章
http://www.cnblogs.com/post/readauth?url=/test404/p/7351144.html(密码:panghuf)
其实百度也很多,
5.0.9这个版本存在头像上传getshell漏洞
比赛的源码是修改了的,先来看看
/**
* 上传头像处理
* 传入头像压缩包,解压到指定文件夹后删除非图片文件
*/
public function upload() {
// 创建图片存储文件夹
$dir = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';
@dr_dir_delete($dir);
!is_dir($dir) && dr_mkdirs($dir);
if ($_POST['tx']) {
$file = str_replace(' ', '+', $_POST['tx']);
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){
$bad_ext=array('php','php3','php4','php5');
if(in_array($result[2],$bad_ext)){
exit('hack');
}
$new_file = $dir.'0x0.'.$result[2];
if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {
exit(dr_json(0, '目录权限不足或磁盘已满'));
} else {
$this->load->library('image_lib');
$config['create_thumb'] = TRUE;
$config['thumb_marker'] = '';
$config['maintain_ratio'] = FALSE;
$config['source_image'] = $new_file;
foreach (array(30, 45, 90, 180) as $a) {
$config['width'] = $config['height'] = $a;
$config['new_image'] = $dir.$a.'x'.$a.'.'.$result[2];
$this->image_lib->initialize($config);
if (!$this->image_lib->resize()) {
exit(dr_json(0, '上传错误:'.$this->image_lib->display_errors()));
break;
}
}
list($width, $height, $type, $attr) = getimagesize($dir.'45x45.'.$result[2]);
!$type && exit(dr_json(0, '图片字符串不规范'));
}
} else {
exit(dr_json(0, '图片字符串不规范'));
}
} else {
exit(dr_json(0, '图片不存在'));
}
// 上传图片到服务器
if (defined('UCSSO_API')) {
$rt = ucsso_avatar($this->uid, file_get_contents($dir.'90x90.jpg'));
!$rt['code'] && $this->_json(0, fc_lang('通信失败:%s', $rt['msg']));
}
exit('1');
}
}
可以看到这一段代码
$bad_ext=array('php','php3','php4','php5');
这里把基本把php后缀的文件都给屏蔽了
但是忘了我们还有phtml
PHTML(有时叫做PHP)网页是一种包含PHP(一种和JavaScript或Microsoft VBScript类似的语言)脚本的网页和ASP一样,PHP脚本镶嵌在网页的HTML代码之中。
其实比赛中应该要想到了,之前CTF就有遇到过,我想我可能被打懵了吧。。。
这里先上传一个jpg的一句话
PS:因为直接上传的话phtml可能不行,他会判断是不是图片.
然后再点击保存抓包
然后将这里jpeg改成phtml
然后Forward,他会报错
但是我们看源码,并没有这一句英文的错误,不管他,进目录看看
到目录上看看,果然上传上去了
然后菜刀连接直接可以在根目录上看到flag了
这里就不演示了
防御:
这里说下防御方法
一般都会给你ssh的账号密码,
登录上去down下源码,然后自己修改代码
1.修改代码
$bad_ext=array('php','php3','php4','php5');
也可以添加其他后缀的文件,免得dalao们各种奇淫技巧突破,
比赛后还听到有dalao说上传asp的增加权限,
这里我就不清楚了,不过也可以添加上去过滤掉。
2.修改登录密码
比赛中很多后台登录都是弱口令的
admin密码其实可以在数据库中找到
比赛中我是直接弱口令admin上去的
然后手速要快,修改之后一般人就无法用你账号进入后台了
3.修改注册代码
这里是注册的代码
你可以修改成不管怎么输入最后都注册不了,
改完admin密码,改完注册代码后基本上可以防御绝大多数进攻了
这样可以不用删除这个注册页面,删除的话会判断down机,扣分
4.挂waf
比赛后跟dalao交谈,说除了头像上传外还有一处命令执行漏洞,
这个时候就要用到waf了,
因为比赛中一般是user普通用户,没有权限重启服务
所以只能采用包含waf脚本了
可以直接包含在index里面,注意waf所在目录
你可以添加过滤各种函数,符号,base64编码等等
这样可以有效抵御一般的命令执行了(dalao路过)
当然,如果会修改那个漏洞更好。
后续:
好了,到这里就全部结束了,本辣鸡只能吹到这里,
欢迎各位dalao来指点一二,
有喜欢打比赛的也可以交流交流,
有dalao不嫌弃的话可以收了我,哈哈哈哈
再......后续:
比赛不是唯一,能学到东西就好。
能交到很多朋友,我很高兴。
每经历一次比赛就成长一次,
多总结,提升自己。
最后,最后,
感谢支持我的朋友.
TCV期望值:0.01
评论71次
只有这一题吗?我看这题只是上传绕过的内容。
phtml 稳
phtml 学到了~~~~~~
楼主你好,根据你的博客,我搭好了Metasploitable3环境,但是接下来不知道怎么玩,求指教。。
强网杯就一个finecms打了一天?被吐槽看来是很正常的
还有靶场,我这里只写了AWD的, 那我吐槽一句,就一个finecms技不如人拿不到奖怪谁?? 我是来学xi的,我只管学xi,吐槽啥的我不管
https://www.t00ls.com/thread-41630-1-1.html 看本人8月份的分析吧。是不是暨南大学的大佬啊 2333 暨南大学 天下第一
强网杯就一个finecms打了一天?被吐槽看来是很正常的
还有靶场,我这里只写了AWD的, 那我吐槽一句,就一个finecms技不如人拿不到奖怪谁?? 我是来学xi的,我只管学xi,吐槽啥的我不管
大佬大佬
php3,php4,php5,phtml这些都是默认解析的吗, 我用phpstudy试了一下,好像都没有解析
还真没打过这类比赛,看完文章感觉就算去了也是一脸懵逼
小威师傅好 我记得5.0.10有命令执行
其实FINECMS还有一个更隐蔽一点的代码执行
表哥指点一下
一样是EVAL,从另一个入口进,可以绕过过滤执行代码
至少也打进线下了,头像上传命令执行?是怎么操作的。
存在头像上传getshll和命令执行漏洞,我知道的是这两个,命令执行没找到,是赛后讨论其他表哥说的
其实FINECMS还有一个更隐蔽一点的代码执行
表哥指点一下
至少也打进线下了,头像上传命令执行?是怎么操作的。
其实FINECMS还有一个更隐蔽一点的代码执行
要是 上传渲染再加(或)改文件名的话 楼主就蒙了。。。不过也学到了phtml姿势了
跟企业组的题目不一样,顺便说说靶场的呀?
是啊,我是高校组,四个组的题目都不同,靶场打的太烂了,要不你说说呗
靶场也是不一样的吗?还是一样?说下你们靶场的环境
综合靶场是一样的,上传不了图片了,总共有5个靶场,两个外网,三个内网。内网靶场要从外网突破
要是容器是iis的岂不是GG了
跟企业组的题目不一样,顺便说说靶场的呀?
是啊,我是高校组,四个组的题目都不同,靶场打的太烂了,要不你说说呗
靶场也是不一样的吗?还是一样?说下你们靶场的环境
phtml后缀 可以像php那样解析? 特殊环境才可以 ? 还是什么样才可以? 我刚刚试了试 直接显示出源码
apache下可以。
phtml,第一次遇到,大佬能否再解释下
apache下面能当PHP解析的