xiaodisec day020

简介: PHP缺陷讲解,涉及==与===的区别、函数漏洞如intval、strpos、in_array、preg_match和str_replace的绕过技巧。CTF与CMS审计相关,例如intval的进制转换、strpos的%0a换行符、in_array的非严格模式等。强调了CTF与CMS审计的关联性,提供MetInfo文件读取绕过案例。

php 缺陷

2024.1.29 00:32

前言

在课程安排上先讲语言缺陷,再讲漏洞

函数缺陷与绕过
CTF

详细点:
\==
\===
intval
strpos
in_array
preg_match
str_replace

开始

1a +1 1admin 都能绕\==
但是上述三种在\===中不能成

数组绕过
MD5 处理数组会返回 null
\==可以用两个串绕过
\===可以用数组绕过

QNKCDZO
240610708

intval()
第二个参数是 0 则进行自定义进制对比
串如果以 0x 开始,则进行 16 进制对比

strpos()
%0a 是换行符,考虑进行绕过

in_array()
第三个参数是 true 则未 strict 模式,相当于\==
1=1e
1=1,select

preg_match()
正则,可用数组绕过
参数 i 表示不区分大小写
参数 m 表示匹配换行,换行可用%0a

str_replace()
过滤,无法迭代,尝试主动被重复过滤,结果只过滤一次
num[]=1

ctf

空格在地址中也能看成换行,就是%20

highlight_file 使用路径./绕过

cms 审计

$dir = str_replace(array('../','./'),'', \$_GET['dir']);
.....///

评价

这一节比较细,ctf 是 cms 代码审计的基础,两者有互通之处

材料

MetInfo 任意文件读取绕过

相关文章
|
6月前
|
安全 中间件 应用服务中间件
xiaodisec day032
`#day32` 讲解了文件上传漏洞,重点在绕过过滤策略,如使用`.user.ini`避开点号过滤。讨论了利用解析漏洞,将数字IP转换为字符串。网站的图片裁剪功能被利用来隐藏后门,因JPEG与PNG处理差异,形成二次渲染。手动插入木马困难,推荐脚本自动化。在线靶场演示不稳定,但CTF目标是理解概念而非单纯解题。`.htaccess`涉及Apache解析配置,不适用于Nginx。结合包含漏洞,中间件解析漏洞是关键。若过滤严格,可通过变量赋值拼接木马实现免杀。
|
6月前
|
SQL 开发框架 关系型数据库
xiaodisec day024
本文介绍了SQL注入的相关知识,包括Access和MySQL数据库的注入。漏洞源于特定变量和函数,可通过网址参数或抓包发现。注入语句位置与字段相关。工具流程包括猜测数据库类型,如ASP配Access,然后通过ORDER BY和UNION查询列数。在Access中尝试偏移注入,MySQL中可能涉及文件读写和跨库查询。判断是否为root用户可用`user()`函数,MySQL5.0以上可查information_schema数据库获取详情。示例网址:`https://www.crfbehavioralhealthcare.org/researchDetails.php?id=MS==`。
|
6月前
|
Java 中间件 测试技术
xiaodisec day023
Day23 Python 知识讲解聚焦于`pyc`反编译和`SSTI`(模板注入)。`pyc`是跨平台的编译结果,常在CTF中出现。`SSTI`发生在Web应用,当错误处理不当,允许注入代码执行,404页面可能是切入点。实战中判断SSTI和建站语言(如Python)需观察回显和使用工具如fofa。黑盒测试SSTI颇具挑战。
|
6月前
|
SQL JSON PHP
xiaodisec day027
本文档介绍了SQL注入的不同类型,包括数字型、字符型、搜索型、编码型和加密型,强调了在注入时对数据格式和闭包的考虑。提到了SQLMap工具的进阶使用,如利用tamper目录中的base64encode.py进行编码注入。同时,讨论了宽字符绕过技巧,如利用中文字符来避免PHP的addslash函数对攻击的阻止。
|
6月前
|
开发框架 安全 Java
xiaodisec day031
`#day31` 文件上传漏洞探讨:涉及 CMS 中的文件上传,通常需配合抓包工具。绕过前台验证和 MIME 验证(如变造 `content-type`),利用大小写或.php伪装上传。当.php被过滤时,可试用短标签`<= 'php代码'>`。若过滤括号,则可能无法构造有效payload。文件头过滤常用于防止非正常文件上传,而.user.ini文件能包含后门代码实现命令执行。同时,修改`user-agent`为PHP木马以尝试通过日志记录通道触发。总结:上传漏洞利用策略多变,关键在于识别并绕过安全防护措施。
|
6月前
|
JavaScript 安全 前端开发
xiaodisec day22
探索前端安全:JavaScript中的变量与函数暴露可能引发命令执行风险。利用Wappalyzer等工具检测JS使用,寻找如`/static/js/app.js`等线索。Node.js框架安全学习,借助Vulhub漏洞环境(GitHub可得)与Docker进行安全测试。
|
6月前
|
SQL 缓存 NoSQL
xiaodisec day026
`day26`探讨了Oracle与MongoDB的SQL注入,强调手动注入技巧。尽管`sqlmap`工具不支持NoSQL,它提供了一些选项,如清除缓存(--purge)、查看当前数据库(--current-db)和数据转储(--dump)。通过-r参数可以利用保存在TXT文件中的数据包进行测试,文件内星号(*)标记注入点,例如`username=admin*`。Metasploit Framework(MSF)未详述。
|
6月前
|
SQL 监控 Java
xiaodisec day028
Day 28探讨了SQL注入,关注点在于提交方式的注入。PHP、Spring Boot和Flask中的GET、POST、COOKIE数据提交都可能引发安全问题。后端处理数据时,如记录IP、根据UA显示页面或文件上传可能导致SQL注入。使用sqlmap工具进行黑盒测试,通过修改数据包或指定POST数据来探测注入点。实战中,CMS系统记录IP访问可能产生注入风险,可以利用工具如Seay代码审计系统进行监控和检查。
|
6月前
|
SQL 数据库
xiaodisec day029
在Day 29的学习中,聚焦SQL注入的查询方式,特别是盲注技术。当查询结果不直接回显时,需采用不同策略。盲注包括逻辑判断和基于延时、报错的判断。通过逻辑判断,如使用`left()`函数猜测数据库名。基于延时的方法利用`sleep()`函数观察响应时间变化。报错注入依赖服务器错误信息的回显。实际操作中,可利用工具进行检测,因为手动注入在某些场景下效率较低。
|
6月前
|
存储 小程序 Shell
xiaodisec day010
## Day10 概要 涉及小程序的抓包封包工具,如AppInfoScanner用于反编译;提及阿里云OSS存储服务;安卓修改大师用于源码修改与打包;通过反编译内外提取数据,包括网址和IP;讨论了xposed和frida模块破解安卓壳;提到了apk资源提取器以及Progress Telerik Fiddler作为Web调试工具,特别适合小程序抓包。