熊海博客php版本,熊海CMS xhcms v1.0代码审计
有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0
本地环境安装好了之后,可以看到提示安装了锁文件
说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了,挨个看看
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET[‘r‘]); //接收文件名
$action=$file==‘‘?‘index‘:$file; //判断为空或者等于index
include(‘files/‘.$action.‘.php‘); //载入相应文件
?>
第一个疑似文件包含漏洞,对GET方式传进的参数r进行了参数过滤,但是存在目录穿越,黑盒尝试了一下使用点 反斜杠截断,无果,存在漏洞,但是只能包含本地php文件
创建一个phppinfo.php文件
本来是包含files文件夹下的php文件,通过目录穿越我们尝试包含phpinfo.php
http://127.0.0.1/xhcms_v1.0/?r=../../phpinfo
成功包含
第二个疑似文件包含漏洞也是同样的利用方式,代码都是类似的:
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET[‘r‘]); //接收文件名
$action=$file==‘‘?‘index‘:$file; //判断为空或者等于index
include(‘files/‘.$action.‘.php‘); //载入相应文件
?>
再看一下疑似存在SQL注入的地方
$save=$_POST[‘save‘];
$ad1=addslashes($_POST[‘ad1‘]);
$ad2=addslashes($_POST[‘ad2‘]);
$ad3=addslashes($_POST[‘ad3‘]);
if ($save==1){
$query = "UPDATE adword SET
ad1=‘$ad1‘,
ad2=‘$ad2‘,
ad3=‘$ad3‘,
date=now()";
这里可以看到对于POST方式输入的参数使用了addslashes函数进行过滤,所以这里的注入是一个误报,看下一处疑似注入:
在editcolumn.php文件中,存在如下代码:
$id=$_GET[‘id‘];
$type=$_GET[‘type‘];
if ($type==1){
$query = "SELECT * FROM nav WHERE id=‘$id‘";
可以看到对于GET方式输入的id没有进行过滤,应该是开发者的遗漏,我们到本地网站上进行测试
http://127.0.0.1/xhcms_v1.0/admin/?r=editcolumn&type=1&id=1
输入单引号之后页面报错
http://127.0.0.1/xhcms_v1.0/admin/?r=editcolumn&type=1&id=1%27
我们知道后端的php代码,就直接使用union select 进行注入
http://127.0.0.1/xhcms_v1.0/admin/?r=editcolumn&type=1&id=1%27%20order%20by%2010--+
http://127.0.0.1/xhcms_v1.0/admin/?r=editcolumn&type=1&id=1%27%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10--+
字段数为10,回显位置有2,6,3,4,8
http://127.0.0.1/xhcms_v1.0/admin/?r=editcolumn&type=1&id=1%27%20and%201=2%20union%20select%201,database(),3,4,5,user(),7,8,9,10--+
使用payload查询database()和user()
成功获取到了数据。
测试了一下后台的头像文件上传,上传正常的图片好像都不行
一直都是这个头像,尝试寻找XSS,CSRF和越权漏洞
if (isset($_GET["callback"])) {
if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
echo htmlspecialchars($_GET["callback"]) . ‘(‘ . $result . ‘)‘;
} else {
echo json_encode(array(
‘state‘=> ‘callback参数不合法‘
));
}
} else {
echo $result;
}
这里使用了htmlspecialchars函数进行过滤,$callback参数不存在XSS漏洞,而result变量在前面是固定的几个选项,不能构造XSS
到联系的留言列表里面去,可以看到用户可以在这里留言,应该是我搭建的问题,导致用户不能提交留言,但是有一个管理员回复,我们到后台界面留言回复,进行XSS攻击。
使用payload:
再到网站联系界面,可以看到成功弹窗
同时我们审查元素,可以看到XSS的payload在页面的元素中,对管理员回复留言并没有进行限制,导致XSS漏洞的产生
关于越权漏洞,因为只有admin一个用户,我们尝试可不可以不输入密码进入后台
在后台主页进行抓包:
可以看到Cookie里面有user=admin,很容易联想到会不会是user所对应的名字就是它对应的权限,测试之后发现不是,因为就一个用户,但是测试发现只要存在user,就能够进入后台,如我们先将cookie删除:
可以看到会将我们重定向至login界面
将cookie中的user改为一个并不存在的用户SpringBird,可以看到后台登录成功。
寻找CSRF漏洞,CSRF全程为跨站请求伪造,即可以劫持其他用户去进行一些请求。我们尝试劫持管理员的权限去删除文章
点击删除文章之后抓包
使用burpsuite自带的CSRF POC生成
在本地创建CSRF.html,访问之
可以看到出现了按钮,抓包的时候我们可以看到没有token验证,证明很有可能存在CSRF漏洞,这个时候浏览器还保存着管理员的身份信息,所以点击Submit就能够删除对应的文章
成功进行CSRF攻击。
继续努力吧。
参考链接:
原文:https://www.cnblogs.com/Cl0ud/p/12824593.html
熊海博客php版本,熊海CMS xhcms v1.0代码审计相关推荐
- 熊海博客php版本,xhcms_v1.0 熊海CMS是由熊海开发的一款可广泛应用于个人博客 联合开发网 - pudn.com...
xhcms_v1.0 所属分类:WEB开发 开发工具:Java 文件大小:4002KB 下载次数:3 上传日期:2015-05-14 14:41:13 上 传 者:dou 说明: 熊海CMS是由熊海 ...
- debug idea js_IntelliJ IDEA 配置chrome插件调试js代码 - 狂奔的熊二 - 博客园
调试js代码,每次都在要在代码中写debugger,或者在chrome中打断点,而且chrome的断点信息不人性化.偶然发现idea竟然有这个功能,简直神器啊.研究了半天终于搞定了,哈哈,开心.下面是 ...
- 展示博客---Alpha版本展示
Alpha版本展示 1. 团队成员的简介和个人博客地址,团队的源码仓库地址. 成员 简介 个人博客地址 祁泽文 被动态统计图搞扒下的我 http://www.cnblogs.com/jiaowoxia ...
- 使用海蜘蛛HSpider模拟防火墙搭建网络案例说明v1.0
附件:http://down.51cto.com/data/2359752 本文转自 godoha 51CTO博客,原文链接:http://blog.51cto.com/godoha/773225 , ...
- 博主推荐【文件Hash校验工具V1.0 -免费版】
文件Hash校验工具有什么用途? Hash校验工具可以用来计算文件的MD5.SHA1.SHA256.CRC32值.简单来说,MD5值就是文件的身份ID,并且具有唯一性.通过比对MD5值,用户能够检查 ...
- 调通sina33m下的ap6181版本(分色排版)V1.0
调通sina33m下的ap6181版本 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 wb4916 AT qq.com 完成时间:2017/7/7 18:11 版本:V1.0 SDK:Android6. ...
- 解决:“该 CPU 或当前的库版本不支持数据类型“TON“ V1.0。”问题 (西门子博图V16)
打开之前的程序,却发现定时器出现了问题,无法使用了. 解决方法: 如若发现更新后并没有完全恢复,而是变成了这样
- java版本微信机器人使用教程V1.0
大家好,我是雄雄,欢迎关注微信公众号雄雄的小课堂 现在是:2023年5月10日17:57:02 免费的云桌面,每个人都能领三个月,用来跑机器人还是很不错的,领取连接 前言 历经好多天,java版本的微 ...
- CSDN专家分和博客系统积分获得规则!(转官方)
博客积分规则 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准.博客等级也将由博客积分唯一决定.积分规则具体如下: 1.每发布一篇原创或者翻译文章:可获得10分: 2.每发布一篇转 ...
最新文章
- 【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源
- KVM中I/O设备直接分配和SR-IOV(十六)
- 腾讯云安装samba服务器无法连接问题
- Java编程的逻辑 (36) - 泛型 (中) - 解析通配符
- 爬虫总结(一)-- 爬虫基础 python实现
- SAP UI5 Nav container - how the inner control is added
- java厨房_JAVA环境搭建,厨房安装图文教程!
- o oia ospf 路由优先_乾颐堂军哥HCIE课程4-OSPF的3、4、5类LSA以及虚连接和转发地址的理论与实践...
- 微信小程序中识别html标签的方法
- ObjectiveC 深浅拷贝
- Oracle内账号密码过期the password has expired
- java文字水印excel_Aspose for java 给word,excel,ppt增加文字水印
- 程序化交易逆境中的奋斗史!
- iOS 防止截屏、录屏技术
- 《赐我》-一只白羊 同步歌词
- 颜色选择器---Kodu少儿编程第九天
- webdriver和火狐浏览器历史版本下载
- 模拟系统判断是否是你生日java
- html艺术字在线制作,HTML网页设计中的字体设计
- 洗衣机程序c语言代码大全,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文资料.doc...
热门文章
- UVA10191 Longest Nap【排序】
- Bailian2745 显示器【打印图案】
- CCF201403-1 相反数(解法二)(100分)(废除!!!)
- linux/unix 基本概念的认识(sha-bang 、PPA)
- 二次型(求梯度) —— 公式的简化
- vs 外部依赖项、附加依赖项以及如何添加依赖项目
- 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
- main方法 如何去掉http debug日志_Spring Boot 常见错误及解决方法
- 苹果x来电闪光灯怎么设置_苹果6splus来电没有声音,苹果6sp听筒没有声音怎么回事...
- 开课吧python小课学了有用吗-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...