90秒代码审计团队QQ群:(喜欢代码审计的朋友请加入我们。)
首先介绍一下老程序:
XDcms订餐网站管理系统由南宁旭东网络科技有限公司开发,主要采用Php+Mysql+技术基础进行开发,采用OOP(面向对象)方法构建基本运行框架,集成了在线订餐、团购、积分商城、折扣是一款完全开源的高级订购网站管理系统,集优惠券、新闻、在线订单、在线支付于一体,生成订单短信/邮件通知、评论、电子地图、问答,与支付宝、Dz论坛、短信平台接口。 并且结合移动应用客户端,您可以随时随地订餐。 使用XDcms订餐网站系统,您可以轻松构建专业的餐饮门户。
下载链接:
无关:
经过这两天的学习,我开始学习一些常用的PHP函数的理论和实际应用方法。
我还学会了如何发现错误并学习简单的防御。 为以后独立开发程序积累经验。
主题:
直接提问网址:
问题文件名:////index.php
$=$['']; 使用附加到 $ 的调用
然后直接输入SQL查询语句,不经过任何过滤,也没有单引号。
如何使用:
为了方便自己这个新手,我使用了火狐浏览器的编辑插件进行修改。
1.先注册一个账号。 (注册登录时总是提示验证码不正确,目前为止,我直接注释掉了判断验证码的地方。)
有两个地方。
2.登录后台,点击数据管理
3.在Tools-edit中打开插件
因为我本地测试IP是127.0.0.1,所以我直接搜索127.0.0.1,通过下拉菜单找到这个,然后点击edit进入编辑。
4. Statement-6 Union 1,2,,4,5,6,7,8,9,10,11,user(),,(),() fROM
这是一个渲染图
接下来,我们将在后台获取外壳部分。
太晚了,回家睡觉吧,不然老婆不会让我睡床上的。 我不会详细介绍如何在后台获取 shell。
方法有好几种,我只介绍其中一种,其他的大家可以挖掘出来,一起分享学习。
先说一下使用方法再看代码。
1、后台登录页面的验证码必须注释掉。 不知道是不是我本地PHP环境的原因。
2、系统设置-基本信息-填写网址,其中:');?>符号不可缺少,否则会出现错误。
一句话链接文件 //xdcms.inc.php 密码1
需要注意的一点是,我写的封闭方式是添加在url前面。 这个改动会导致网站出错,所以我需要在拿到shell后立即恢复。
先来一张成功的图
好吧,我们看一下代码分析。
///xdcms/.php
首先,使用循环将函数读入数组 $info
图片有点小看不清楚,贴一下代码
如果($标签==''){
//判断url是否以/结尾
$=($info[''])-1;
if(($info[''],$,1)!="/"){
(C(""),"-1");
}//结尾
$cms=.'xdcms.inc.php'; //生成xdcms配置文件
$=“”;
($cms,$);
很明显。 不经过过滤直接写入文件。 生成配置文件。
这种利用是有一定条件的。 =关闭
后台还有其他几种方法可以忽略这个,直接使用shell。由于时间关系,就不写了。
大家可以下载源码自己学习研究。
最后一句话。
欢迎喜欢代码审计的朋友加入90SEC代码审计群QQ群进行交流:
好的! 今天到此为止,回家睡觉。
补充一句:这个MD5是双重加密的
$=md5(md5($));
但如果放到md5网站上,那就是直销了。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。