freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

99+

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

AWD Plus纯干货分享
re009 2021-12-20 18:07:30 724436
所属地 云南省

0x0 背景

首先来了解什么是Awd Plus(或者叫awd+,Break+Fix等等),它分为两个部分,我们现从Break(攻击环节)开始说。

Break(攻击)

各赛队对靶标环境进行预设安全挑战研究与破解,检测出靶标环境中的预设安全挑战或者未预期安全漏洞,攻破靶标环境获取 Flag 进行得分。Break 环节采用动态积分方式(即题目分值随解出队伍数量增加而减少,队伍总分也会随之变化)。Break 允许选手重置靶机,一般最多允许重置 5 次。

Fix(修复)

这个和攻击有点区别,每个比赛修复方式不同,如有些是通过SSH连接主机进行修复,有些则需要编写update.sh(例子:图一)然后上传脚本,通过运行脚本替换文件或删除文件在服务器上进行修复。同样的Fix也是动态积分+允许重置靶机,一般重置五次,上传后一般会实时check(或等待一轮时间),check未修复一般不扣分,只在check点无法正常访问,服务宕机等异常情况扣分(一般不会实时扣分,只会在一轮check过后扣分,所以可以随意进行上传脚本修复的过程,在一轮时间前恢复就可以)

1639968020_61bfed141b8d0bda17715.png!small?1639968018233

比赛题目

一般只有Web&Pwn

相信看到背景大家也知道awd+和普通的awd有什么区别了,一个是选手之间的斗法,一个是静态攻防(高情商:人机对抗),所以要了解的知识不同,准备的东西也不同,下面我们来进入正题。

0x1 前期准备

由于我是个web手,所以对pwn不熟,我这就不描述pwn了(毕竟pwn大佬们也不会看我这种文章哈哈哈哈哈哈哈,能看的都是来指正我错误的~)

1、考点:

web:JavaScript原型链污染、Go语言(如湖湘杯线下)、SSTI、CBC翻转字符攻击和常见考点(反序列化、Sql注入,重置密码、越权等逻辑漏洞等等),简单通俗点来说就是一个线下的CTF解题赛

2、防守:

一般在平台可以下载或直接通过SSH连接主机Down下来, 少部分会让你黑盒渗透,然后下载源码进行加固。防守的过程其实也简单,这个过程倒是和普通的CTF的 防守一样,找到漏洞点进行删除就好,所以具体不多说,参考普通CTF加固来进行准备,如IDE啊,go环境啊,npm的环境等等,主要是需要能让服务在本地跑起来,才好去进行验证是否加固成功。

3、攻击:

上面也说了,在防守阶段已经提供了源码,我们就可以按照白盒渗透的方式进行审计,找到漏洞点进行攻击,同样准备的东西也是GO环境、NPM环境、PHP环境等能本地调试的工具和一颗聪明的大脑

4、队员

T0:PWN手+全栈+Web手(三个全栈肯定是最牛逼,但是全栈大佬可遇不可求啊T-T)

T1:PWN手*2+Web手

T2:PWN手+Web手*2

T3:Web手*3(这里不说3PWN手,因为基本会pwn的都会web点,但web手基本不打pwn)

T99999*n:摸鱼大佬*3

人永远是左右比赛的关键因素,现在大部分比赛都围绕着PWN来举办,所以pwn手肯定是最优选,就如我前面说的,会pwn的基本都会点web,就算是3个pwn也能在比赛中拿到比较好的成绩,原因是web的加固实在实在实在是太简单了,实在攻不下来能防住也是很重要的。

0x2 比赛阶段

这里重点说比赛中遇到的坑,因为其实能看到这文章的肯定是基本到准备到线下比赛的,技术肯定都有的,只不过会碰到很多奇奇怪怪的坑。但这里只说防守,攻击没有什么坑,该是啥漏洞就是啥漏洞,毕竟代码就在那里变不了。

防守流程:

一定一定一定要熟悉linux每个命令,最重要的是中间件的重启命令,题目一般会给题目的根目录,比如给出题目根目录是:/app/    你下载下来的源代码目录+根目录就是你操作的目录

1639990965_61c046b574a608367e19b.png!small

