【CVE-2018-12491】phpok文件上传漏洞
phpok,一个基于PHP和MySQL的提交企业网站系统,其4.8.和4.9.版本存在严重的源源码安全漏洞,即任意文件上传漏洞(CVE--)。码漏这一漏洞允许恶意攻击者通过登录后台,洞提利用文件上传功能上传任何类型的漏洞通达信k线底背离公式源码文件,进而可能获取对网站的提交权限控制。 漏洞的源源码严重性被评为高危,影响版本包括phpok_4.8.和4.9.。码漏要利用这个漏洞,洞提攻击者需要具备后台登录权限。漏洞针对此漏洞的提交利用步骤如下:在Kali系统中,通过..0.2访问网站。源源码
进入管理员登录界面,码漏使用默认账号admin:admin进行登录。洞提
进入附件分类管理,修改允许上传的文件扩展名,添加包含恶意PHP代码的压缩文件。
在资讯中心创建新内容时,选择刚刚修改的压缩文件作为上传,同时上传预先准备的webshell.php木马文件。
访问上传的webshell.php,预览以确认文件路径和文件名,剑断江湖源码通过URL访问如..0.2/res/soft/...,可以看到服务器响应。
成功执行了id命令,表明攻击者已获取了服务器控制权。
对于此漏洞的分析,PHPOK的后台文件上传功能被滥用,威胁到系统的安全性。要避免这种风险,用户需尽快将系统升级到最新版本,修复此漏洞。学习RCE漏洞(ThinkPHP2)
近日,有渗透测试高手chaonan(潮男)在测试过程中发现ThinkPHP2.x版本存在一个严重的任意代码执行漏洞。以下是漏洞复现的详细步骤:
首先,我们需要准备一个Docker环境,并从vulhub下载相关资料。然后,进入漏洞复现的目录,开始执行实验。
实验结束后,别忘了清理漏洞环境,以确保安全。
简单访问该环境,教程网盘源码可以确认ThinkPHP2.1版本的任意代码执行漏洞已成功搭建。通过查询错误信息,我们进一步验证了这一点。
接着,我们通过访问特定URL,确认了漏洞的存在。这一漏洞允许我们利用蚁剑工具植入一句话木马。
最终,我们成功连接到webshell,从而证实了漏洞的利用能力。
文件包含漏洞相关知识总结
文件包含漏洞概念:通过PHP函数引入文件时,若文件名未经过合理验证,可能导致操作未预期的文件,甚至发生意外文件泄漏或恶意代码注入。
文件包含漏洞的环境要求:允许远程服务器或网站检索数据的配置allow_url_fopen必须为On状态,而allow_url_include则在php5.2之后默认为Off状态。
常见文件包含函数:include与require的区别在于,include在文件不存在时会产生警告但脚本继续执行,而require则会引发致命错误并停止脚本。
文件包含漏洞的利用方法:通过php://input或data://伪协议注入代码,以及利用file://、zip://、xshell怎么下载源码compress.zlib://、bzip2://、phar://和php://filter获取或执行文件内容。这些方法可以结合文件上传漏洞进行利用。
文件包含漏洞的截断:利用%截断或路径长度截断,前者针对php版本低于5.3.4且magic_quotes_gpc为off状态的场景,后者则适用于php版本低于5.2.8的情况。
包含Apache日志文件:通过构造请求,将PHP代码插入到日志文件中,借助文件包含漏洞执行日志中的PHP代码,获取用户访问记录信息。
包含SSH log日志:通过ssh连接并输入密码后,结合文件包含漏洞,可以访问并利用SSH日志文件。
包含SESSION:通过获取Session内的可控变量,如phpsessid,利用可读写的Session文件,实现对session内容的访问。
包含environ:在php以cgi方式运行时,environ会保留UA头信息。通过插入PHP代码到environ文件中,再利用文件包含漏洞执行代码。jsp 免费源码下载
包含/proc/self/fd/[environreferer]:利用burpsuite的测试器模块fuzz方法,挖掘并利用/proc/self/fd目录下的文件结构,包含SSH log日志。
包含临时文件:通过上传文件创建的临时文件,利用文件包含漏洞在文件被删除前访问。可以通过暴力猜测文件名或利用PHPinfo页面获取上传文件的存储路径和临时文件名。
文件包含漏洞的绕过方法:特定前缀绕过,如目录遍历和编码绕过,以及指定后缀绕过,利用url编码、二次编码等技巧实现绕过。
CmsEasy 5.5 代码执行漏洞复现
近期,我重现了CmsEasy 5.5版本的一个历史遗留漏洞,该漏洞起源于年,由于文件上传时对pic参数文件名后缀的忽视,使得恶意用户得以上传php文件,但这并非易如反掌。
常规的php恶意,经过cut_image_action函数的处理后,往往无法正常工作。因此,我采用了前辈的脚本(jpg_payload.php)来构造一个在图像处理后仍能执行的恶意。
要成功利用这个漏洞,必须绕过file_exists函数并使其返回True,由于HTTP协议的限制,我选择了FTP作为媒介。首先,我搭建了一个匿名访问的FTP服务器,并通过POST方法上传恶意,需要注意的是,的尺寸信息应在载荷中准确提供。
使用以下命令可以检查的尺寸信息:
上传的POC载荷如下:
虽然上传成功,但经过PHP图像处理后,恶意代码未能生效,这就需要寻找一种能抵抗图像处理的马,这个过程涉及到Fuzz测试,幸运的是,我找到了相关的脚本。
最终,我成功地上传了一个能对抗图像处理的马,从而实现了代码执行。然而,后续尝试使用蚁剑连接时,却未见到预期的效果。
通过phpinfo检查,我发现部分函数已经被禁用,这增加了漏洞利用的复杂性。
thinkphp 3.2.3 exp注入漏洞分析
在官网下载thinkphp3.2.3,配置MySQL账号密码于Convention.php文件,添加一行用于打印SQL语句。漏洞代码通过特定的HTTP请求触发,如:poser 安装依赖。在 app/middleware.php 文件中取消注释以开启多语言功能。接着,通过 go-pear.phar 或 Docker 安装 pear。
三、漏洞分析
漏洞主要在于 LoadLangPack 类中的 handle 函数,该函数先通过 detect() 方法检查请求参数是否设置了语言,之后将设置值返回并用于切换语言集。在传递给 load() 函数后,参数又传入 parse() 函数,直接用 include 包含文件,此为漏洞触发点。从获取参数到传入 parse() 函数前,均未对内容进行过滤。
四、漏洞复现
在测试环境中(macOS、PHP 7.3、Apache 2.4),通过以下步骤进行复现:
1. 验证 pearcmd 的存在,获取正确路径(当前环境为 /usr/local/pear/share/pear/pearcmd.php)。
2. 了解如何利用 pear,在开启 register_argc_argv 选项后,参数将作为 $_SERVER['argv'] 的一部分传入。
3. 使用 poc 测试,在 /tmp 目录下写入 admin.php 文件,确保正确写入,验证参数解析过程。
4. 利用文件包含访问写入的文件,实现漏洞复现。
注意,除了使用 config-create 命令,还可以使用 Install 命令进行下载操作。若喜欢本文,别忘了点赞与收藏。关注雷石安全实验室,获取更多网络安全知识与技术文章。
利用dompdf漏洞从XSS到RCE
利用dompdf漏洞从XSS到RCE,本文将详细解析这个过程。该漏洞于去年三月被发现,本文基于实际环境进行记录,旨在提供直观的指导。dompdf是用于将HTML转换为PDF的PHP库,因其易用性和广泛使用,成为攻击者的目标。
漏洞的利用主要分为三个关键步骤:
1. **CSS注入**:通过外部CSS注入到PDF中,包含远程字体链接,此链接可能携带恶意代码。
2. **字体加载与缓存生成**:应用程序请求远程服务器的字体文件,进而生成PHP缓存文件。
3. **RCE(远程代码执行)**:字体加载过程导致了RCE,通过生成缓存文件执行恶意代码。
**漏洞细节与利用流程**:
- **前提条件**:需要开启`isPhpEnabled`和`isRemoteEnabled`,在`Options.php`的特定行进行设置。
- **利用环境**:使用`github.com/positive-sec...`,启动后需修改`exploit_font.php`中的地址。
- **CSS注入**:创建`test.css`,设置背景为红色,通过`link`加载远程内容。
- **浏览器访问**:通过`/dompdf/dompd...`,主要在`FontMetrics.php`文件的`registerFont`函数中。
- **核心代码**:`*file_put_contents*($localFile, $remoteFileContent)`保存文件,是漏洞的关键点。
- **利用链调试**:通过`phpstorm`的`xdebug`进行调试,追踪漏洞利用过程,从`$dompdf->render()`开始,到`加载$this->css->load_css_file`引发漏洞。
**总结**:
- **利用难度**:虽然利用过程不难,但关键在于发现漏洞点,主要关注`file_put_contents`函数的利用。
- **参考资源**:具体技术细节可参考`positive.security/blog/...`。
通过以上步骤,我们能够理解并实现从XSS到RCE的漏洞利用过程,强调了细致分析和利用特定函数的重要性。
2024-12-29 00:00
2024-12-28 22:36
2024-12-28 22:29
2024-12-28 22:13
2024-12-28 22:07