最近在挖某框架的漏洞,其中挖到一枚Getshell,挖的过程有点曲折感觉可以写篇文章总结一下,方便与各位大牛交流交流。 因为此框架有大量用户,并且此漏洞并未修复,故此隐去所有有关此框架的信息,连文章中
file=php://filter/read=convert.base64-encode/resource=index.php
今天给大家分享一个关于php常见的注入防护以及如何bypass的文章,文章内容来源国外某大佬总结,我做了一下整理,文章来源地址不详,下面正文开始。以下的方式也仅仅是针对黑名单的过滤有一定的效果,为了安全最好还是以白名单的方式对参数进行检测。
命令行注入漏洞是指应用有时需要调用一些执行系统命令的函数, 如: system()、 exec()、 shell_ _exec()、eval()、passthru(), 代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
还有这一种方式,使用cp指令flag.php中的文件写入2.txt,直接打开就能得到flag。
KKCMS是基于PHP+MYSQL开发的开源CMS。可以直接在GitHub上下载就可以了。
大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。现在大家所看到的系列文章,属于项目 第一阶段 的内容,本阶段的内容题目均来自 PHP SECURITY CALENDAR 2017 。对于每一道题目,我们均给出对应的分析,并结合实际CMS进行解说。在文章的最后,我们还会留一道CTF题目,供大家练习,希望大家喜欢。下面是 第2篇代码审计文章:
大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。现在大家所看到的系列文章,属于项目 第一阶段 的内容,本阶段的内容题目均来自 PHP SECURITY CALENDAR 2017 。对于每一道题目,我们均给出对应的分析,并结合实际CMS进行解说。在文章的最后,我们还会留一道CTF题目,供大家练习,希望大家喜欢。下面是 第2篇 代码审计文章:
JavaScript正则表达式在线测试工具: http://tools.zalou.cn/regex/javascript
可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。
-----------------------------------------------------------------------------------
Genesis Explained Framework Filters
根据红日安全写的文章,学习PHP代码审计审计的第二节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完这个题目,会有一道CTF题目来进行巩固,外加一个实例来深入分析,想了解上一篇的内容,可以点击这里:PHP代码审计01之in_array()函数缺陷 下面我们开始分析。
这次的数据分析赛相对上个星期 05.05 的数据分析赛,个人觉得虽然简单了很多,但其中值得学习的知识点也不少呀。
文件包含漏洞(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以通过Web应用程序的漏洞,以某种形式包含恶意文件,或者包含在Web服务器上的其他敏感文件,从而实现权限提升、信息泄露、远程代码执行等攻击。
根据第六行代码,这里直接拼接命令行就可以。猜测flag可能在10240263218889.php文件中。再次拼接命令行,cat一下。
ignore_user_abort() ,可以实现当客户端关闭后仍然可以执行PHP代码,可保持PHP进程一直在执行,可实现所谓的计划任务功能与持续进程,只需要开启执行脚本,除非 apache等服务器重启或有脚本有输出,该PHP脚本将一直处于执行的状态;
说明: 这摊源码是基于thinkphp3.2.3开发的,然后有几个重要的目录记录一下:
协作翻译 原文:How to Read Big Files with PHP (Without Killing Your Server) 链接:https://www.sitepoint.com/performant-reading-big-files-php/ 译者:Tocy, Tony, 南宫冰郁, Tot_ziens 作为PHP开发人员,我们并不经常需要担心内存管理。PHP 引擎在我们背后做了很好的清理工作,短期执行上下文的 Web 服务器模型意味着即使是最潦草的代码也不会造成持久的影响。 很少情况下
又到了一年一度的HW时刻,各家都在为HW积极筹备着,一些厂商也在做着攻防演练的工作,此时,有些真正的攻击者也在利用这个档口对一些网站进行攻击,浑水摸鱼,这样,对于防守队员来说,分析流量做应急的工作就会变得更加困难。
代码审计的思路往往是多种多样的,可以通过历史漏洞获取思路、黑盒审计快速确定可疑点,本文则侧重于白盒审计思路,对Centreon V20.04[1]的审计过程进行一次复盘记录,文中提及的漏洞均已提交官方并修复。
看到freebuf上有一篇为《漏洞预警 | 海洋CMS(SEACMS)0day漏洞预警》的文章,展示了关于漏洞使用的POC,这里我们来完整的分析一下POC的原理以及漏洞成因。 我分析使用的版本是sea
分析:我们通过POST方式,向cmd提交内容,然后cmd经过htmlsmecialchars()过滤,再使用str_ireplace()经过黑名单black_list再过滤一次,最后eval()来执行cmd参数的内容;
本文实例讲述了YII框架行为behaviors用法。分享给大家供大家参考,具体如下:
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途。
进入环境提示/?ip=,就传一个?ip=127.0.0.1有回显结果, 这是经典的Linux命令执行,使用命令执行的管道符 “|” 执行ls命令列出文件,可以看到题目中含有index.php和flag.php
[Web安全]PHP伪协议 最近php伪协议的各种神奇妙用好像突然又常常提到了,php中支持的伪协议有下面这么多 复制代码 file:// — 访问本地文件系统 http:// — 访问 HTTP(s) 网址 ftp:// — 访问 FTP(s) URLs php:// — 访问各个输入/输出流(I/O streams) zlib:// — 压缩流 data:// — 数据(RFC 2397) glob:// — 查找匹配的文件路径模式 phar:// — PHP 归档 ssh2:// — Secure
我们在 WordPress 发表文章的时候,有时会遇到一些特殊的需求,比如把文章中的链接变成可点击,或者过滤掉文章内容 HTML 标签中的某种属性等。
这里考察的是 preg_match — 执行匹配正则表达式 这个表达式的匹配。我们可以参考官方文档
从而注入一段攻击者能够控制的代码,在服务器上以Web服务的后台权限远程执行恶意指令
分别匹配每一行的开始和结束,而不仅仅是整个字符串的开始和结束。 如果在目标字符串中找到任何黑名单字符,即preg_match函数返回true,那么程序将立即停止执行,并输出“what are you want to do?”。 最后,这段代码结束foreach循环。
在index.php文件中包含 coreframe 框架下core.php文件并调用load_class加载 然后在application.class.php 文件、core.php 框架核心文件 调用了load_class加载类。然后通过load_class()类实例化wuzhi_application类
查看网页html代码,可以看到htmlentities()函数对用户输入的<>做了转义处理,恶意代码当然也就没法执行了。
有时候我们获取数据时需要根据Header中的格式来解析,比如上传一个json而不是一个文本。这里用到了 php输入|输出流 的概念。
1.前端代码 2.逻辑绕过 3.文件内容检测 4.文件包含、文件备份 5.容器及语言特性 6.畸形报文 4.文件包含、文件备份 8.SQLI方面 上传文件时WAF检测点: 1)请求的url,url是否合法 2)Boundary边界,通过Boundary边界确定内容来检测内容 3)MIME类型,即content-type 4)文件扩展名 5)文件内容 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。 2)上传文件是Flash的策略
文件包含定义: 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。造成方便的同时,也留下了隐患。
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
由于开发人员编写源码时,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并交由服务端执行。命令注入攻击中,Web 服务器没有过滤类似system、eval和exec等函数,是该漏洞攻击成功的主要原因。
在现代的 Web 开发中,模板引擎是一种常见的工具,用于将应用程序的逻辑和视图分离开来,使得开发过程更加清晰和高效。PHP Twig 是一种流行的模板引擎,它为 PHP 开发者提供了一个强大而灵活的工具,用于构建动态的网页应用程序。本节将介绍 PHP Twig 的基本概念以及选择 PHP Twig 的理由。
英文:Christopher Pitt ,译文:oschina www.oschina.net/translate/performant-reading-big-files-php 作为PHP开发人员,我们并不经常需要担心内存管理。PHP 引擎在我们背后做了很好的清理工作,短期执行上下文的 Web 服务器模型意味着即使是最潦草的代码也不会造成持久的影响。 很少情况下我们可能需要走出这个舒适的地方 ——比如当我们试图在一个大型项目上运行 Composer 来创建我们可以创建的最小的 VPS 时,或者当我们需要
但由于开发人员没有对输入进行严格的过滤,导致攻击者可以构造一些额外的“带有非法目的”命令,去欺骗后台服务器执行这些非法命令。
https://xz.aliyun.com/t/3674,https://xz.aliyun.com/t/6454
由于本人主力 Linux 换为了 WSL 中的 Ubuntu 22.04,因此本次 LFI-Labs 靶场将直接部署于该环境下,为避免众多环境问题让时间成本剧增,将使用 Docker 直接部署原作者封装好的版本。话虽这么说,貌似 Docker + WSL 本身就是庞大的时间成本。正文中一些容器内无法实现的操作将转为使用 Windows 本地部署的备用环境,直接 phpstudy 倒是相当方便。
发现公众号上好像没什么代码审计的文章,于是便把之前自己的笔记拿过来给大家分享一下,这个cms基本已经被玩烂了,但是还是有一些学习意义的。
因为使用了str_replace函数,会替换那么输入%00′ 就被addslashes函数自动添加\0\’,然后我们匹配0,就变成了\\’再次转换成\’,单引号成功逃逸。
领取专属 10元无门槛券
手把手带您无忧上云