1.代码审计-无回显SSRF的码查奇妙审计之旅
2.Thinkphp框架 < 5.0.16 sql注入漏洞分析
3.thinkphp 3.2.3 exp注入漏洞分析
4.学习RCE漏洞(ThinkPHP2)
5.烽火狼烟丨PHP远程代码执行漏洞(CVE-2022-31625、CVE-2022-31626)风险提示
代码审计-无回显SSRF的看漏奇妙审计之旅
本文探讨了代码审计过程中遇到的一个无回显SSRF漏洞的奇妙审计之旅。此次审计始于一个PHP源码的码查深度挖掘,通过关注函数curl_exec(),看漏最终定位到了MACCMS 8系统的码查某个潜在安全风险。
在审计过程中,看漏升学辅导app源码下载我们首先从函数curl_exec()出发,码查深入分析了maccms8\inc\common\function.php文件,看漏发现利用此函数的码查潜在风险。经过细致的看漏代码查找,我们发现调用getPage()函数的码查环节存在无过滤情况,这为漏洞的看漏利用埋下了伏笔。
通过追踪调用getPage()的码查源头,我们找到了一个可能利用的看漏入口点,即在inc\common\function.php的码查行。这里,传入的$url参数经过了截断拼接,缺乏有效过滤,为我们提供了利用的react thunk 源码接受参数机会。继续追踪,我们发现savepic()函数可能被利用,它在maccms8\admin\admin_interface.php的第行被调用,且传入参数d_pic可以通过be()函数接收。
be()函数的实现细节在此不再赘述,但它允许通过get或post方式接收参数d_pic。通过分析,我们发现可以利用这一特性构造利用流程,最终定位到实现漏洞利用的关键步骤。
在构造利用流程时,我们关注到在、行的判断条件,以及、行的空值判断,这指向了配置文件config/config.php。通过进一步分析,我们了解到可以通过get或post方式传入参数,实现对网站配置的综合短网址缩短源码修改,进而触发漏洞。
通过这一系列操作,我们成功构造了利用流程,尝试访问DNS日志,发现数据新增成功,证实了SQL注入的存在,但未直接与SSRF漏洞相关联。经过多次尝试,我们最终利用了文件写入功能,通过构造文件并测试写入成功,揭示了目录与文件名的特殊关联,进而发现了条件竞争的机会。
利用条件竞争,我们成功读取了文件内容,这一过程展示了深入思考和创新思维的重要性。在审计过程中,我们还发现了文件上传这一潜在利用点,通过构造PHP后缀的赛傲生物溯源码马,实现了文件解析和shell获取,进一步丰富了利用手段。
总的来说,这次审计之旅充满了挑战与惊喜,强调了代码审计过程中细致观察、深入分析和灵活思考的重要性。通过这次探索,我们不仅发现了SSRF漏洞的利用途径,还拓宽了利用思路,展现了审计技巧与漏洞利用的紧密结合。
Thinkphp框架 < 5.0. sql注入漏洞分析
分析ThinkPHP框架 < 5.0. 的SQL注入漏洞,作者在i春秋论坛和先知社区分享了发现和修复过程。首先,通过PHPstudy环境搭建,使用ThinkPHP的input()函数接收数据,并利用框架的数据库操作功能。漏洞复现时,通过payload访问程序,和平精英比赛报名源码逐步追踪到SQL执行的代码路径。
在\thinkphp\library\think\db\Query.php中,`parseTable`函数对传入的数组进行处理。然而,当数组的第一个元素为'inc'时,函数并未进行安全检查,导致SQL注入。示例中的数组被拼接进SQL语句后执行,成功引发了错误,表明攻击成功。
对于为何设置特定数组格式,是为了在后续的代码中组合数据。`parseData`函数的执行显示了这个过程。对于不熟悉ThinkPHP的读者,作者建议先了解框架结构,对于PHP代码不清楚的部分,可以复习PHP基础知识。
漏洞分析的参考资源包括ThinkPHP官方文档和相关文章。通过这个分析,开发者可以了解漏洞产生的原因,并采取措施修复,提高应用的安全性。
thinkphp 3.2.3 exp注入漏洞分析
在官网下载thinkphp3.2.3,配置MySQL账号密码于Convention.php文件,添加一行用于打印SQL语句。漏洞代码通过特定的HTTP请求触发,如:http://.0.0.1/index.php?id[0]=exp&id[1]==1 or sleep(5)。通过断点调试,跟踪至Model类的select函数,进而深入至其内部处理逻辑,发现$exp的值即为传入的exp,该值被直接拼接到后续SQL语句中,形成SQL注入。
使用I函数可以防止注入攻击,原因在于ThinkPHP\Common\functions.ph中的think_filter函数会将特殊关键字(如EXP、OR等)加上空格,避免进入if语句进行SQL字符拼接。
对于普通的SQL注入,thinkphp3.2.3会通过解析数据库字段类型来防止注入。在Model类的_parseType()函数中,对于字段类型为int()的字段,会将传入的值转化为整数类型,使得注入语句失效。对于字符型注入,系统在Think\Db\Driver.class.php中的escapeString()函数中对特殊符号进行转义,实现防御。
除了exp注入,还有bind注入方法。bind注入通过在SQL语句中插入特殊符号,导致SQL错误进行攻击。虽然实现较为复杂,但由于think_filter函数未对bind进行过滤,因此即使使用了I函数获取参数,仍有可能实现bind注入。
针对此漏洞的修复策略包括:1. 尽量在应用中使用I函数获取用户输入的参数;2. 修复代码,将安全补丁整合到index.php入口文件中,确保应用从源头开始执行安全措施。
学习RCE漏洞(ThinkPHP2)
近日,有渗透测试高手chaonan(潮男)在测试过程中发现ThinkPHP2.x版本存在一个严重的任意代码执行漏洞。以下是漏洞复现的详细步骤:
首先,我们需要准备一个Docker环境,并从vulhub下载相关资料。然后,进入漏洞复现的目录,开始执行实验。
实验结束后,别忘了清理漏洞环境,以确保安全。
简单访问该环境,可以确认ThinkPHP2.1版本的任意代码执行漏洞已成功搭建。通过查询错误信息,我们进一步验证了这一点。
接着,我们通过访问特定URL,确认了漏洞的存在。这一漏洞允许我们利用蚁剑工具植入一句话木马。
最终,我们成功连接到webshell,从而证实了漏洞的利用能力。
烽火狼烟丨PHP远程代码执行漏洞(CVE--、CVE--)风险提示
PHP官方已发布关于存在远程代码执行漏洞的通告,漏洞编号为CVE--、CVE--。CVE--漏洞是由于PHP_FUNCTION中分配在堆上的数组清除不及时,错误调用php_pgsql_free_params()函数可能导致远程代码执行。CVE--漏洞源于PHP的mysqlnd拓展堆缓冲区溢出,攻击者通过诱导主机以mysqlnd主动连接恶意服务器,实现缓冲区溢出并执行远程代码,影响包括Adminer、PHPmyAdmin在内的基于php的数据库管理软件。WebRAY安全服务产品线建议用户采取防护措施并升级到最新版本。PHP是一种多用途开源脚本语言,用于Web开发和嵌入HTML。WebRAY将持续关注该漏洞,提供最新信息。此漏洞风险评级为高危。官方已发布安全版本,建议用户及时下载更新。盛邦安全成立于年,是国内领先的网络安全产品及服务供应商,专注于网络空间地图、业务安全、供应链安全、应用防御和脆弱性检测领域。