SUCTF2019WP

前言

MISC

签到题

附件打开后,很显然是base64加密文件,由于一般字符串加密不会出现+/符号,所以我们猜测是图片加密,对比一个以往的图片转base64的题目,发现本题与那题开头字符串一致,所以猜测是jpg加密,在开头补上data:imge/jpg;bae64,,然后在线解密一下就得到原有图片了。
test

checkIn

一条上传绕过题,php后缀文件上传不了,emmm只能上传图片马(其中对<?进行了过滤,只能使用另一个形式)了,上传图片马后得尝试改变配置文件。
.user.ini文件构成的PHP后门
这题修改的.user.ini文件,orz想不到。
上传后访问脚本路径就行了。

pythonginx

该题利用了一个刚在black hat上发布的东西
test
直接丢payload
file://suctf.c℆sr%2ffffffflag
利用suctf.c℆绕过第一层认证,并通过utf-8编码,将uri变成suctf.cc/usr/local/nginx/conf/nginx.conf
然后就爆出flag了orz

easy_sql

emmm,sql注入还不熟悉,这种语法都没见过(哭晕在厕所)
官方WP说一顿操作就能看出sql语句是select $query||FLAG from FLAG
对不起,我看不出来。
这样就出现了一个非预期解。
$query = *,1
语句就变成了select *,(1||FLAG) from FLAG
括号是不存在,之所以括起来就是为了让你们看清楚语句的逻辑。

接下来是预期解
$query = 1;set sql_mode=pipes_as_concat;select 1
在sql_mode,可以通过将其值设置为PIPE_AS_CONCAT 改变||的作用变为拼接字符串,此时就可以返回flag了。

EasyPHP

先膜一下陆老板的这篇博客一道题回顾php异或webshell

tcl,先放上官方题解,日后再研究https://github.com/team-su/SUCTF-2019/blob/master/Web/easyweb/wp/SUCTF%202019%20Easyweb.md