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次
这个CTF看上去难度不算很大, 不过写得还算不错的。。
谢谢评论,是的,难度不大,从低到高慢慢提升
phtml 可以直接连接???
解析了就可以
朋友给我看了他审计的一片文章http://www.cnblogs.com/post/readauth?url=/test404/p/7351144.html(密码:panghuf) 看不了 ??
可以啊,复制在别的浏览器打开试试
谢谢分享 已学xi!
朋友给我看了他审计的一片文章 http://www.cnblogs.com/post/readauth?url=/test404/p/7351144.html(密码:panghuf) 看不了 ??
哦 这个默认好像是不解析的 估计对方的apache 配置文件 httpd.conf中有:AddType application/x-httpd-php .phtml 这样的配置
phtml直接下载 不解析的!是需要什么配置???
好详细,学xi了
鼓励! 不错
跟企业组的题目不一样,顺便说说靶场的呀?
是啊,我是高校组,四个组的题目都不同,靶场打的太烂了,要不你说说呗
综合靶场是一样的,上传不了图片了,总共有5个靶场,两个外网,三个内网。内网靶场要从外网突破
比赛不给上网坑的不行,下午我们辛辛苦苦搞进内网,怎奈传工具,渗透环境各种麻烦,然后就 timeover了,不然必然内网打穿他,,,
下午的靶场赛,我们队全场第一,我查下百度还被警告,扣了10分,,,
还有就是强网杯不让用自己电脑,你们怎么加的waf, 现场写的吗,我准备了waf没派上用场, 因为现场写不出来
我在企业组被打的很惨,我们企业组的AWD是一个thinkphp3.2.3,大家都在玩那个后门
这个CTF看上去难度不算很大, 不过写得还算不错的。。
我想求证一下,https://iewoaix8736.github.io/ 就我自己访问不到楼主博客吗
菜菜的菜菜来学xi了,有没有新手学xi的思路,大佬
这题不只是上传绕过。人家还说了有命令执行
phtml确实很少用到,现在很少能解析的,php3 php5这样的还是比较常用的,如果是WINDOWS是不是可以考虑上传别的脚本过滤
phtml 可以直接连接???
下次可以多发几道题,一同分析下