首页 > 其他分享 >变量覆盖--duomicms通杀漏洞

变量覆盖--duomicms通杀漏洞

时间:2023-03-27 10:55:32浏览次数:50  
标签:-- 通杀 &_ duomi admin SESSION duomicms php id

下载源码本地测试

image.png
然后进行代码审计
image.png
发现这个地方可能存在变量覆盖:/duomiphp/common.php
查看包含了common.php的地方
image.png
先看看后台登录的地方,调用了common.php
login.php查看了一下,没有可以构造变量的地方。
但是login.php包含了check.admin.php
image.png
check.admin.php中的keepUser方法在login.php被使用了
image.png
image.png
是一个登录判断的功能。登录成功之后会保存用户的session。
我们的漏洞点就是构造$_SESSION变量,成功登录到管理员后台。
而$_SESSION变量我们可以进行变量覆盖。
为了能成功登录到管理员后台,我们需要知道session中包含哪些东西。
check.admin.php:
image.png
显然,我们需要构造的有:
$_SESSION[duomi_admin_id]=userID
$_SESSION[duomi_group_id]=groupid
$_SESSION[duomi_admin_name]=userName
那么让这些值等于什么才能是管理员权限呢?
userID与userName 好理解,就是用户id与用户名嘛。
那groupid是什么呢?
全文搜索一下:/admin/admin_manager.php
image.png
groupid=1即为系统管理员。
经过搜索,userID与userName是可以任意构造的。
那么我们的payload也就形成了:
_SESSION[duomi_admin_id]=11&_SESSION[duomi_group_id]=1&_SESSION[duomi_admin_name]=666
其实构造userID与groupid就行了。
那么构造好了payload需要在哪里使用呢?
既然与session有关,那必然要使用session_start()。
所以需要找到同时包含common.php与使用session_start()的地方
image.png
interface/gbook.php:下可以成功执行
http://127.0.0.1/duomicms/upload/interface/gbook.php?_SESSION[duomi_admin_id]=11&_SESSION[duomi_group_id]=1&_SESSION[duomi_admin_name]=666
image.png
interface/comment.php
interface/comment.php/api/index.php
interface/comment.php/api/send.php
member/cpwd.php
member/exchange.php
member/exit.php
…等等这些路径下也可以执行,没有全部测试。但是应该大部分都可以。
靶场测试
_SESSION[duomi_admin_id]=11&_SESSION[duomi_group_id]=1&_SESSION[duomi_admin_name]=123
image.png
直接进入后台拿到flag: flag{7788_tiesan_one}
image.png



标签:--,通杀,&_,duomi,admin,SESSION,duomicms,php,id
From: https://www.cnblogs.com/Ctsz1/p/17260791.html

相关文章

  • MySQL联合索引创建规则
    1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个......
  • Windows 效验码
    CertUtil-hashfileC:\xxx.tarMD5此命令不仅可以做MD5哈希算法校验,还支持其他的哈希算法,具体如下:CertUtil-hashfile文件路径[算法]支持的算法有:MD2MD4MD5SHA1SHA2......
  • 第五周
    一、水流量分布 importpandasaspdimportmatplotlib.pyplotaspltinputfile='original_data.xls'data=pd.read_excel(inputfile)#读取数据#查看有无......
  • 执行tsc -v命令后报错‘tsc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
    //tsc-v这个命令主要是查看typescript编译器的版本号的,//也可以用于检查typescript是否安装好了?是否正常?如果没有安装的话,就去安装npmlstypescript//查看......
  • 清空cookie
    //清空cookieclearCookie();functionclearCookie(){varkeys=document.cookie.match(/[^=;]+(?=\=)/g);if(keys){for(vari=keys.length;i--;){......
  • 【DP】LeetCode 剑指 Offer 46. 把数字翻译成字符串
    题目链接剑指Offer46.把数字翻译成字符串思路这个问题与dp中的经典问题“跳台阶”问题十分类似,在跳台阶问题中我们是选择跳一个台阶或者两个台阶,而在这个问题中我......
  • DHCP snooping
    目前DHCP协议(RFC2131)在应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击,如DHCPServer仿冒者攻击、DHCPServer的拒绝服务攻击、仿冒DHCP报文攻击等。为了......
  • 占位符
    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完......
  • python pandas保存 。dta文件报错:UnicodeEncodeError: 'latin-1' codec can't encode
    pandas保存.dta文件时报错:UnicodeEncodeError:'latin-1'codeccan'tencodecharactersinposition0-2:ordinalnotinrange(256)importpandasaspddf=pd.r......
  • mount-s3 aws 开源的基于fuse 的高性能s3 挂载本地文件系统客户端
    mount-s3aws开源的基于fuse的高性能s3挂载本地文件系统客户端特性当前主要是处理读场景,暂时不支持写入场景,还在规划中兼容性,主要是aws的s3服务,应该是可以和其他s3......