目录
因为自己是小白,还是想着尽量快一点的学习到许多知识,最近又做了CTFshow里面的部分萌新题,这里总结一下其中的部分萌新WEB题。
web 9
要求我们使用GET方式传入c参数,参数中还要匹配到system或者exec等关键字,这里算是一个小坑,还以为是不能有这些关键字,还尝试了passthru、和拼接绕过......很尴尬。
这个比较简单我们使用system来执行查看config.php就可以了。
web 10
这个题的含义就是正则匹配到system、exec等,则会提示你cmd error,所以这里就是对这些函数做了过滤,这里我们可以使用其他的命令执行函数。
常见的命令执行函数:
system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
或者是采用拼接方式来绕过以及采用base64编码也可以来绕过。
还有就是编码的方式
c=$a = base64_decode('c3lzdGVt');$b=base64_decode('Y2F0IGNvbmZpZy5waHA=');$a($b);
web 11
这里比上一关多过滤了一个cat,文件读取命令,除了cat之外还有很多的文件读取命令如下:
cat--由第一行开始显示内容,并将所有内容输出
tac--从最后一行倒序显示内容,并将所有内容输出
more-- 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head-- 只显示头几行
tail --只显示最后几行
nl --类似于cat -n,显示时输出行号
tailf-- 类似于tail -f
vim --使用vim工具打开文本
vi --使用vi打开文本cat 由第一行开始显示内容,并将所有内容输出
这里我使用tac。还可以使用单引号或者是双引号来绕过,具体使用单引号还是双引号还是要看外层使用的是单引号还是双引号。?c=passthru("ca''t config.php");
web 12
过滤的内容更多了,config.php都过滤。当然也可以使用编码绕过,或者是直接显示所有该目录下的内容。
··上引号的意思就是先执行。
web 13
13关相比上一关过了分号的过滤。这里我们可以使用?>绕过。
web 14
增加对括号的过滤。
flag藏在网页源码中。
web 15
15又把我们使用的?>给过滤,但是发现分号可以使用了,同样使用14关的payload来绕过。
web 16
这里看了网上的wp,在官方群里有36d的梗,但是我没在群里找到,不明白为什么get请求的C是三个字符。
编写脚本,由于自己的代码基础很菜,所以自己尝试去写。
import hashlib
md_after='a6f57ae38a22448c2f07f3f95f49c84e'
chater='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
flag=''
for i in chater:
for j in chater:
for k in chater:
s=hashlib.md5(('ctfshow'+i+j+k).encode()).hexdigest()
if s==md_after:
print(i+j+k)