比如这个:我要操作web文件夹的东西,就是/app/web/*

大家也可以看到,这个是整个docker下载下来的,里面有服务启动的语句

1639991061_61c047157ee4194798059.png!small

我们就可以根据这个语句来启动服务,但是,npm和go都是需要重启服务器的,我们知道了拉起命令,怎么暂停服务呢?最常见的方法,用ps去找进程然后kill掉,比如我要重启JavaScript的环境,肯定是先杀进程

ps -ef|grep npm|grep -v grep |awk '{print $2}'|xargs kill -9
ps -ef|grep node|grep -v grep |awk '{print $2}'|xargs kill -9

或者根据目录去杀

ps -ef|grep app|grep -v grep |awk '{print $2}'|xargs kill -9

然后去替换或者删除漏洞文件

mv -f index.js /app/index.js
mv -f routes/app/index.js

最后拉起

npm run dev 
或者使用官方的restart脚本
bash /restart.sh

这里有个小tips,要根据服务启动的用户去启动,例如weblogic不能root启动,不能盲目使用sudo命令,以及就是权限问题,最好直接给777权限

sudo chmod -R 777 /app/*

最后就是打包,一般服务器是接受tar包,并且会给相关说明,如何打包及如何接受

### update.tar.gz目录结构
```
# tree update/
update/
├── some_files
└── update.sh
```

### update目录打包为update.tar.gz命令
```
tar zcvf update.tar.gz update
```

### 注意事项
+ web目录或pwn目录请多留意题目描述、题目附件。
+ 修改的原则尽可能只在漏洞相关的文件上,请勿更改其他文件。
+ 执行脚本的文件名必须是update.sh
+ update.sh的执行权限,平台解包后自动对其`chmod +x`
+ 请注意update.sh是Linux文件格式。DOS转化为Linux文件格式,可以使用dos2unix命令。
+ 请勿添加无关命令,所有上传包都会备份。
+ 请注意耗时。

上传后即可进行校验

最最最最重要的事情!!!一定要快!!!否则少了前几轮check的分数基本就追不上了

防守技巧:

一般D盾啥的都扫不出来,普通的代码审计工具不如人工定位,直接放例子

1639992934_61c04e66d823fe98d48d9.png!small

在不看代码的情况下来评判威胁度,那肯定admin文件夹是威胁系数最高的呀!直接干掉!干掉后再看check情况,如果干掉还不行可以在看看其他代码,依次先排除最危险的

第二个例子:

1639993084_61c04efc2e25cc92612f7.png!small

一个go语言的代码,先看威胁点,那肯定是执行命令啊,

"os"
"os/exec"

通过这个去找命令执行点,关键词:

bash
exec
curl
ping

直接批量替换,同样的更新完文件再上传check,check不过再检查

第三个例子:

1639993331_61c04ff353967c72a92e5.png!small?1639993329462

一个JavaScript的代码,直接删入口点,稳妥简单

注意!这些技巧仅在为了前两轮可以更好得分!如果有限制上传次数的这个方法只能用一次!后期还是需要本地调试的!

0x03 总结

1、速度!速度!速度!重要的事情说三边,速度一定是第一位,但是注意不要破坏服务导致宕机扣分,就算破坏了也不要在准备check的时间破坏,给恢复留时间

2、心态第一,不急不躁,队长要安抚好队员的情绪,毕竟比赛只是学习的一个过程

3、能打进线下的基本都是有实力的,可能会有某些代打进的社会队,一部分划水,一部分大佬,一部分平常人,目前看文章的老板们是那种呢~

4、比赛有时候是攻击和防守分开,每个3个小时,也可能一天然后攻守兼备的情况,如果是攻守兼备优先防御后攻击,防御简单于攻击,毕竟攻击payload也不是一时半会能写出来的,能拿到前几轮的分才是王道。

5、pwn大佬悄咪咪的说:可以上通防(至于怎么找,,嘿嘿)

6、只有前几轮拿分了才有绝对的话语权!(能在前三轮拿分做了三题都可以后期直接睡觉了!)

最后就是希望大家能在比赛中得到更好的成绩啦~(一天都比赛那种大佬们就别卷了行吗!!我就想中午的时候好好吃个饭!!你们那些饭盒摆旁边就开始敲代码的!!不饿吗!!!)

最后的最后!再次感谢船山院士的Yeuoly、小浪及其他的各位,公众号:衡阳信安1639994474_61c0546a8d1ac569a726b.jpg!small?1639994472705

1639994292_61c053b4cbeebeababdf2.png!small?1639994291115

以及我的团队:

Day1安全团队以微信公众号为平台持续输出渗透测试、代码审计、Windows逆向等内容,致力于回馈安全社区,提高网络安全普及程度

1639994425_61c054397b11be1d16b96.png!small?1639994423646

# CTF # 网络安全技术 # AWD # 比赛 # AWD+
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 re009 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
re009 LV.3
这家伙太懒了,还未填写个人描述!
  • 4 文章数
  • 25 关注者
记一次实战登陆口Js逆向分析
2024-12-11
如何做好一名优秀的蓝队(内网篇)
2024-08-09
攻防演练 | 如何做好一名优秀的蓝队(外网篇)
2024-06-26
文章目录