CVE信息:https://nvd.nist.gov/vuln/detail/CVE-2024-39226
官方固件下载网址:https://dl.gl-inet.cn/ (下载固件版本:GL-AX1800 Flint 4.5.16)
宿主机(Ubuntu 18.04.6)配置网卡(用于和虚拟机机通信)
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.3.1/24 up
qemu系统模拟(这里-cpu cortex-a15必须加,默认不加可以,但是模拟机起来执行指令会报Illegal instruction的错误)
sudo qemu-system-arm -M vexpress-a9 -cpu cortex-a15 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian_wheezy_armhf_standard.qcow2 -append "root=/dev/mmcblk0p2" -net nic -net tap,ifname=tap0,script=no,downscript=no -nographic
arm虚拟机模拟起来后,配置虚拟机网卡
ifconfig eth0 192.168.3.2/24 up
将获取到的固件文件系统打包,并传到arm虚拟机内解压。
tar -zcvf squashfs-root.gz squashfs-root
scp squashfs-root.gz root@192.168.3.2:/
tar -zxvf squashfs-root.gz
挂载固件文件系统中的proc目录和dev目录到chroot环境
mount -t proc /proc/ ./squashfs-root/proc/
mount -o bind /dev/ ./squashfs-root/dev/
chroot squashfs-root sh
在启动项中/etc/init.d/nginx可以看见web服务是如何启动的
/usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
在启动web服务时,报错提醒
回头在我们找到web服务启动参数的地方,可以看见有对/var/log/nginx目录的创建,下面的也有,然后就是报错没有的目录手动创建。
最终所需创建下列目录可以成功运行nginx服务
mkdir -p /var/log/nginx
mkdir -p /var/lib/nginx/body
mkdir -p /var/run
创建所需目录之后,启动web服务之后尝试访问,结果是404。
上网搜搜看有没有前辈做过,发现有运行80_ng