网站首页 > 知识剖析 正文
0x0:前言
随着通用型漏洞证书颁发的要求越来越高,整理了一篇关于通用型证书php框架漏洞的白盒审计思路。
0×1:重组漏洞
漏洞位置:/install/index.php
配置安装成功后,访问/install目录,如下图所示,若显示重新安装,请删除/install/install.lock。
全局搜索/install/install.lock,
并在/install/step_1.php中找到:
分析index.php代码可知,这里通过变量step的值来执行不同的操作语句,当step的值为1时包含step_1.php,此时会检查是否存在install.lock文件,所以要想办法跳过这一步。
继续向上查找变量step的值,发现通过post传值来给step,不传值默认为1,所以直接post一个step的值为2,即可跳过install.lock检查,实现重装。
验证:
0×2:SQL注入
漏洞位置:
/admin/ask.php
/inc/stopsqlin.php
这里发现只验证传入的cookie值不为空,就会拼接在sql语句中执行。
继续向上查找如何到达该漏洞位置,发现需要进入到add()方法中。
继续查找哪里调用了add()方法,在ask.php的第55行,执行三元运算符来判断是否以GET方式传了一个do参数,并且值为add时,会调用add()方法。
由于该cms将传入的cookie变量带入到了/inc/stopsqlin.php文件的stopsqlin的方法中进行了过滤,所以我们要考虑绕过该方法。
在stopsqlin.php的55行做了一个if判断,用strpos函数匹配$r_url中是否存在siteconfig.php关键字,如果存在的话返回值为具体位数,若返回值等于0的话会进入该方法,因此我们可以在url中传入一个参数值为siteconfig.php就不会进入到stopsqlin方法中,即绕过。
验证:
0×3:存储型XSS
漏洞位置:/inc/function.php
在函数stripfxg中,存在使用方法htmlspecialchars_decode()对htmlspecialchars()方法。
过滤后的参数进行解码,导致可能存在XSS漏洞。
由stripfxg函数可知:
当此函数被调用且参数$htmlspecialchars_decode为true时,htmlspecialchars_decod()方法会被调用。
全局查找函数stripfxg被调用的地方:发现在/zt/show.php。
发现赋值给变量$gsjj,这个时候考虑搜索有没有类似于echo $jsjj打印的语句 。
搜索发现没有,但是发现通过str_replace函数将变量$strout中的{#gsjj}替换成$gsjj并打印出来:
查找stripfxg函数中参数$content的来源,发现在包含的文件top.php中,继续查找变量$row[“content”]的来源发现找不到。
通过分析代码发现content是zz_cmsuser表中的一个字段,在数据库中执行sql语句确实存在content字段。
这个时候考虑如何修改zzcms_user这个表来修改content这个字段,全局搜索update zzcms_user发现在/user/manage.php中找到修改content字段的sql语句。
继续向上分析,当存在参数变量$action且值为modify时执行sql语句修改contnet,即用户可以在信息修改时控制content参数来插入XSS。
验证:
注册一个用户,在用户个人中心点击修改注册信息并抓包:
在数据包中添加参数content=<img/src=1 onerror=alert(1)>。
此时访问/zt/show.php?id=1即可触发XSS。
0×4:总结
php框架的大厂漏洞越来越难审计了,JAVA代码审计能力在实战中越来越重要。非常喜欢圈内的一句话:代码能力决定了你的上限。
猜你喜欢
- 2024-11-11 详解如何防止SQL注入:应对方案与优缺点分析
- 2024-11-11 XSS注入我也不怕不怕啦--PHP从框架层面屏蔽XSS的思考和实践
- 2024-11-11 挖0day漏洞原来如此简单,我的黑客朋友手把手教你
- 2024-11-11 php用soap调用接口实例,返回值没有见到xml
- 2024-11-11 备战金九银十,2020最新大厂PHP面试题(附答案)
- 2024-11-11 dede后台发布文章的时候显示标题不能为空?
- 2024-11-11 PHP漏洞之-Session劫持 php session机制
- 2024-11-11 php特殊字符处理 php 特殊字符自动转义
- 2024-11-11 Java面试260题(2020年版,3-5年面试题重点突破)(二)
- 2024-11-11 2020最新大厂PHP面试题(附答案) php面试官应该问些什么
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)