记一次AWD比赛

萌新一枚,热爱CTF,大牛绕行吧,嘻嘻!

由于AWD的经验比较少,即使比赛前做了详细的规划,也不免比赛时手忙脚乱,不在到自己应该干什么(当然这跟主办方没把要求说清楚有关,说是一台靶机,两台攻击机,结果是两台靶机,攻击机是自己本机,,,,,,)

先贴一张我赛前准备的比赛步骤和一些TIP:

 

对于我来说写的挺好了,可是给了两台靶机后,而且用户权限还只是普通用户,一脸绝望.jpg,好多脚本都用不了。

先说一下两台靶机的情况,一台是运行tomcat服务,一台是ECShop,有大量的web漏洞,

没办法,先打把,比赛前我记得ubuntu有系统漏洞可以提权,因为没有实战演习过,而且我认为主办方会给root权限,所以没想那么多,事实证明,准备的东西自己试一下还是非常必要的

其实这回的ssh密码不改也没有关系,因为他的密码很随机,不可能被别人爆破到,但是比赛还是要关心一下ssh这一块(tomcat那一台根本不能修改ssh密码,权限不够,不知道为什么)

开始tamcat那台机器我们没有找到网站根目录在哪里,他并没有放在我们已知的/var/www目录,所以我们大费周折找了好久,本来想d盾查一下欲留后门,查了ecshop那个并没有,另一个没找到目录就没管,,蓝瘦

还有就是我做了一件非常蠢的事情,我记得要删除关于install目录和php文件,但是我们有个审计网站的队友看到了include下面有好多不知名看起来很NB的页面,以为这个已经被黑了,急忙让队友把include目录删掉,删掉,掉,,,,,,,,,,,所以网站挂了

后来申请主办方把靶机重置吧,幸好有免费重置的机会,没有酿成大错,之后上waf,发现这个网站太脆弱了,一上waf就崩,急忙撤了下来,太狠

我们做了一个很机智的决定:把后台的路径改了名字,admin改成别的名字了

上午我们主要在研究ecshop那台靶机的漏洞,因为已经有队伍在那里拿分了(别问我怎么知道的,不小心往前看到的)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

中午交流的时候,和同校的一队交流了下,发现我们的数据库密码已经被改了,他们改的,不知道比赛没完成就讨论是不是很不道德,当时也没想那么多,之后吃完饭就各自研究了,我们中午并没有得出什么建设性的结论,只是决定自己挖自己的漏洞了,我觉得这样不好,但是我们的小组协作性确实很差,临时凑起来的队伍,也没打过什么线下

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

下午继续上午的比赛,我开始研究tomcat那台机器了,找到网站根目录之后,我就把源码备份之后拷到本机上面,d盾了一下,两个一毛一样的asp大马,但是密码找不到,我还是花了一段时间在那上面,打着打着发现我们的靶机被攻击了,我们根本不知道如何去守,看流量这个东西,我们抓流量的脚本在waf里面,所以并没有好的方法去防止他们打我们,好在攻击的队伍是打的全场,都在掉分,只能寄希望于挖到新的漏洞

通过那个找不到密码的asp大马,我们找到了后台登陆系统,(其实审计自己家网站就能知道),用户名密码,是啥???后来队友发现了配置文件中存在的用户名密码,弱口令,登陆,有了网站的管理权限,其实这个时候就可以传马打全场了,,但是我们的经验太缺少,看了好久不知道如何利用,有个解析漏洞传个指定后缀名的压缩包,传上去自动解压,这样传asp马就可以拿到flag,我们最后还是发现自家服务器被种了马,利用他们的脚本来拿flag,然后我们发现了那个上传漏洞,自己上马拿flag,还有另一支队伍,一次只能拿两分,不知道是用的什么洞,到后来只是我们三支队伍在拿分了,比赛也接近了尾声

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这次比赛,总结了一些东西:

  • 一定做好万全的准备,做好权限不足的情况,提权漏洞等等
  • 提高脚本的编写能力,我的文件监控只是在root下好用,只是删除和记录写入的功能(可能有的权限没有把),自己修改也困难,要不利用这个脚本就可以防的死死的
  • 日志抓流量工作一定要做好,我说了好几百遍队友就是不听,没好好准备在这里,非让我弄CMS的洞,这个也不是三天两天可以弄完的,装个漏洞库啥都解决了
  • 多增加实战经验,要不然看到一个洞,知道他可以利用,却不会用的感觉难受的要死

