AW内部娱乐赛部分题

日志分析

首先查看.log文件,发现有一些url编码,用在线的一些解密工具解一下

将其存到2.log,查看一下

不难发现这是sqlmap盲注的流量,采用了二分法来注入

写个小代码将状态码为200的筛选出来。

 二分查找的话,就是说每次发送的请求需要上一次请求返回结果判断才能继续发送,也就是说只有发送了第一次请求,且返回了结果,在进行结果判断,然后在发送第二次请求…,这种每次需要等待上一次结果返回,花费的时间较长。

所以根据ASCII码和状态码来进行分析,将符合的ASCII进行拼接转码

flag = [102,108,97,103,123,115,113,108,109,52,112,95,49,53,95,112,48,119,101,114,102,117,108,125]
f = ""
for s in flag:
f += chr(s)
print(f)

easy serialize

打开之后看源码

<!--

class test {
        function __destruct() {
                if(strpos($_GET['cmd'], 'flag') !== false) {
                        exit('hacker!');
                }
                eval($_GET['cmd']);
        }
}

extract($_GET);
if(isset($file) && file_get_contents($file) === "AWCTF") {
        unserialize($s);
}

-->

 先绕过file_get_contents()然后执行反序列就能触发destruct()

phpcms

<?php

define(CHARSET, 'gbk');

function get_suggest_keyword() {
    $url = $_GET['url'].'&q='.$_GET['q'];
    $res = @file_get_contents($url);
    if(CHARSET != 'gbk') {
        $res = iconv('gbk', CHARSET, $res);
    }

    echo $res;
}

get_suggest_keyword();

highlight_file(__FILE__);

easy jwt

 需要admin权限

抓包

 删点token,出来密钥,https://jwt.io/

 

 将获得的token放到bp

xxe-lab

<!DOCTYPE GVI [<!ENTITY xxe SYSTEM "file:///flag" >]>
<user><username>&xxe;</username><password>admin</password></user>
原文地址:https://www.cnblogs.com/tac2664/p/14490297.html