最后附一张我为这此比赛准备的东西的图:

当当当当:

<think>嗯,用户问的是在AWD比赛中如何应对不同漏洞部署高级WAF。首先,我需要回想AWD比赛的特点。这类比赛通常攻防兼备,时间紧迫,所以快速反应是关键。用户可能已经有一定的基础,但需要更高效的策略来提升防御能力,尤其是使用高级WAF来拦截多种漏洞攻击。 接下来,用户提到“不同的漏洞”,这意味着需要覆盖常见的漏洞类型,比如SQL注入、XSS、文件上传、RCE、反序列化等。每个漏洞的防御策略可能不同,但WAF需要能灵活应对。此外,“高级的WAF”可能指的是不仅仅是简单的规则匹配,而是结合动态分析、机器学习或其他智能手段。 然后,我需要考虑用户可能的实际需求。在AWD比赛中,手动编写WAF规则可能不够高效,所以需要自动化或预定义的规则集。同时,选手可能需要快速调整规则,以应对比赛中新出现的漏洞。另外,防御的同时还要确保服务的可用性,避免误拦截影响正常请求。 用户可能还希望了解如何在不影响性能的情况下部署WAF,以及如何针对不同漏洞类型制定具体规则。比如,对于SQL注入,过滤特殊字符;对于文件上传,检查文件类型和内容;对于RCE,监控系统命令执行函数的使用等。 另外,用户可能对WAF的部署方式感兴趣,比如基于中间件(Nginx、Apache)的模块,或者使用PHP的自动加载机制动态加载WAF脚本。这样可以在不修改现有代码的情况下快速部署。 还需要考虑攻击检测的实时性,比如录攻击日志、自动封锁IP,以及在防守的同时进行攻击,干扰对手。这些策略能帮助用户在比赛中占据优势。 最后,总结关键点:覆盖全漏洞类型、动态规则生成、低误报率、性能优化、快速应急响应、攻击干扰。需要将这些要素结合起来,给出具体的部署步骤和示例规则,帮助用户在实际比赛中应用。</think>在AWD攻防竞赛中,部署**智能动态WAF(Web应用防火墙)**是防守方对抗多种漏洞攻击的核心技术。以下从攻防对抗角度提供一套高实战性的策略框架: --- ### **一、WAF设计核心原则** 1. **全漏洞类型覆盖** - 预设规则库覆盖:SQLi、XSS、文件上传、RCE、反序列化、SSRF、目录遍历等 - 动态规则生成:实时解析对手流量特征自动生成正则表达式(如`/\b(union\s+select|sleep\(\d+\)|into\s+outfile)\b/i`) 2. **低误报率** - 白名单机制:对比赛平台IP、合法管理员操作放行 - 上下文语义分析:区分正常业务参数与攻击载荷(如`order by 2`在分页中可能合法) 3. **性能零损耗** - 基于中间件的WAF(如Nginx+Lua模块)实现毫秒级检测 - 热点路径优化:对高频路径(如`/api/login`)启用缓存检测结果 --- ### **二、分层防御实战部署** #### **1. 流量预处理层(Nginx层)** ```nginx # 关键防御:阻断高危路径探测 location ~* (\.git/|\.svn/|adminer\.php) { return 444; # 静默丢弃连接 } # 动态SQL注入拦截 set $block_sql_injection 0; if ($query_string ~* "(\b(union\s+select|benchmark\s*?\(|sleep\s*?\(|extractvalue\s*?\()|(\d\s*?=\s*?\d))") { set $block_sql_injection 1; } if ($block_sql_injection = 1) { return 403; } # 文件上传防护 location ~* \.(php|jsp|war|sh)$request_method = POST) { return 405 "File upload blocked"; } } ``` #### **2. 运行时防护层(PHP动态WAF)** ```php <?php // 注册全局请求过滤器 register_shutdown_function('waf_filter'); function waf_filter() { $input = array_merge($_GET, $_POST, $_COOKIE); // RCE攻击特征检测 $rce_patterns = [ '/\b(eval|system|passthru|exec|shell_exec)\s*\(/i', '/`.*?`/', '/\$_(GET|POST|REQUEST)\[.*?\]/' ]; foreach ($k => $v) { // 检测反序列化攻击 if (preg_match('/^O:\d+:"/', $v)) { log_attack('unserialize'); die('Attack detected'); } // 组合式攻击检测 foreach ($rce_patterns as $pattern) { if (preg_match($pattern, $v)) { log_attack('rce', $k); header('HTTP/1.1 403 Forbidden'); exit; } } } } // 攻击日志录(伪装成正常日志) function log_attack($type, $data='') { $log = date('[Y-m-d H:i:s]') . " [WAF] Blocked $type attack"; error_log($log . " Data: " . substr(json_encode($data),0,100)); } ``` #### **3. 代码沙箱层(针对文件上传漏洞)** ```python # 使用Docker实现动态文件分析沙箱 import docker def analyze_uploaded_file(file_path): client = docker.from_env() try: result = client.containers.run( "malwareanalysis/sandbox:latest", f"analyze {file_path}", remove=True, mem_limit="100m", # 限制内存防止溢出攻击 network_mode="none" # 禁用网络 ) if "malicious" in result.decode(): os.remove(file_path) return False except docker.errors.ContainerError as e: return False return True ``` --- ### **三、高级对抗技巧** 1. **动态混淆防御** - 每小时自动更换敏感路由名称(如`/admin.php`→`/a3e8d1.php`) - 对WAF规则进行动态哈希混淆: ```php $dynamic_rule = base64_decode('L2JbXlwvXSpcLihwaHB8c2h8anNwKSQv'); // 实时解码正则表达式 ``` 2. **攻击者指纹追踪** - 在403响应中植入隐形追踪标: ```html <!-- 正常403页面 --> <img src="//tracker.com/ip/<?=md5($_SERVER['REMOTE_ADDR'])?>" style="display:none;"> ``` 3. **主动干扰防御** - 对攻击流量返回伪漏洞响应(诱导对手浪费时间): ```php if (detect_attack()) { echo "DEBUG: vuln_code=0x7b2273636f7265223a3939397d\n"; http_response_code(500); exit; } ``` --- ### **四、自动化运维方案** ```bash # 实时监控脚本(每10秒扫描一次日志) #!/bin/bash tail -n0 -f /var/log/nginx/access.log | \ grep --line-buffered 'POST /upload' | \ xargs -I {} curl -X POST http://127.0.0.1:5000/analyze -d "log={}" ``` --- ### **五、防守优先级矩阵** | 漏洞类型 | WAF规则响应速度 | 误报容忍度 | 防御权重 | |----------------|-----------------|------------|----------| | RCE/文件上传 | <50ms | 低 | ★★★★★ | | SQL注入 | <100ms | 中 | ★★★★☆ | | XSS | <200ms | 高 | ★★★☆☆ | | 信息泄露 | 异步检测 | 高 | ★★☆☆☆ | --- 通过这种**多层动态防御体系**,既能快速拦截已知攻击模式,又能通过行为分析捕捉0day攻击特征。在AWD实战中建议结合流量镜像分析(使用tcpdump)实时优化规则库。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值